Датчики Dht 11 дают нулевое значение

void Sensor_value()
{   server.handleClient();
    humidity = dht.readHumidity();
    temperature = dht.readTemperature();     
 }

Я хочу сделать условие, если температура = null и влажность= null, что означает, что датчик не принимает показания, поэтому я хочу вернуться и снова принять значение

, 👍1

Обсуждение

обе функции readHumidity() и readTemperature() имеют тип возврата float. NULL-это значение указателя типа, поэтому вы никогда не получите значение NULL в результате выполнения этих функций. Я думаю, что библиотека вернет NAN, если она не сможет считывать данные с датчика, @Lefteris E


1 ответ


1

Способ сделать это таков:

float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);

if (isnan(h) || isnan(t) || isnan(f)) {
  Serial.println("Не удалось считать данные с датчика DHT!");
  return;
}

Видишь https://www.hackster.io/MisterBotBreak/how-to-use-temperature-and-humidity-dht-sensors-9e5975 и https://stackoverflow.com/questions/40874880/getting-nan-readings-from-dht-11-sensor.

NULL следует использовать только с указателями.

,