Automatiza tu huerto con ESP32 y DHT22
¿Tienes un huerto casero y quieres monitorear su ambiente sin gastar en sistemas comerciales? En este tutorial, construiremos un sistema de monitoreo de humedad y temperatura usando componentes 100% originales, código listo para usar y una fuente de alimentación segura.
¿Por qué este proyecto?
Las plantas como tomates, lechugas o hierbas aromáticas requieren condiciones específicas de humedad (40–70%) y temperatura (18–25°C). Fuera de ese rango, sufren estrés, crecen más lento o se enferman. Con este sistema, podrás:
- Monitorear en tiempo real desde tu computador.
- Registrar datos para analizar tendencias.
- Preparar la base para alertas o riego automático.
Materiales necesarios
Todos los componentes están disponibles en Prime Imports SpA con garantía de autenticidad:
- ESP32-WROOM-32E original – $8.990 CLP
- Sensor DHT22 – con resistencia pull-up integrada (evita falsos lecturas)
- Fuente Mean Well LRS-50-12 – $14.990 CLP
- Protoboard, jumpers M-M y cable USB-C
⚠️ Importante: No uses réplicas del ESP32 o DHT22. Las falsificaciones suelen reportar valores estables pero incorrectos (ej: siempre 25°C y 50% HR), lo que arruina el proyecto.
Diagrama de conexión
El DHT22 es un sensor digital de 3 pines. La conexión es directa al ESP32:
VCC (DHT22) → 3.3V (ESP32)
Data (DHT22) → GPIO4 (ESP32)
GND (DHT22) → GND (ESP32)
✅ Consejo profesional: El DHT22 ya incluye una resistencia pull-up de 5.1kΩ entre VCC y Data. Si usas un módulo genérico sin ella, añade una resistencia externa.
Código fuente
Usaremos la librería oficial DHT.h de Adafruit, compatible con ESP32:
#include "DHT.h"
#define DHTPIN 4 // GPIO donde está conectado el DHT22
#define DHTTYPE DHT22 // Modelo del sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
Serial.println("=== Sistema de Monitoreo de Huerto ===");
Serial.println("Leyendo datos cada 2 segundos...\n");
}
void loop() {
// Lee humedad y temperatura
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
// Verifica si la lectura es válida
if (isnan(humedad) || isnan(temperatura)) {
Serial.println("❌ Error: Lectura inválida del sensor DHT22");
return;
}
// Imprime resultados
Serial.print("🌱 Humedad: ");
Serial.print(humedad);
Serial.print("%\t");
Serial.print("🌡️ Temperatura: ");
Serial.print(temperatura);
Serial.println("°C");
// Espera 2 segundos antes de la próxima lectura
delay(2000);
}
Explicación del código
#include "DHT.h": incluye la librería de Adafruit.DHT dht(DHTPIN, DHTTYPE);: inicializa el sensor en GPIO4.isnan(): verifica si el sensor falló (común en réplicas).delay(2000): el DHT22 no debe leerse más de una vez cada 2 segundos.
Pruebas y resultados
Con componentes originales, los resultados son estables y coherentes:
=== Sistema de Monitoreo de Huerto ===
Leyendo datos cada 2 segundos...
🌱 Humedad: 58.20% 🌡️ Temperatura: 22.30°C
🌱 Humedad: 58.30% 🌡️ Temperatura: 22.30°C
🌱 Humedad: 58.10% 🌡️ Temperatura: 22.40°C
⚠️ Si ves valores como 0.00 o NaN, revisa:
- Conexión del cable Data (GPIO4).
- Alimentación estable (usa la fuente Mean Well, no el USB del computador).
- Autenticidad del sensor (réplicas suelen fallar aquí).
Próximos pasos
Este es solo el inicio. En futuros artículos, agregaremos:
- Registro de datos en tarjeta SD.
- Visualización en pantalla OLED.
- Alertas por correo usando IFTTT.
- Control de riego con relé y bomba de 12V.
¿Quieres los componentes originales?
Todos los productos usados en este tutorial están disponibles en Prime Imports SpA con:
- ✅ Garantía de autenticidad.
- ✅ Factura con RUT.
- ✅ Soporte técnico postventa.
¿Interesado? Escríbenos a: ventas@primeimportsspa.cl