### 5.4 Sistema di rilevamento della pioggia #### 5.4.1 Sensore di vapore ![cou41](../media/cou41.png) Il sensore di vapore rileva la presenza di acqua, quindi è solitamente utilizzato nel rilevamento della pioggia. Se la pioggia colpisce i pad conduttivi sul sensore, invierà un segnale alla scheda Arduino. ![couy41](../media/couy41.png) **Parametri**: - Tensione: 3~5V - Corrente: 1.5mA - Potenza: 7.5mW Aprire il codice **5.4.1Alarm-System** con Arduino IDE. ```c #define SteamPin 35 //Define the steam sensor pin to 35 void setup() { Serial.begin(9600); pinMode(SteamPin,INPUT); } void loop() { //Read the value of steam sensor int ReadValue = analogRead(SteamPin); Serial.print("Steam Value: "); Serial.println(ReadValue); delay(500); } ``` Scegliere la scheda **ESP32 Dev Module** e la porta **COM**, quindi caricare il codice. ![5458448](../media/5458448.png) **Risultato del test:** Toccare l'area di rilevamento con il dito. Maggiore è l'area toccata, maggiore sarà il valore. È possibile aprire il monitor seriale per osservare il valore attualmente rilevato (intervallo: 0~4095). ![image-20250417131110395](../media/image-20250417131110395.png) #### 5.4.2 Sistema di rilevamento dell'acqua piovana Aprire il codice **5.4.2Rainwater-Detection-System** con Arduino IDE ```c #define SteamPin 35 //Define pins #define BuzzerPin 16 void setup() { Serial.begin(9600); pinMode(SteamPin,INPUT); pinMode(BuzzerPin,OUTPUT); } void loop() { //Read the value of steam sensor int ReadValue = analogRead(SteamPin); Serial.print("Steam Value: "); Serial.println(ReadValue); //Determine whether the detected value is within 800~2000 if(ReadValue >= 800 && 2000 > ReadValue){ //Execute for 3 times for (int i = 0; i < 3; i++) { tone(BuzzerPin,200); delay(100); noTone(BuzzerPin); delay(100); } } //Determine whether the detected value is within 2000~4000 else if (ReadValue >= 2000 && 4000 >= ReadValue) { for (int i = 0; i < 3; i++) { tone(BuzzerPin,400); delay(100); noTone(BuzzerPin); delay(100); } } //Determine whether the detected value is greater than 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); } ``` Scegliere la scheda **ESP32 Dev Module** e la porta **COM**, quindi caricare il codice. ![5458448](../media/5458448.png) **Risultato del test:** Maggiore è il valore rilevato dal sensore di vapore, più forte sarà il suono emesso dal buzzer. ![flo4](../media/flo4.png)