0
respostas

ESP8266 lendo dados invalidos do DHT22 - com solucao

Boa noite.

Quero compartilhar aqui um problema que tive com a leitura do ESP8266 + DHT22

Eu estava recebendo dados invalidos de temperatura e umidade usando o codigo indicado na aula. Em uma pesquisa mais aprofundada, observei que identificaram que algumas placas ESP822 bootam mais rapido que o sensor, deixando o mesmo em uma condição inutilizavel até que seja reiniciado da forma correta.

Pelo serial monitor as leituras vinham assim: Temperatura: 2147483647 c Umidade: 2147483647% Temperatura: 2147483647 c Umidade: 2147483647% Temperatura: 2147483647 c Umidade: 2147483647% Temperatura: 2147483647 c Umidade: 2147483647% Temperatura: 2147483647 c Umidade: 2147483647%

Tive que aplicar um contorno na inicialização do sensor. Basicamente, dentro da funcao setup() eu adicionei as linhas de codigo abaixo:

// workaround for DHT22 due to NAN error digitalWrite(DHTPIN, LOW); // sets output to gnd pinMode(DHTPIN, OUTPUT); // switches power to DHT on delay(1000); // delay necessary after power up for DHT to stabilize dht.begin();

Apos isto, e sem mudar mais nada no codigo, o problema foi resolvido.

detalhes mais tecnicos acerca do problema aqui: https://github.com/adafruit/DHT-sensor-library/issues/94