• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как такое происходит? "нечисло" проскакивает на Thingspeak

lues

New member
Всем привет.

Непонятная ситуация.
Обычная есп, обычный датчик температура/влажность AM2302. Он же DHT22.

Скетч получения значений ровно из примера библиотеки. Проще некуда. Библиотека адафрутитовская.

Код:
float temp = event.temperature;
ThingSpeak.setField(1, temp);
ThingSpeak.writeFields(myChannelNumber, thingspeakApiKey);
почти аналогичное с влажностью


Иногда датчик выдает ошибку "Not A Number". Иногда "null".
Бог с той ошибкой, мне не критично, блок питания просто гадкий, наверное изза выбросов по питанию. Но суть не в том.

КАК? вот это "nan" и "null" проходит через числовую переменную float и попадает на thingspeak?????
И в графике в виджете thingspeak на телефоне мне вместо неполученного значения "nan"

Это же не число.
 

Юрий Ботов

Moderator
Команда форума
И что? Значение float имеет полное право иметь значение NAN. Вот код из вашей библиотеки
Код:
float DHT::readHumidity(bool force) {
  float f = NAN;
  if (read()) {
    switch (_type) {
    case DHT11:
      f = data[0];
      break;
    case DHT22:
    case DHT21:
      f = data[0];
      f *= 256;
      f += data[1];
      f *= 0.1;
      break;
    }
  }
  return f;
}
То есть если не прочлось то вернуть NAN.
Никто за вас не поставит проверку на NULL и NAN прежде чем вы пошлете данные на сервер.
 
Сверху Снизу