### 5.4 雨滴検知システム #### 5.4.1 蒸気センサー ![cou41](../media/cou41.png) 蒸気センサーは水の存在を検知するため、通常は雨滴検知に使用されます。雨がセンサーの導電性パッドに当たると、Arduinoボードに信号を送ります。 ![couy41](../media/couy41.png) **パラメータ**: - 電圧: 3~5V - 電流: 1.5mA - 電力: 7.5mW Arduino IDEで**5.4.1Alarm-System**コードを開きます。 ```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); } ``` **ESP32 Dev Module**ボードと**COM**ポートを選択し、コードをアップロードします。 ![5458448](../media/5458448.png) **テスト結果:** 検出領域を指で触れてください。触れた領域が広いほど、値は大きくなります。 シリアルモニターを開いて、現在検出されている値(範囲: 0~4095)を観察できます。 ![image-20250417131110395](../media/image-20250417131110395.png) #### 5.4.2 雨水検知システム Arduino IDEで**5.4.2Rainwater-Detection-System**コードを開きます。 ```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); } ``` **ESP32 Dev Module**ボードと**COM**ポートを選択し、コードをアップロードします。 ![5458448](../media/5458448.png) **テスト結果:** 蒸気センサーの検出値が大きいほど、ブザーから発せられる音は大きくなります。 ![flo4](../media/flo4.png)