ESP8266 - Sensor de lluvia

El sensor de lluvia detecta y mide los niveles de lluvia y nieve, ofreciendo salidas digitales (LOW/HIGH) y analógicas. Este tutorial demuestra cómo usar un ESP8266 para conectar y utilizar el sensor de lluvia, cubriendo:

Después, puedes personalizar el código para activar un motor o una alerta cuando se detecte lluvia o nieve.

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Lluvia
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de lluvia

El sensor de lluvia puede detectar la presencia de lluvia o medir el nivel de agua. Ofrece dos opciones a través de un pin de salida digital y un pin de salida analógica.

El sensor está compuesto por dos componentes: la placa de detección y el módulo electrónico.

Pinout del sensor de lluvia
image source: diyables.io

La almohadilla de detección

La placa de detección, situada al aire libre para exponerse a la lluvia o la nieve (p. ej., en el techo), presenta trazas de cobre expuestas clasificadas en dos grupos: trazas de potencia y trazas de detección. Estas trazas permanecen desconectadas a menos que el agua o la nieve las conecten. Tanto las trazas de potencia como las trazas de detección son idénticas, lo que permite flexibilidad para designar una como la traza de potencia y la otra como la traza de detección.

El módulo electrónico

El módulo electrónico del sensor de lluvia convierte las señales de la placa de detección en valores analógicos o digitales legibles por el ESP8266 NodeMCU. Incluye cuatro pines:

  • Pin VCC: Se conecta a VCC (3,3 V a 5 V).
  • Pin GND: Se conecta a GND (0 V).
  • Pin DO: Pin de salida digital, que indica ALTO cuando no se detecta lluvia y BAJO cuando se detecta. El umbral de detección de lluvia es ajustable con un potenciómetro integrado.
  • Pin AO: Pin de salida analógica, cuyo valor disminuye al aumentar la cantidad de agua en la placa de detección y aumenta al disminuirla.

Además, cuenta con dos indicadores LED:

  • Indicador PWR-LED para la alimentación.
  • Indicador DO-LED para el estado de lluvia en el pin DO, que se ilumina cuando hay lluvia.

Cómo funciona

Con respecto al pin DO:

  • El módulo está equipado con un potenciómetro integrado para establecer el umbral de sensibilidad.
  • Cuando la intensidad excede el umbral, se detecta lluvia y el pin de salida del sensor pasa a LOW, activando la iluminación del DO-LED.
  • Por el contrario, cuando la intensidad cae por debajo del umbral, no se detecta lluvia, el pin de salida pasa a HIGH y el DO-LED se apaga.

Con respecto al pin AO:

  • El valor del pin AO disminuye con más agua en la almohadilla de detección.
  • Por el contrario, el valor del pin AO aumenta con menos agua en la almohadilla de detección.

Es importante señalar que el potenciómetro no influye en el valor del pin AO.

Diagrama de Cableado

Como se mencionó anteriormente, conectar el pin VCC del sensor directamente a los pines de 3.3V o 5V del ESP8266 puede acortar la vida útil del sensor debido a la corrosión electroquímica. El enfoque recomendado es conectar el pin VCC del sensor de lluvia a un pin de salida en el ESP8266. Al programar ese pin, el sensor de lluvia puede alimentarse solo durante las lecturas, minimizando el impacto de la corrosión electroquímica.

Ya que el módulo del sensor de lluvia tiene dos salidas, puedes elegir usar una o ambas, según lo que necesites.

  • El diagrama de cableado entre ESP8266 y el sensor de lluvia cuando se utiliza DO únicamente.
Diagrama de cableado del sensor de lluvia para ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

  • El diagrama de cableado entre el ESP8266 y el sensor de lluvia cuando se usa solo AO.
Diagrama de cableado para la detección de lluvia ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

  • El diagrama de cableado entre ESP8266 y el sensor de lluvia al usar tanto AO como DO.
Diagrama de cableado del detector de lluvia ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Código ESP8266 - Leer valor del pin DO

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define DO_PIN D2 // The ESP8266 pin connected to DO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el cómo configurar el entorno para ESP8266 en Arduino IDE tutorial si es la primera vez que usas ESP8266.
  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Módulo)), y su puerto COM correspondiente.
  • Copia el código anterior y ábrelo con Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para cargar el código al ESP8266.
  • Derrama un poco de agua sobre el sensor de lluvia.
  • Consulta el resultado en el Monitor Serial.
COM6
Send
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tenga en cuenta que, si nota que el LED permanece encendido de forma constante o permanece apagado incluso cuando el sensor está expuesto a la lluvia, puede ajustar el potenciómetro para afinar la sensibilidad del sensor.

Código ESP8266 - Leer valor del pin A0

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-rain-sensor */ #define POWER_PIN D7 // The ESP8266 pin that provides the power to the rain sensor #define AO_PIN A0 // The ESP8266 pin connected to AO pin of the rain sensor void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // Configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Pasos R\u00e1pidos

  • Conecta los componentes como se muestra en el diagrama.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre Arduino IDE en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al ESP8266
  • Vierte un poco de agua sobre el sensor de lluvia.
  • Revisa el resultado en el Monitor Serial.
COM6
Send
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Nota:

Este tutorial utiliza la función analogRead() para obtener datos de un ADC (convertidor analógico-digital) que está conectado a un sensor u otro componente. El ADC del ESP8266 funciona bien para proyectos en los que no necesitas lecturas muy precisas. Pero recuerda, el ADC del ESP8266 no es muy preciso para mediciones detalladas. Si tu proyecto necesita ser muy preciso, podrías querer usar un ADC separado como el ADS1115 con el ESP8266, o usar un Arduino como el Arduino Uno R4 WiFi, que tiene un ADC más fiable.

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.

Referencias de Funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!