Dica: Otimização de memória com Arduino e DHT11

Veja nesta pequena dica como economizar memória do Arduino com esta library para o DHT11


Caso seu projeto use o sensor de temperatura DHT11, provavelmente você deve estar usando a excelente biblioteca da Adafruit DHT.

No entanto, existe um lib mais simples e rápida que pode ser um alternativa para projetos que precisam economizar o máximo possível de memória.

Trata-se da biblioteca SimpleDHT desenvolvida pelo desenvolvedor chinês Win Lin

Fiz um teste com o NodeMCU e tive um ganho de 6000 bytes de memória. No Arduino tive um ganho de 50%

Veja a seguir como utilizar a library…

Utilização

Esta biblioteca pode ser baixada e configurada pela própria IDE do Arduino.

Para isso, acesse o menu Sketch → Incluir Biblioteca → Gerenciar bibliotecas.
Digite na caixa de pesquisa o nome da lib SimpleDHT e solicite sua instalação.

Vá até o menu Arquivo → Exemplos e procure por DHT11Default

Veja o sketch de exemplo comentado:

Conclusão

A simpleDHT foi construída especificamente para o DHT11.
Para o DHT22 existe outra biblioteca que ocupa muito pouco espaço na memória e tem a vantagem de detectar qual o modelo do sensor está sendo usado:

https://github.com/markruys/arduino-DHT

Happy Sketching!

 

3 thoughts on “Dica: Otimização de memória com Arduino e DHT11”

  1. Poderia me ajudar por favor, estou há dias tentando ler os dados do sensor dht11(o módulo com 3 pinos) com o nomemcu e só me retorna “err=101”, utilizando no arduino ele funciona normalmente.

    ele fica em loop nesse trecho:
    if (dht11.read(pinDHT11, &temperature, &humidity, NULL)) {
    Serial.print(“Read DHT11 failed.”);
    return;
    }

    conexões
    Pino 1 coloquei no 3v e 5v, testei nos dois.
    Pino 2 coloquei 2 (igual ao seu código) e conectei na D4(testei também na D2)
    Pino 3 gnd

    Testei nos meus dois nodemcu e fiz o teste com os dois sensores mas há sempre o mesmo retorno.

    se puder por favor me ajudar, agradeço.

    Obrigado!!!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *