### 5.4 Sistema de Detección de Lluvia #### 5.4.1 Sensor de Vapor ![cou41](../media/cou41.png) El sensor de vapor detecta la presencia de agua, por lo que se utiliza habitualmente en la detección de lluvia. Si la lluvia golpea las almohadillas conductoras del sensor, enviará una señal a la placa Arduino. ![couy41](../media/couy41.png) **Parámetros**: - Voltaje: 3~5V - Corriente: 1.5mA - Potencia: 7.5mW Abre el código **5.4.1Alarm-System** con Arduino IDE. ```c #define SteamPin 35 //Define el pin del sensor de vapor a 35 void setup() { Serial.begin(9600); pinMode(SteamPin,INPUT); } void loop() { //Lee el valor del sensor de vapor int ReadValue = analogRead(SteamPin); Serial.print("Steam Value: "); Serial.println(ReadValue); delay(500); } ``` Elige la placa **ESP32 Dev Module** y el puerto **COM**, y sube el código. ![5458448](../media/5458448.png) **Resultado de la prueba:** Toca el área de detección con tu dedo. Cuanto mayor sea el área que toques, mayor será el valor. Puedes abrir el monitor serie para observar el valor detectado actualmente (rango: 0~4095). ![image-20250417131110395](../media/image-20250417131110395.png) #### 5.4.2 Sistema de Detección de Agua de Lluvia Abre el código **5.4.2Rainwater-Detection-System** con Arduino IDE ```c #define SteamPin 35 //Define los pines #define BuzzerPin 16 void setup() { Serial.begin(9600); pinMode(SteamPin,INPUT); pinMode(BuzzerPin,OUTPUT); } void loop() { //Lee el valor del sensor de vapor int ReadValue = analogRead(SteamPin); Serial.print("Steam Value: "); Serial.println(ReadValue); //Determina si el valor detectado está entre 800~2000 if(ReadValue >= 800 && 2000 > ReadValue){ //Ejecuta 3 veces for (int i = 0; i < 3; i++) { tone(BuzzerPin,200); delay(100); noTone(BuzzerPin); delay(100); } } //Determina si el valor detectado está entre 2000~4000 else if (ReadValue >= 2000 && 4000 >= ReadValue) { for (int i = 0; i < 3; i++) { tone(BuzzerPin,400); delay(100); noTone(BuzzerPin); delay(100); } } //Determina si el valor detectado es mayor que 4000 else if (ReadValue > 4000) { for (int i = 0; i < 3; i++) { tone(BuzzerPin,600); delay(100); noTone(BuzzerPin); delay(100); } } noTone(BuzzerPin); delay(500); } ``` Elige la placa **ESP32 Dev Module** y el puerto **COM**, y sube el código. ![5458448](../media/5458448.png) **Resultado de la prueba:** Cuanto mayor sea el valor detectado por el sensor de vapor, más fuerte será el sonido emitido por el zumbador. ![flo4](../media/flo4.png)