No Arduino IDE 2: Ferramentas → Gerir Bibliotecas (ou clica no ícone de livro na barra lateral).
Na barra de pesquisa escreve: DHT sensor library
Seleciona DHT sensor library by Adafruit e clica em Instalar. Aceita instalar as dependências (Adafruit Unified Sensor).
#include <DHT.h>
#define PINO_DHT 2
#define TIPO_DHT DHT11 // DHT11 ou DHT22
DHT dht(PINO_DHT, TIPO_DHT);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("DHT11 iniciado...");
}
void loop() {
delay(2000); // DHT precisa de pelo menos 2s entre leituras
float hum = dht.readHumidity();
float temp = dht.readTemperature(); // Celsius
// Verificar se a leitura é válida
if (isnan(hum) || isnan(temp)) {
Serial.println("Erro na leitura do DHT!");
return;
}
Serial.print("Temperatura: "); Serial.print(temp); Serial.println(" C");
Serial.print("Humidade: "); Serial.print(hum); Serial.println(" %");
// Índice de calor (sensação térmica)
float ic = dht.computeHeatIndex(temp, hum, false);
Serial.print("Índice calor: "); Serial.print(ic); Serial.println(" C");
Serial.println("---");
}#include <DHT.h>
#define PINO_DHT 2
#define LED_OK 12 // Verde — condições normais
#define LED_ALR 13 // Vermelho — alerta
#define BUZZER 9
#define TEMP_MAX 28.0
#define HUM_MAX 70.0
DHT dht(PINO_DHT, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED_OK, OUTPUT);
pinMode(LED_ALR, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) return;
Serial.print(t); Serial.print(" C | ");
Serial.print(h); Serial.println(" %");
bool alerta = (t > TEMP_MAX || h > HUM_MAX);
digitalWrite(LED_OK, !alerta);
digitalWrite(LED_ALR, alerta);
if (alerta) {
tone(BUZZER, 1000, 300);
Serial.println("⚠ ALERTA: condições fora dos limites!");
}
}#!/usr/bin/env python3
# pip3 install adafruit-circuitpython-dht adafruit-blinka
import adafruit_dht
import board, time
sensor = adafruit_dht.DHT11(board.D4) # GPIO4 = pino físico 7
while True:
try:
temp = sensor.temperature
hum = sensor.humidity
print(f"Temp: {{temp}}°C Humidade: {{hum}}%")
except RuntimeError as e:
print(f"Leitura falhada: {{e}}")
time.sleep(2.0)