Arduino Mega Server

Модератор:Alex

Sps
Сообщения:45
Зарегистрирован:Вт окт 27, 2015 4:23 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз
Re: Arduino Mega Server

Сообщение Sps » Вс апр 24, 2016 11:15 am

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
Откуда:Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Вс апр 24, 2016 11:21 am

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
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пн апр 25, 2016 10:49 am

Посмотрел код файловой системы, поднял частоту SPI почти никакого, видимо это предел меги, но есть другой способ, воспользоваться кешем браузера, кешируем картинки и css, получаем вот что
Безымянный_1.JPG
Безымянный_1.JPG (155.43КБ)12340 просмотров
как видим грузится только первый файл , остальное берется из кеша, при первой загрузке он заполняется, зато потом при переходе страницы появляются мгновенно(браузер берет из из своего кеша, а не запрашивает с устройства, все скрипты на страницах вроде работают).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КБ)12345 просмотров
Аватара пользователя
nick7zmail
Сообщения:7573
Зарегистрирован:Пн окт 28, 2013 8:14 am
Откуда:Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Вт апр 26, 2016 8:29 pm

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

Re: Arduino Mega Server

Сообщение alexsis_76 » Ср апр 27, 2016 6:20 am

но вроде слышал что можно сохранять некоторые параметры в постоянную память, которая сохраняется даже при отключении питания контроллера
Да это называется 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
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Ср апр 27, 2016 1:42 pm

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

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

Re: Arduino Mega Server

Сообщение denis68 » Ср апр 27, 2016 8:06 pm

Всем доброго времени суток.
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
Откуда:Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Чт апр 28, 2016 9:59 am

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

Re: Arduino Mega Server

Сообщение serghei » Чт апр 28, 2016 10:08 am

У меня такая беда была ,когда локалка была не правильно настроена. Главное чтобы мега и рутер были в одной подсети.
И еще- на ХР и хроме в упор не мог увидеть страницы.Только с переходом на семёрку и оперу.Если есть вай-фай попробуйте открыть с телефона.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения:2357
Зарегистрирован:Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Чт апр 28, 2016 6:01 pm

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