Arduino Nano ESP32 - Sensor de lluvia
El sensor de lluvia es capaz de detectar y medir el nivel de lluvia o nieve. El sensor de lluvia proporciona dos salidas: una salida digital (LOW/HIGH) y una salida analógica.
En este tutorial, aprenderemos a usar un Arduino Nano ESP32 y un sensor de lluvia para detectar y medir la lluvia. Específicamente, cubriremos lo siguiente:
- Cómo conectar el sensor de lluvia a un Arduino Nano ESP32.
- Cómo programar el Arduino Nano ESP32 para detectar la lluvia leyendo la señal digital del sensor de lluvia.
- Cómo programar el Arduino Nano ESP32 para medir el nivel de lluvia leyendo la señal analógica del sensor de lluvia.

Después, puedes modificar el código para activar un motor o una alarma cuando detecte lluvia o nieve.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del sensor de lluvia
El sensor de lluvia puede utilizarse para detectar la presencia de lluvia o medir la cantidad de agua que cae con la lluvia. El sensor de lluvia ofrece dos opciones mediante un pin de salida digital y un pin de salida analógica.
El sensor de lluvia incluye dos partes:
- La almohadilla de detección
- El módulo electrónico

La almohadilla de detección
La placa de detección se coloca en el exterior y puede exponerse a la lluvia o la nieve (p. ej., en el techo). La placa de detección tiene una serie de trazas de cobre expuestas, divididas en dos grupos: trazas de alimentación y trazas de detección. Estas trazas de alimentación y trazas de detección no están conectadas a menos que estén puenteadas por agua o nieve. No hay diferencias entre la traza de alimentación y la traza de detección. Puedes elegir una como traza de alimentación y la otra se convertirá en la traza de detección.
El módulo electrónico
El módulo electrónico del sensor de lluvia convierte la señal de la placa de detección en un valor analógico o digital que puede ser leído por Arduino Nano ESP32. Incluye cuatro pines:
- Pin VCC: Debe conectarse a VCC (3,3 V a 5 V).
- Pin GND: Debe conectarse a GND (0 V).
- Pin DO: Es una salida digital. Está en ALTO si no se detecta lluvia y BAJO si se detecta. El valor de umbral para la detección de lluvia puede ajustarse mediante un potenciómetro integrado.
- Pin AO: Es una salida analógica. El valor de salida disminuye a medida que aumenta el agua en la almohadilla de detección, y aumenta a medida que disminuye el agua en la almohadilla de detección.
Además, tiene dos indicadores LED:
- Un indicador PWR-LED para la alimentación.
- Un indicador DO-LED para el estado de lluvia en el pin DO: está encendido cuando hay lluvia.
Cómo funciona
Para el pin DO:
- El módulo tiene un potenciómetro incorporado para ajustar el umbral (sensibilidad).
- Cuando la intensidad está por encima del umbral, se detecta la lluvia, el pin de salida del sensor está a nivel bajo y el DO-LED está encendido.
- Cuando la intensidad está por debajo del umbral, la lluvia no se detecta, el pin de salida del sensor está a nivel alto y el DO-LED está apagado.
Para el pin AO:
- Cuánta más agua haya en la almohadilla de detección, menor será el valor leído desde el pin AO.
- Cuánta menos agua haya en la almohadilla de detección, mayor será el valor leído desde el pin AO.
Tenga en cuenta que el potenciómetro no afecta el valor del pin AO.
Diagrama de Cableado
Como se mencionó anteriormente, el pin VCC del sensor debe conectarse a 3.3V o a 5V. Si conectamos este pin directamente al pin de 3.3V o 5V del ESP32, la vida útil del sensor se acortará debido a la corrosión electroquímica. La mejor forma es conectar el pin VCC del sensor de lluvia a un pin de salida del ESP32. Podemos programar ese pin para alimentar el sensor de lluvia únicamente durante la lectura. Esto puede minimizar el impacto de la corrosión electroquímica.
Dado que el módulo de sensor de lluvia tiene dos salidas, puede elegir usar una o ambas, dependiendo de lo que necesite.
- El diagrama de cableado entre Arduino Nano ESP32 y el sensor de lluvia cuando se utiliza solo DO.

This image is created using Fritzing. Click to enlarge image
- El diagrama de cableado entre Arduino Nano ESP32 y el sensor de lluvia cuando se utiliza solo AO.

This image is created using Fritzing. Click to enlarge image
- El diagrama de cableado entre Arduino Nano ESP32 y el sensor de lluvia cuando se usan tanto A0 como D0.

This image is created using Fritzing. Click to enlarge image
Código de Arduino Nano ESP32 - Leer valor del pin DO
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino
- Copia el código anterior y ábrelo con el IDE de Arduino
- Haz clic en el botón Subir en el IDE de Arduino para enviar el código al Arduino Nano ESP32
- Vierte un poco de agua sobre el sensor de lluvia
- Consulta el resultado en el Monitor serie
Por favor, tenga en cuenta que si nota que el estado del LED permanece encendido de forma constante o se apaga incluso cuando el sensor está orientado hacia la lluvia, puede ajustar el potenciómetro para afinar la sensibilidad del sensor.
Código Arduino Nano ESP32 - Leer valor del pin AO
Pasos R\u00e1pidos
- Copie el código anterior y ábralo con Arduino IDE
- Haga clic en el botón Subir en el IDE de Arduino para cargar el código al Arduino Nano ESP32
- Deje caer un poco de agua sobre el sensor de lluvia
- Consulte el resultado en el Monitor Serial.
※ Nota:
Este tutorial utiliza la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un sensor o componente. El ADC del Arduino Nano ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que necesiten mediciones precisas, tenga en cuenta lo siguiente:
- El ADC del Arduino Nano ESP32 no es perfectamente preciso y podría requerir calibración para obtener resultados correctos. Cada placa Arduino Nano ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
- La calibración puede ser desafiante, especialmente para principiantes, y puede que no siempre produzca los resultados exactos que desea.
Para proyectos que requieren alta precisión, considere usar un ADC externo (p. ej., ADS1115) con el Arduino Nano ESP32 o usar otro Arduino, como el Arduino Uno R4 WiFi, que tiene un ADC más fiable. Si aún desea calibrar el ADC del Arduino Nano ESP32, consulte al ESP32 ADC Calibration Driver.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.