Датчики Dht 11 дают нулевое значение
temperature-sensor
dht11
void Sensor_value()
{ server.handleClient();
humidity = dht.readHumidity();
temperature = dht.readTemperature();
}
Я хочу сделать условие, если температура = null и влажность= null, что означает, что датчик не принимает показания, поэтому я хочу вернуться и снова принять значение
@Shrikant Nikam, 👍1
Обсуждение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
следует использовать только с указателями.
,
@Michel Keijzers
Смотрите также:
- Код считывания датчика DHT22 странно интерпретирует отрицательные значения (распространенная проблема)
- Датчик температуры и влажности DHT11 Код
- DS18B20 дает высокие показания. Как заставить его вернуть правильную температуру?
- Проблема с датчиком температуры и влажности DHT11
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- Сокращение времени считывания показаний датчиков температуры DS18B20.
- Проблемы с подключением I2C на ESP8266 — 12F, какие контакты использовать?
- DHT11 возвращает неверные значения
обе функции readHumidity() и readTemperature() имеют тип возврата float. NULL-это значение указателя типа, поэтому вы никогда не получите значение NULL в результате выполнения этих функций. Я думаю, что библиотека вернет NAN, если она не сможет считывать данные с датчика, @Lefteris E