Arduino Mega Server

Модератор: Alex

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

Re: Arduino Mega Server

Сообщение Sps » Вс июл 15, 2018 1:52 pm

Всем добрый день!
Перешёл на версию 0.17 все хорошо, только одна проблема показания с DHT22 не выводятся в Веб. Причем в монитор порта все выводится. На 0.16 2шт. DHT22 отлично работают, а вот на 0.17 что-то Server_Ajax уперся, не хочет Веб-морде передавать данные, страница даже не загружается. Как я понял 0.17 Server_Ajax в отличии от 0.16 не может разобрать данные с DHT22, хотя в чем там разница я не разобрался. Если закомментировать модуль DHT22 все оживает. Пляска с бубном, уже достала всех соседей, мозг отказывается работать (жара +40) нужен пендаль, помогите, может кто сталкивался с подобным.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вс июл 15, 2018 1:57 pm

Да , в 017 немного по другому ,но смысл тот же. Выложи скетч тут или дай доступ по Вьюверу (в личку).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Sps » Вс июл 15, 2018 11:29 pm

Выложи скетч тут или дай доступ по Вьюверу (в личку).
в Server_Ajax так..
СпойлерПоказать

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

#ifdef TEMPVL_FEATURE
  for (byte i = 0; i < MAX_TEMPVL_SENSORS; i++) {
    s += makeTag(objSensvl[i], "",      String(current_tempvl[i]));
    s += makeTag(objSensvl[i], "Health", String(tempvlSensorHealth[i]));
    }
    s += makeTag("mdTempvlHealth", "", String(tempvlModulHealth));
#endif
остальное в DASH.JS и на странице, все как по учебнику.
dht22.rar
(936 байт) 153 скачивания
За это сообщение автора Sps поблагодарил:
serghei (Пн июл 16, 2018 11:51 pm)
Рейтинг: 1.16%
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вс июл 15, 2018 11:54 pm

Однажды уже говорил - такие массивы с DHT не проскакивают. Попробуй по отдельности

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

#ifdef TEMPVL_FEATURE
     s += makeTag("dht1h",   "", String(dht1.readHumidity(), 1));
     s += makeTag("dht2h",  "", String(dht2.readHumidity(), 1));
     s += makeTag("dht1t",  "", String(dht1.readTemperature(), 1));
     s += makeTag("dht2t", "", String(dht2.readTemperature(), 1));     
    #endif  
В XML таблице должны появиться humDHT1 - tempDHT2. Дальше по учебнику )).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Sps » Пн июл 16, 2018 12:17 am

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

Re: Arduino Mega Server

Сообщение serghei » Пн июл 16, 2018 7:44 am

Страница не работает из за ошибок в скрипте. Что бы повторить ситуацию нужен полный набор файлов и код. И на какой платформе всё это собрано. Или хотя бы какие ошибки выдает браузер.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Sps » Пн июл 16, 2018 9:47 pm

Версия 0.16 работает все, версия 0.17 в составе с модулем DHT22 работать отказывается. Сам модуль DHT22 работает, в монитор порта идут показания, но страница не выводится, а браузер ругается так...
СпойлерПоказать
404.jpg
404.jpg (79.25 КБ) 4209 просмотров
Если отключаю модуль DHT22 браузер выводит страницу без проблем. Если модуль DHT22 работает и отдельно и в составе АМС значит Server_Ajax 0.17 который принимает данные с модуля, не может их разобрать,видно Alex в этой версии поставил капкан, думаю проблема именно здесь, пока рою...
Страница не работает из за ошибок в скрипте
тогда как объяснить, что по отдельности все работает?
Полный набор файлов = версия 0.17 + код модуля DHT22 (архив выше) остальное как тут платформа Mega 2560 + W5100
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн июл 16, 2018 11:34 pm

Sps писал(а):
Пн июл 16, 2018 9:47 pm
тогда как объяснить, что по отдельности все работает?
Закинул скетч на Дую. Чтобы сильно не ломать своё переименовал только имена и у меня 1 DHT_11 датчик. Все прекрасно работает. НО !!
1 Опрос датчиков надо вести хотя бы раз в минуту. Лучше в 10 - 15. Только надо таймеры дописать.
2 Добавь в лупе

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

   #ifdef TEMPVL_FEATURE
    if (cycle5m) {
     tempvlWorks();
      }
3 Если сервер грузится на 100 % - обычно страницы не открываются , хотя в сериале все в порядке.

Второго датчика нет , поэтому еррор. В скрипте

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

		  
		  		//Hum
	         try {
            var DHThum = this.responseXML.getElementsByTagName("dht1h'')[0].childNodes[0].nodeValue;
          } catch (err) {
               DHThum = "-1";
            } 
            	
			 try {
            var DHThum_= Math.round(dht1h, 1);
            document.getElementById("dash-DHThum").innerHTML = DHThum_;
            document.getElementById("dash-DHThum-hide").innerHTML = DHThum_;
			
			  } catch (err) { }  
			  
			  
			  
			  		  		//Temp
	         try {
            var DHTtemp = this.responseXML.getElementsByTagName('dht1t')[0].childNodes[0].nodeValue;
          } catch (err) {
               DHTtemp = "-99";
            }  
			
			 try {
            var DHTtemp_= Math.round(DHTtemp, 1);
            document.getElementById("dash-DHTtemp").innerHTML = DHTtemp_;
            document.getElementById("dash-DHTtemp-hide").innerHTML = DHTtemp_;
			
			
			  } catch (err) { }  
			  
			 
СпойлерПоказать
И так для двух датчиков
Sps_DHT22.jpg
Sps_DHT22.jpg (323.67 КБ) 4198 просмотров
PS . За скетч отдельное спасибо.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение Sps » Вт июл 17, 2018 6:37 pm

У меня по-прежнему как в танке. Этот код у меня работал на всех версиях начиная с 0.14, а на 0.17 просто засада, покажи какой у тебя код в Server_Ajax.
2 Добавь в лупе
не знаю, у меня все показания датчиков (а их много) обновляются каждые 20 сек (когда-то выставил для настройки, понравилось и не трогаю) и сервер на 100% не грузят.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вт июл 17, 2018 9:48 pm

Для чистоты эксперимента запустил 017 на Меге и твоим DHT22. Только датчик один и сидит на 34 пине. Всё адекватно работает. Подправленные страницы _dash.htm и dash.js
dash017.zip
(4.73 КБ) 157 скачиваний
В сервере ажакс только добавлено
СпойлерПоказать

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

    #ifdef DS18B20_FEATURE
      for (byte i = 0; i < getMaxDs18b20Sensors(); i++) {
        s += makeTag(getDs18b20Name(i), "", String(getDs18b20Value(i), 1));
      }
    #endif

        #ifdef TEMPVL_FEATURE
        for (byte i = 0; i < MAX_TEMPVL_SENSORS; i++) {
        s += makeTag(objSensvl[i], "",      String(current_tempvl[i]));
      //  s += makeTag(objSensvl[i], "Health", String(tempvlSensorHealth[i]));
       }
       // s += makeTag("mdTempvlHealth", "", String(tempvlModulHealth));
    #endif
Убрал уровень жизни датчиков.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить