Arduino Mega Server для esp8266

Модератор: Alex

alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server для esp8266

Сообщение alexsis_76 » Чт фев 02, 2017 11:42 am

Так кто её собирает? Скрипт на карте или код в ЕСП
код в ЕСП
ты собственно кусок привел
void responseDash(WiFiClient cl) {
String s = tagXmlVersion();
s += "\n<inputs>\n"; // В ранних версиях
s += makeModules();
s += makeTag("auth", "", String(authMode));
s += makeTag("uptime", "", uptimeString());
s += makeTag("freeRAM", "", String(freeMem()));
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Чт фев 02, 2017 12:33 pm

На работе на другом компе все нормально запустилось..... Чудеса да и только....Видно винда съезжает потихоньку.
Анн нет. Включил комп, зашел на страницу NRF24 . Все отобразилось. Перегрузил страницу и опять пропало. Похоже это кеш браузера балуется?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Ср фев 08, 2017 6:20 pm

vladragor писал(а):Вопрос по авторизации в АМС кто разобрался.
АМС в связке с МД
если заходишь на АМС в браузере все норм запросило пароль и все дальше работаем.....
В очередной раз предпринял попытку воткнуть Электромодуль в ЕСП. Я понимаю, что "родной" работать не будет , но сделал с единственной целью - научиться передавать 6 значений температур , счетчиков и влажности с сенсора (через.....получаеся). Сам АМС подключен к МД и отправляет свой статус и свои температуры нормально. А вот когда я захожу в браузер АМС опять выползла страница авторизации. Выключаю элекромодуль - все нормально. Я не могу понять - кто это так гадит ))) - АМС , Алиса или мой роутер? Никакие пароли никуда не ставил и ни одна комбинация не подходит.
Рано или поздно я конечно вырежу процедуру передачи данных и сделаю автономной. А за одно и попутный вопрос скорее к пользователям МД. Температуры передаются каждая отдельным запросом. А 14 электо параметров одним. Как правильнее с точки зрения дальнейшей обработки значений в МД ? Мой " консультант" и учитель передает по одному . Какие подводные камни будут впереди?
PS..Только сейчас дошло ,когда увидел картинку, почему ругается браузер и как привязать наше число к спидометру через Jquery библиотеки......
СпойлерПоказать
serial_MD.jpg
serial_MD.jpg (258.51 КБ) 7534 просмотра
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server для esp8266

Сообщение Alex » Ср фев 08, 2017 6:47 pm

Температуры передаются каждая отдельным запросом. А 14 электо параметров одним. Как правильнее с точки зрения дальнейшей обработки значений в МД
Наверное уже в пятый или шестой раз пишу — у М есть ахиллесова пята — когда данные поступают чаще, чем раз в 10 секунд потоком, он начинает тормозить, а когда раз в 5 секунд, то вообще загрузка повышается до 80-90 процентов.

С этой точки зрения лучше посылать пакетом. Распаковка всех 14-и значений не вызывает у М никаких проблем.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Пт фев 17, 2017 1:10 pm

В общем разобрался я с авторизацией. При переносе вкладки Электро и добавлении в Ажаксе пропустил один запрос HTTP. И конечно браузер получает 503 ошибку и начинает ругаться )). Теперь 14 данных можно сливать на МД одним запросом.Думается , что если продолжить код , то можно сколько угодно цифр передавать.
Теперь стоит другая проблема - плиточный интерфейс. Простое добавление данных и подгонка под квадратики на заднем плане в корне не верна. При смене монитора все порушится.
Не понятно , почему вообще тема АМС на ЕСП заглохла. Либо никому не интересно , либо все в шоколаде - а это далеко не так. Даже мне с нулевыми знаниями удалось нормально запустить 4 версии серверов на SD карте и чистом модуле , nrf24 с мульти сенсорами.
Alex А вообще планируется " портация " 016 версии на ЕСП , хотя бы в части плиточного интерфейса? Я сейчас пытаюсь перенести код , но загвоздка в server_maker. Выскакивают ошибки компиляции. Код вставить не получается - превышен лимит на форуме , а что то удалять не спортивно.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server для esp8266

Сообщение Alex » Пт фев 17, 2017 1:27 pm

Alex А вообще планируется " портация " 016 версии на ЕСП , хотя бы в части плиточного интерфейса? Я сейчас пытаюсь перенести код , но загвоздка в server_maker. Выскакивают ошибки компиляции. Код вставить не получается - превышен лимит на форуме , а что то удалять не спортивно.
Планируется постепенное улучшение всех версий АМС, но всё тормозится из-за моей загруженности. С другой стороны, все текущие версии АМС являются стабильными, на их основе можно разрабатывать любые проекты и я не считаю их обновление первостепенной задачей.

Форум последнее время колбасит неподетски — даже я, как администратор, с трудом могу на него зайти.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Вт мар 07, 2017 8:56 am

Приветствую Всех. Ребята , помогите разобраться с передачей значений с сенсора одним пакетом в МД. Цель - передать 14 данных , полученных с сенсора ( и рассчитанные АМС ) на сервер МД. Код заимствовал из модуля "электро". Для этого просто его подключил в проект. Заменил значения мощности на свои температуры , расход воды и напряжение батарейки. Я понимаю, что это не правильно и избыточно , но по другому пока не знаю как. Что сделал :
1 Так как серверов много , у каждого изменил название пакета
СпойлерПоказать

Код: Выделить всё

void electroWorks() {
  getUIP("packTemp8", START_PIN, END_PIN, samples);
}
2 У каждого сервера изменил названия переменных в пакете
СпойлерПоказать

Код: Выделить всё

void sendElectroMajor(char obj[], byte STT, byte STP) {
  // для посылки дробной части значения
  int UPrms_[MAX_UI_SENSORS];  

  // Вычисляем дробные части значений для формирования строки
  UPrms_[U] = (middleUPrms[U] - (int)middleUPrms[U]) * 100;
  for (int i = STT; i < STP; i++) {
    UPrms_[i] = (middleUPrms[i] - (int)middleUPrms[i]) * 100;
  }
  
  if (STT == START_PIN && STP == END_PIN) {
    sprintf(buf, "GET /objects/?object=%s&op=m&m=update&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d&%s=%0d.%d HTTP/1.0",
 obj, "c1", (int)middleUPrms[U], abs(UPrms_[U]),
      "c2", (int)middleUPrms[1], abs(UPrms_[1]),
      "c3", (int)middleUPrms[2], abs(UPrms_[2]),
      "c4", (int)middleUPrms[3], abs(UPrms_[3]),
      "c5", (int)middleUPrms[4], abs(UPrms_[4]),
      "c6", (int)middleUPrms[5], abs(UPrms_[5]),
      "c7", (int)middleUPrms[6], abs(UPrms_[6]), 
      "c8", (int)middleUPrms[7], abs(UPrms_[7]),
      "c9", (int)nrf1Battery, abs(0),
      "c10",(int)nrf1Temp1, abs(0), 
      "c11",(int)nrf1Temp2,abs(0),
      "c12",(int)nrf1DHThum, abs(0),
      "c13",(int)nrf1Vol1, abs(0),
      "c14",(int)nrf1Vol2, abs(0));
    #ifdef MAJORDOMO_FEATURE
      sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
    #endif
  }
} // sendElectroMajor( )
 
3 Конечно прописал в МД связь всех серверов и вижу значения , историю и самое главное для меня "SteelSeries".
Я понимаю, что это дико не правильно , и прошу помощи разобраться.
1 Как вырезать код sprintf(buf, "GET /objects/? из условия if и сделать его самостоятельным ?
2 Куда вообще его вставить , если надо передавать значения с сенсора ?
Температура nrf1Temp1 имеет 2 знака после запятой. Как рассчитать и передать , я сообразил. Т.к. это вода - то минус это нонсенс ( хотя не факт)
Влажность nrf1DHThum всегда целое и положительное.
Напряжение батареи то же целое и положительное
Расход воды так же целое и максимально 32 000 литров ( другой сервер считает импульсы электросчетчиков )
Как вообще это окультурить и сделать правильно ?
Да , все это крутится на платформе ESP.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server для esp8266

Сообщение nick7zmail » Вт мар 07, 2017 9:00 am

Такое кол-во данных проще сформировать в json строку, а в МД - скрипт, забирающий данные...я кому-то уже рассказывал, как это делается, могу поискать по форуму.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server для esp8266

Сообщение nick7zmail » Вт мар 07, 2017 9:02 am

Вот, нашел тему, там всего 7 страниц - почитай)) viewtopic.php?f=4&t=3145

Собственно конкретный вариант решения viewtopic.php?p=37509#p37509
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для esp8266

Сообщение serghei » Вт мар 07, 2017 9:26 am

Спасибо ! Обязательно почитаю. Просто тут уже все готово и работает идеально. АМС вообще не чувствует загрузки, когда выплевывает строку. При передаче трех температур отдельно + своё состояние останавливается на пару секунд.
PS. Вот только стало понятно , как работает связка АМС и МД, как надо переделывать все по новому...
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить