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:
#include <SimpleDHT.h>
// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 2
int pinDHT11 = 2; //Sensor conectado ao pino 2
SimpleDHT11 dht11; //Criação do objeto para a biblioteca
void setup() {
Serial.begin(9600);
}
void loop() {
// start working...
Serial.println("=================================");
Serial.println("Sample DHT11...");
// read without samples.
//Variáveis para as leitura
byte temperature = 0;
byte humidity = 0;
if (dht11.read(pinDHT11, &temperature, &humidity, NULL)) {
Serial.print("Read DHT11 failed.");
return;
}
Serial.print("Sample OK: ");
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" %");
// DHT11 sampling rate is 1HZ.
delay(1000); //Delay necessário
}
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!