Arduino Mega Server

Модератор: Alex

Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm

Re: Arduino Mega Server

Сообщение Sps »

Всем добрый день, кто-нибудь пробовал к AMS-0.14 прикрутить DHT22 и вывести показания t и h в Сенсоры, поделитесь опытом.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Sps писал(а):Всем добрый день, кто-нибудь пробовал к AMS-0.14 прикрутить DHT22 и вывести показания t и h в Сенсоры, поделитесь опытом.
Не ток пытался)) Сделал...Не факт что код идеально правильный...даже больше скажу...он не правильный...но работает)).
Там проверки на отвалившейся датчик нету...т.е. tempSensorHealth всегда =100). Но переделывать пока некогда...выдастся часик свободный - посмотрю что можно сделать.
Вот мой r_temp. Имена датчиков "dht1_temp", "dht1_hum"...выводите куда угодно))

UPD: Внимание, перезалил файл....теперь с проверкой на отвалившийся датчик...выкладывать, дак конечные версии =)
Вложения
rtemp.rar
(814 байт) 238 скачиваний
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm

Re: Arduino Mega Server

Сообщение Sps »

nick7zmail писал(а):
Sps писал(а):Всем добрый день, кто-нибудь пробовал к AMS-0.14 прикрутить DHT22 и вывести показания t и h в Сенсоры, поделитесь опытом.
Не ток пытался)) Сделал...Не факт что код идеально правильный...даже больше скажу...он не правильный...но работает)).
Там проверки на отвалившейся датчик нету...т.е. tempSensorHealth всегда =100). Но переделывать пока некогда...выдастся часик свободный - посмотрю что можно сделать.
Вот мой r_temp. Имена датчиков "dht1_temp", "dht1_hum"...выводите куда угодно))

UPD: Внимание, перезалил файл....теперь с проверкой на отвалившийся датчик...выкладывать, дак конечные версии =)
Огромное спасибо за код. Я так понял DHT22 становится вместо ds18b20 (в моем случае мне нужны оба типа датчиков), пробовал вставить под свои нужды, с разбегу не получилось, ds18b20 отрабатывают нормально, а из двух dht показывает один, только влажность и то как-то криво. Зато теперь есть направление в какую сторону копать, еще раз благодарю.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Sps писал(а):Огромное спасибо за код. Я так понял DHT22 становится вместо ds18b20 (в моем случае мне нужны оба типа датчиков), пробовал вставить под свои нужды, с разбегу не получилось, ds18b20 отрабатывают нормально, а из двух dht показывает один, только влажность и то как-то криво. Зато теперь есть направление в какую сторону копать, еще раз благодарю.
Да, DHT воткнул вместо ds18b20. Вместе чтобы работали - скорее всего нужно ещё 1 массив создать чисто под показания влажности. Т.к. у ds только 1 показание, а у dht - два, и там несрастание массивов получится, если в один всё пихать...и как то надо придумать, чтобы они одним циклом забирались...на досуге хотел над этим подумать, но досуга пока не было =D...тем более пробовать не на чем, ds у меня нету).

PS: Создал тему про железки, отпишитесь там, если придумаете что нить)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am

Re: Arduino Mega Server

Сообщение alexsis_76 »

Посмотрел код файловой системы, поднял частоту SPI почти никакого, видимо это предел меги, но есть другой способ, воспользоваться кешем браузера, кешируем картинки и css, получаем вот что
Безымянный_1.JPG
Безымянный_1.JPG (155.43 КБ) 12577 просмотров
как видим грузится только первый файл , остальное берется из кеша, при первой загрузке он заполняется, зато потом при переходе страницы появляются мгновенно(браузер берет из из своего кеша, а не запрашивает с устройства, все скрипты на страницах вроде работают).rв коде нужно сделать это
void sendHtmlAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnnection: close\r\nCache-Control: private, max-age=3600\r\n\r\n"),cl);}

void sendCssAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/css\r\nConnnection: close\r\nCache-Control: private, max-age=3600\r\n\r\n"),cl);}

void sendJsAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/javascript\r\nConnnection: close\r\n\r\n"),cl);}

void sendImgAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: image/png\r\nConnnection: close\r\nCache-Control: private, max-age=3600\r\n\r\n"),cl);}

void sendXmlAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nConnnection: close\r\n\r\n"),cl);}
компилируйте , проверяйте.
Вложения
Безымянный.JPG
Безымянный.JPG (164.71 КБ) 12582 просмотра
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Alex...небольшая просьба...хотелось бы в новой версии мега сервера увидеть пример с записью в постоянную память контроллера. Сам ещё не разбирался с этим делом, но вроде слышал что можно сохранять некоторые параметры в постоянную память, которая сохраняется даже при отключении питания контроллера. Было бы неплохим тоном закинуть туда настройки - как минимум IP и MAC, чтобы можно было менять прямо из интерфейса, а не в коде. Особенно это поможет с контроллером esp...т.к. там точно придется сохранять как минимум wifi сеть, пароль.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am

Re: Arduino Mega Server

Сообщение alexsis_76 »

но вроде слышал что можно сохранять некоторые параметры в постоянную память, которая сохраняется даже при отключении питания контроллера
Да это называется EEPROM,правда местный загрузчик видимо не умеет помещать строки в EEPROM, поэтому вместо того чтобы сделать так
byte EEMEM ESELF_MAC[6]= {0x00, 0x2A, 0xF5, 0x12, 0x67, 0xFA};
eeprom_read_block((void*)&T_SELF_MAC, (void*)ESELF_MAC, 6);
приходится делать так
byte EEMEM ESELF_MAC[6];
byte SELF_MAC[]= {0x00, 0x2A, 0xF5, 0x12, 0x67, 0xFA};;
eeprom_write_block(SELF_MAC,(void*)ESELF_MAC, 6);
eeprom_read_block((void*)&T_SELF_MAC, (void*)ESELF_MAC, 6);
вообщем через одно место
но зато загружает данные с EEPROM, правда строка все равно хранится в озу, но можно спрятать ее за PROGMEM , и доставать ее оттуда(ужаснее этой "среды разработки" я еще не видел) :)
полный код
/*
Modul Ethernet
part of Arduino Mega Server project
*/
#include <avr/eeprom.h>;
// Ethernet settings

byte EEMEM ESELF_MAC[6];
byte EEMEM ESELF_IP[4];
byte GATEWAY[] ={192,168,1,1};
byte SELF_MAC[]= {0x00, 0x2A, 0xF5, 0x12, 0x67, 0xFA};;
byte SELF_IP[]= {192, 168, 1, 34} ;

void ethernetInit() {
byte T_SELF_MAC[6];
byte T_SELF_IP[4] ;
Serialprint("Modul Ethernet...\n");
eeprom_write_block(SELF_MAC,(void*)ESELF_MAC, 6);
eeprom_write_block(SELF_IP,(void*)ESELF_IP,4);
eeprom_read_block((void*)&T_SELF_MAC, (void*)ESELF_MAC, 6);
eeprom_read_block((void*)&T_SELF_IP, (void*)ESELF_IP, 4);
Ethernet.begin(T_SELF_MAC, T_SELF_IP, GATEWAY);
Serialprint(" MAC: ");
printMac(T_SELF_MAC);
Serial.println();
Serialprint(" IP: ");
printIp(T_SELF_IP);
Serial.println();
modulEthernet = MODUL_ENABLE;
Serialprint("started\n");
}

void enableEthernet() {pinMode(10, OUTPUT); digitalWrite(10, LOW);}
void disableEthernet() {pinMode(10, OUTPUT); digitalWrite(10, HIGH);}
void enableSdCard() {pinMode( 4, OUTPUT); digitalWrite( 4, LOW);}
void disableSdCard() {pinMode( 4, OUTPUT); digitalWrite( 4, HIGH);}
Код взят прямо из библиотек компилятора без ардуиновской обертки , ардуино по моему имеет читать только по 1 байту, придется организовывать циклы.
P.S. С введением кеширования начали нормально загружаться картинки, иногда не загружалась последняя, причина не в том что сервер ее не отдавал, ее просто никто не спрашивал.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Alex...небольшая просьба...хотелось бы в новой версии мега сервера увидеть пример с записью в постоянную память контроллера.
Стандартная библиотека EEPROM позволяет легко и просто работать с постоянной памятью. Можно записывать ячейки, сохранять переменные различных типов и даже сохранять структуры и любые объекты — никаких проблем.

В АМС появится работа с EEPROM в ближайших версиях.
denis68
Сообщения: 2
Зарегистрирован: Вт апр 26, 2016 10:59 pm

Re: Arduino Mega Server

Сообщение denis68 »

Всем доброго времени суток.
Alex огромное спасибо за проделанную работу.
Очень хочется разобраться с AMS duo+w5100, третий день не могу запустить.
Все прошил, могу только попинговать, сайт не открывается.
Подскажите что может быть???

Modul SD...
SD started... OK
index.htm... found
started
Modul RTC...
Waiting for NTP sync...
2016-04-27 20:07:02 started
2016-04-27 20:07:02 Modul Server... started
2016-04-27 20:07:02 Modul Timers... started
2016-04-27 20:07:02 Modul SD Info... started
2016-04-27 20:07:02 Modul PIR's... started
2016-04-27 20:07:02 Modul Contacts... started
2016-04-27 20:07:02 Modul Temperature...
2016-04-27 20:07:02 Parasite power OFF
2016-04-27 20:07:02 Found 0 devices
2016-04-27 20:07:02 #0: 0 0 0 0 0 0 0 tempSTR
2016-04-27 20:07:02 #1: 0 0 0 0 0 0 0 tempHOM
2016-04-27 20:07:02 #2: 0 0 0 0 0 0 0 tempWRM
2016-04-27 20:07:02 started
2016-04-27 20:07:03 Modul Electro... started
2016-04-27 20:07:03 Modul nooLite... started
2016-04-27 20:07:03 GLOBAL Init DONE

2016-04-27 20:07:03 AMS WORK
2016-04-27 20:07:03 tempSTR: ID problem or not present
2016-04-27 20:07:03 tempHOM: ID problem or not present
2016-04-27 20:07:03 tempWRM: ID problem or not present
2016-04-27 20:07:03 tempSTR: ID problem or not present
2016-04-27 20:07:03 tempHOM: ID problem or not present
2016-04-27 20:07:03 tempWRM: ID problem or not present
2016-04-27 20:07:03 tempSTR: ID problem or not present
2016-04-27 20:07:03 tempHOM: ID problem or not present
2016-04-27 20:07:03 tempWRM: ID problem or not present
2016-04-27 20:07:04 tempSTR: ID problem or not present
2016-04-27 20:07:04 tempHOM: ID problem or not present
2016-04-27 20:07:04 tempWRM: ID problem or not present
2016-04-27 20:07:04 tempSTR: ID problem or not present
2016-04-27 20:07:04 tempHOM: ID problem or not present
2016-04-27 20:07:04 tempWRM: ID problem or not present
2016-04-27 20:07:05 tempSTR: ID problem or not present
2016-04-27 20:07:05 tempHOM: ID problem or not present
2016-04-27 20:07:05 tempWRM: ID problem or not present
2016-04-27 20:07:05 tempSTR: ID problem or not present
2016-04-27 20:07:05 tempHOM: ID problem or not present
2016-04-27 20:07:05 tempWRM: ID problem or not present
2016-04-27 20:07:05 tempSTR: ID problem or not present
2016-04-27 20:07:05 tempHOM: ID problem or not present
2016-04-27 20:07:05 tempWRM: ID problem or not present
2016-04-27 20:07:06 tempSTR: ID problem or not present
2016-04-27 20:07:06 tempHOM: ID problem or not present
2016-04-27 20:07:06 tempWRM: ID problem or not present
2016-04-27 20:07:06 tempSTR: ID problem or not present
2016-04-27 20:07:06 tempHOM: ID problem or not present
2016-04-27 20:07:06 tempWRM: ID problem or not present
2016-04-27 20:07:06 tempSTR: ID problem or not present
2016-04-27 20:07:06 tempHOM: ID problem or not present
2016-04-27 20:07:06 tempWRM: ID problem or not present
2016-04-27 20:07:07 tempSTR: ID problem or not present
2016-04-27 20:07:07 tempHOM: ID problem or not present
2016-04-27 20:07:07 tempWRM: ID problem or not present
2016-04-27 20:07:07 tempSTR: ID problem or not present
2016-04-27 20:07:07 tempHOM: ID problem or not present
2016-04-27 20:07:07 tempWRM: ID problem or not present
2016-04-27 20:07:07 tempSTR: ID problem or not present
2016-04-27 20:07:07 tempHOM: ID problem or not present
2016-04-27 20:07:07 tempWRM: ID problem or not present
2016-04-27 20:07:08 tempSTR: ID problem or not present
2016-04-27 20:07:08 tempHOM: ID problem or not present
2016-04-27 20:07:08 tempWRM: ID problem or not present
2016-04-27 20:07:08 tempSTR: ID problem or not present
2016-04-27 20:07:08 tempHOM: ID problem or not present
2016-04-27 20:07:08 tempWRM: ID problem or not present
2016-04-27 20:07:08 tempSTR: ID problem or not present
2016-04-27 20:07:08 tempHOM: ID problem or not present
2016-04-27 20:07:08 tempWRM: ID problem or not present
2016-04-27 20:07:09 tempSTR: ID problem or not present
2016-04-27 20:07:09 tempHOM: ID problem or not present
2016-04-27 20:07:09 tempWRM: ID problem or not present
2016-04-27 20:07:09 tempSTR: ID problem or not present
2016-04-27 20:07:09 tempHOM: ID problem or not present
2016-04-27 20:07:09 tempWRM: ID problem or not present
2016-04-27 20:07:10 tempSTR: ID problem or not present
2016-04-27 20:07:10 tempHOM: ID problem or not present
2016-04-27 20:07:10 tempWRM: ID problem or not present
2016-04-27 20:07:10 tempSTR: ID problem or not present
2016-04-27 20:07:10 tempHOM: ID problem or not present
2016-04-27 20:07:10 tempWRM: ID problem or not present
2016-04-27 20:07:10 tempSTR: ID problem or not present
2016-04-27 20:07:10 tempHOM: ID problem or not present
2016-04-27 20:07:10 tempWRM: ID problem or not present
2016-04-27 20:07:11 tempSTR: ID problem or not present
2016-04-27 20:07:11 tempHOM: ID problem or not present
2016-04-27 20:07:11 tempWRM: ID problem or not present
2016-04-27 20:07:11 tempSTR: ID problem or not present
2016-04-27 20:07:11 tempHOM: ID problem or not present
2016-04-27 20:07:11 tempWRM: ID problem or not present
2016-04-27 20:12:01 tempSTR: ID problem or not present
2016-04-27 20:12:01 tempHOM: ID problem or not present
2016-04-27 20:12:01 tempWRM: ID problem or not present
2016-04-27 20:17:01 tempSTR: ID problem or not present
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

denis68 писал(а):Всем доброго времени суток.
Alex огромное спасибо за проделанную работу.
Очень хочется разобраться с AMS duo+w5100, третий день не могу запустить.
Все прошил, могу только попинговать, сайт не открывается.
Подскажите что может быть???
Ну сервер у вас запускается судя по логу...может sd-карту не видит, и не может открыть содержимое? Либо на карте структура каталогов неправильная... Попробуйте отформатить её, и снова данные залить.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить