Страница 203 из 326
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 11:01 am
Nusmax
Добрый день. Вливаюсь в вашу тусовку
3 дня просидел с сервером. Итог: работают датчики PIR и температуры, причем разнесены на 2 контроллера, связь по nrf24.
С nrf24 я помучился конечно. Выяснилось, что генерировался ID, который ломал структуру XML, видимо запрещенные символы.
Решил обрезав диапазон "MIN_ID_CHAR", "MAX_ID_CHAR" до значений 97, 122 соответственно. Это на вкладке "aid" контроллера (мало ли кому пригодится).
В общем я в восторге

, останавливаться на достигнутом не собираюсь)
Для того чтобы ускорить свои изыскания, хочу задать глупый вопрос.
На какой вкладке основной программы сервера формируется итоговые xml для вывода в веб по GET запросу (dash и nrf24)?
Заранее извиняюсь если вопрос глупый.
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 11:34 am
serghei
И Вас приветствуем. Глупых вопросов не бывает, если что то не понятно. По моему глубокому убеждению XML таблица формируется в функции
Код: Выделить всё
// Dash
void responseDash(EthernetClient cl) {
String s = tagXmlVersion();
s += openInputs();
s += makeModules();
s += makeTag("uptime", "", uptimeString());
s += makeTag("freeRAM", "", String(freeMem()));
s += makeCpuLoad();
s += makeTag("lifer", "", String(lifer));
s += makeTime();
s += makeTag("day", "", String(day()));
s += makeTag("month", "", String(month()));
s += makeTag("weekday", "", String(weekday()));
во вкладке ServerAjax. Причем если хотите добавить в вывод Даш панели свои дополнительные данные, их надо продублировать. Например с SD картой есть вывод на страницу её емкости. Чтобы это отобразить на начальной странице , надо добавить к выше приведенному коду строчку
Код: Выделить всё
s += makeTag("sdSize", "", String(sdVolumeSize()));
Ну и обязательно перелопатить Scripts.js . Очень подробно про этот механизм расписано
ТУТ
Чтобы цифры с сенсора вывести в даш-панель добавьте
Код: Выделить всё
#ifdef NRF24_FEATURE
s += makeTag("c1","Temp1", String(nrf1Temp1));
#endif
внутрь void responseDash(EthernetClient cl).
А что значит разнесены на 2 контроллера??
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 12:05 pm
Nusmax
Спасибо за подробный ответ!
serghei писал(а): А что значит разнесены на 2 контроллера??
Ну это стандартно, ничего пока тут не придумывал. Один датчик температуры стоит а базе, другой на контроллере, который шлет данные на базу через nrf24. Я планирую сделать около 4 таких контроллеров по квартире, чтобы не тянуть длинные провода, соответственно большая часть датчиков будет привязана к контроллерам (ну это пока в планах).
Кстати, у меня есть nrf24 от RobotDyn, подключил их через их же адаптеры на 5в, чтобы не мучиться с 3.3в питанием.
Дак вот, с адаптерами без внешней антенны довольно много ошибок выходит в serial, с антенной ошибок нет вообще. Не знаю с чем связано (расстояние вроде небольшое), но лучше сразу с антенной брать.
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 12:39 pm
serghei
Ну если так интересно, то выкладывал код для сенсора с двумя температурами, двумя счетчиками и влажностью DHT.
В качестве сенсоров использую Nano3. Питание NRF с внутреннего стабилизатора.Ошибок нет.
В дистрибутиве описана работа с одним сенсором. Пробовал запускать несколько, но не знаю как распарсить ответы от них. (сервер ответы видит правильно).Поэтому гоняю 3 сервера на разных трубах.
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 4:40 pm
Nusmax
Оказывается, есть еще проблема с nrf24.
Я конечно буду копаться сам, но может у кого-то уже была.
При включении базы - данные приходят и заполняются. Но далее - их обновления не происходит.
Температура в течении дня не меняется. Если перезагрузить сервер - новая температура подтянется снова, и снова не будет обновляться.
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 5:14 pm
serghei
Это известная ошибка.Решение объяснил
Cahek2202 ТУТ. Посмотри и сообщения дальше.
Re: Arduino Mega Server
Добавлено: Вт апр 04, 2017 7:43 pm
ser009
тут реализован способ передачи значения по изменению. Если он вас не устраивет можете использовать время. скажем 1 раз в минуту. Циклы заложены в скетче. Можете добавить свои при необходимости
:?: Arduino Mega Server
Добавлено: Чт апр 06, 2017 8:04 am
ser009
Есть описание как передать значение с WEB -> Arduino?
с отправкой более менее понятно
Код: Выделить всё
request.open("GET", "request_tester" + Test1 + Test2 + randomNoCache(), true);
Поля ввода данных которые я хочу передать и дальше вызов функции
Код: Выделить всё
<input type='text' id='Test1' /> // вводимое значение 111
<input type='text' id='Test2' /> // вводимое значение 222
<br /><br />
<input type='button' value='Отправить' onclick='getButton'/>
getButton(){
var T1=document.getElementById('Test1').value;
var T2=document.getElementById('Test2').value;
}
Не могу сообразить как полученное значение записать?
Допустим я хочу на выходе получить
Код: Выделить всё
http://xxx.xxx.xxx.xx/request_tester&Test1=111&Test2=222
Код: Выделить всё
void setTest(){
if (StrContains(HTTP_req, "Test=111")) {
}
И полученный пакет как обработать?
Re: Arduino Mega Server
Добавлено: Чт апр 06, 2017 8:45 am
serghei
Страниц 20 назад в ветке АМС для ЕСП выкладывали версию для светодиодной ленты. Там с браузера можно было менять IP адреса и имя сети. Но оно запоминается в EEPROM. В Дуе её нет, но может механизм поймешь ?? Найду ссылку - сброшу сюда.
Нашел. Посмотри его сообщения дальше. На ЕСП это работает, проверял.(страница "сеть". Она такая же как на Дуе. Ну и плюс в ажаксе и главном скрипте много дополнений).
Re: Arduino Mega Server
Добавлено: Чт апр 06, 2017 10:15 am
Alex
Страниц 20 назад в ветке АМС
— Дедушка, расскажи мне про джедаев
— Ну, слушай: в давние-стародавние времена, 20 световых лет назад в кластере АМС...
