ESP8266 и DHT22 считывают неправильные значения после перезапуска

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:

, 👍1

Обсуждение

Вы можете опубликовать код?, @Fahad

@Fahad только что добавил yml-код!, @luizfzs

Похоже, это может быть проблемой с ESPHome (особенно инициализация DHT22 при выполнении теплого сброса). Что я нахожу интересным, так это тот факт, что DHT22, даже когда возникает неисправность, кажется, генерирует "разумный" выход. Обычно вы ожидаете, что он полностью выйдет из строя., @StarCat