ESP8266 и DHT22 считывают неправильные значения после перезапуска
Я собрал схему на макетной плате с Wemos D1 Mini (ESP8266) и датчиком DHT22. Важно сказать, что я использую ESP Home и настраиваю код с использованием формата yml.
Когда он загружает код и запускается, показания правильны, как показано ниже:
INFO Connecting to temp-test.local:6053 (192.168.1.166)
INFO Successfully connected to temp-test.local
[15:22:19][D][dht:048]: Got Temperature=29.1°C Humidity=27.0%
[15:22:19][D][sensor:092]: 'Living Room Temperature': Sending state 29.10000 °C with 1 decimals of accuracy
[15:22:19][D][sensor:092]: 'Living Room Humidity': Sending state 27.00000 % with 0 decimals of accuracy
Теперь, если по какой-то причине я перезапущу плату с помощью кнопки сброса платы, она начнет считывать странные значения, как показано ниже. Иногда он считывает и влажность, и температуру, иногда только температуру.
INFO Connecting to temp-test.local:6053 (192.168.1.166)
INFO Successfully connected to temp-test.local
[15:22:58][D][dht:048]: Got Temperature=4.5°C Humidity=25.4%
[15:22:58][D][sensor:092]: 'Living Room Temperature': Sending state 4.50000 °C with 1 decimals of accuracy
[15:22:58][D][sensor:092]: 'Living Room Humidity': Sending state 25.40000 % with 0 decimals of accuracy
Показания продолжают ошибаться даже после нескольких перезапусков с помощью кнопки сброса платы. Я заметил, что если я удалю USB-кабель и снова подключу его, то он начнет читать правильно, как показано ниже.
INFO Connecting to temp-test.local:6053 (192.168.1.166)
INFO Successfully connected to temp-test.local
[15:24:20][D][dht:048]: Got Temperature=29.0°C Humidity=26.4%
[15:24:20][D][sensor:092]: 'Living Room Temperature': Sending state 29.00000 °C with 1 decimals of accuracy
[15:24:20][D][sensor:092]: 'Living Room Humidity': Sending state 26.40000 % with 0 decimals of accuracy
У меня нет большой проблемы с этим, но я раздражен этим, так как я заметил такое поведение в плате NodeMCU, использующей аналогичную проводку и ESP Home.
Ниже - рисунок проводки.
Кто-нибудь испытывал это раньше или у кого-то есть какие-то подсказки?
Правка
esphome:
name: temp-test
platform: ESP8266
board: d1_mini
sensor:
- platform: dht
pin: D2
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 10s
- platform: adc
pin: A0
name: "Living Room Light"
update_interval: 10s
wifi:
ssid: "mywifinetwork"
password: "mysupersecretpass"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Temp-Test Fallback Hotspot"
password: "xxxxxxxxxxxxx"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
@luizfzs, 👍1
Обсуждение0
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Вы можете опубликовать код?, @Fahad
@Fahad только что добавил yml-код!, @luizfzs
Похоже, это может быть проблемой с ESPHome (особенно инициализация DHT22 при выполнении теплого сброса). Что я нахожу интересным, так это тот факт, что DHT22, даже когда возникает неисправность, кажется, генерирует "разумный" выход. Обычно вы ожидаете, что он полностью выйдет из строя., @StarCat