Tutorial ESP32 35/55 - Monitor de plantas, suelo, temperatura y luz | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, construiremos un monitor de plantas utilizando el microcontrolador ESP32 del Kit de Aprendizaje de IoT de SunFounder. Este proyecto combina varios componentes para monitorear la humedad del suelo, la temperatura, la humedad y los niveles de luz. Al final de esta guía, tendrás un sistema completamente funcional que puede gestionar y mostrar estos parámetros críticos para el cuidado de las plantas. Para una explicación visual detallada, asegúrate de revisar el video (en el video a las 00:00).

Hardware Explicado
Los componentes principales utilizados en este proyecto incluyen el microcontrolador ESP32, el sensor DHT11, el sensor de humedad del suelo, el resistor dependiente de la luz (LDR) y un LCD para mostrar datos. El ESP32 sirve como el cerebro de la configuración, manejando el procesamiento de datos y las tareas de control. Cuenta con Wi-Fi y Bluetooth integrados, proporcionando opciones de conectividad para el monitoreo remoto.
El sensor DHT11 mide la temperatura y la humedad, mientras que el sensor de humedad del suelo detecta los niveles de humedad en el suelo. El LDR mide la intensidad de la luz ambiente, lo que permite obtener información sobre las condiciones de iluminación de la planta. Cada componente desempeña un papel crucial en garantizar la salud de la planta al proporcionar datos en tiempo real.
Detalles de la hoja de datos
| Fabricante | SunFounder |
|---|---|
| Número de pieza | DHT11 |
| Voltaje de lógica/entrada/salida | 3.3 V |
| Tensión de alimentación | 5 V |
| Corriente de salida (por canal) | 20 mA |
| Corriente de pico (por canal) | 50 mA |
| Orientación sobre la frecuencia PWM | N/A |
| Umbrales de lógica de entrada | 0.3 VCC (bajo), 0.7 VCC (alto) |
| Caída de tensión / RDS(on)/ saturación | N/A |
| Límites térmicos | 0°C a 50°C |
| Paquete | DIP |
| Notas / variantes | Compatible con DHT22 |
- Asegure niveles de voltage adecuados para cada componente (5V para el controlador del motor, 3.3V para los sensores).
- Utiliza resistencias de pull-down para los botones pulsadores para evitar entradas flotantes.
- Mantén el cableado ordenado para evitar confusiones y posibles cortocircuitos.
- Verifica las conexiones antes de encender el circuito para prevenir daños.
- Verifica el cableado del DHT11, ya que es sensible a las conexiones incorrectas.
Instrucciones de cableado

Para cablear los componentes, comienza conectando las líneas de alimentación y tierra. El ESP32 debe ser alimentado con una batería de litio, conectando el terminal positivo a la línea VCC y la tierra a la línea GND en la placa de pruebas. El pin de datos del sensor DHT11 se conecta aPIN 13, mientras su VCC va a la línea de 3.3V y GND a tierra. El sensor de humedad del suelo se conecta de manera similar: su pin de señal aPIN 14, VCC a 3.3V, y GND a tierra.
Para el LDR, conecta un pin a la línea de 3.3V y el otro aPIN 35, con una resistencia de 10k ohmios conectada desde el LDR a tierra. La pantalla LCD se conecta a la línea de 5V para la alimentación y utilizaSDAySCLpines conectados aPIN 21yPIN 22, respectivamente. Finalmente, conecte el botón pulsador aPIN 32con la resistencia de pull-down conectada a tierra, asegurando que lea bajo cuando no se presiona y alto cuando se presiona.
Ejemplos de código y tutoriales
El núcleo de nuestro programa comienza definiendo los pines para cada componente. Por ejemplo,DHTPINse asigna aPIN 13para el sensor DHT11, mientrasMOIS_PINestá programado paraPIN 14para el sensor de humedad. Esta organización ayuda a llevar un registro de qué sensor está conectado a qué pin.
#define DHTPIN 13 // Set the pin connected to the DHT11 data pin
#define MOIS_PIN 14 // Soil moisture module
#define LIGHT_PIN 35 // Photoresistor
A continuación, inicializamos el sensor DHT y la pantalla LCD dentro delsetup()función. Esto es crucial ya que prepara estos componentes para su funcionamiento. Asegurándose de llamardht.begin()es esencial para que el sensor DHT comience a leer valores correctamente.
void setup() {
Serial.begin(115200);
dht.begin(); // Initialize the DHT11
lcd.init(); // Initialize the LCD
lcd.backlight();
}
En elloop()en la función, leemos continuamente los valores de temperatura y humedad, mostrándolos en el LCD. Si se presiona el botón, se activa el motor para regar las plantas. Esta lógica utiliza la lectura digital del pin del botón para determinar si encender o apagar el motor.
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (digitalRead(BUTTON) == HIGH) {
digitalWrite(motor1A, HIGH); // Turn on water pump
} else {
digitalWrite(motor1A, LOW); // Turn off water pump
}
delay(2000);
}
Esta estructura de código permite un flujo claro de datos y control, asegurando que el monitor de la planta funcione sin problemas. Para más detalles, el código completo se carga debajo del artículo.
Demostración / Qué Esperar
Al completar la configuración y subir el código, el LCD debería mostrar las lecturas de temperatura y humedad alternativamente con los niveles de humedad y luz. Cuando se presiona el botón, la bomba de agua debería activarse, entregando agua a la planta. Asegúrese de que todas las conexiones estén seguras para evitar problemas como entradas flotantes o lecturas incorrectas (en el video a las 05:30).
El monitoreo de los valores mostrados en la pantalla LCD y el monitor serial ayudará a garantizar que el sistema funcione correctamente. Si encuentra problemas, verifique nuevamente el cableado y asegúrese de que todos los componentes estén alimentados correctamente.
Marcas de tiempo del video
- 00:00 Comenzar
- 2:23 Introducción del Proyecto
- 4:02 Página de docs
- 7:43 Controlador de motor de bomba 1-L293D
- 14:30 2-Pulsar botón para la bomba
- 16:35 sensor de temperatura y humedad 3-DHT11
- 19:26 Sensor de humedad 4-slild
- 21:43 Sensor de 5 luces
- 24:47 6-Sensor de Humedad del Suelo
- 26:01 código completo de monitoreo de planta Arduino
- 29:21 Demostración
Common Course Links
Common Course Files
Cosas que podrías necesitar
-
AmazonasCompra LCD1602-I2C en Amazon.amzn.to
-
eBayCompra LCD1602-I2C en eBay.ebay.us
-
AliExpressCompra 10 piezas de LCD1602-I2C en AliExpresss.click.aliexpress.com
Recursos y referencias
-
DocumentaciónTutorial ESP32 35/55 - Página de documento de SunFounder monitor de plantasdocs.sunfounder.com
Archivos📁
Archivo de Fritzing
-
Sensor de humedad y temperatura DHT11 (3 pines)
DHT11 Humitidy and Temperature Sensor (3 pins).fzpz0.20 MB -
Módulo LCD LCD1602-I2C con 4 cables
LCD1602-I2C.fzpz0.01 MB