ระบบตรวจจับฝนด้วย Arduino และ Rain Sensor (พร้อมโค้ด)
โปรเจค ระบบตรวจจับฝน (Rain Detection System) เป็นโปรเจคพื้นฐานที่สามารถทำได้ง่าย
โดยใช้ Arduino ร่วมกับ Rain Sensor เพื่อตรวจจับน้ำฝนที่ตกลงมา
และสามารถสั่งงานอุปกรณ์ต่างๆ ได้ เช่น เปิดเสียงแจ้งเตือน หรือควบคุมระบบอัตโนมัติ
ระบบนี้สามารถนำไปประยุกต์ใช้งานได้หลากหลาย เช่น งานเกษตร (Smart Farm),
ระบบปัดน้ำฝนอัตโนมัติในรถยนต์ หรือระบบ Smart Home ที่ปิดหน้าต่างอัตโนมัติเมื่อฝนตก
Rain Sensor คืออะไร?
Rain Sensor หรือที่เรียกว่า Raindrop Sensor
เป็นเซ็นเซอร์ที่ใช้ตรวจจับหยดน้ำหรือความชื้นบนแผ่นตรวจจับ โดยใช้หลักการเปลี่ยนค่าความต้านทานไฟฟ้า
เมื่อแผ่นเซ็นเซอร์แห้ง จะมีความต้านทานสูง และแรงดันไฟฟ้าจะสูงตาม
แต่เมื่อมีน้ำฝนตกลงมา ความต้านทานจะลดลง ทำให้แรงดันไฟฟ้าลดลงตามไปด้วย
ส่วนประกอบของ Rain Sensor
- Rain Board – แผ่นตรวจจับน้ำฝน (มีลายทองแดง)
- Control Board – ใช้ปรับความไว และแปลงสัญญาณ Analog เป็น Digital
บน Control Board จะมีชิป LM393 Comparator สำหรับเปรียบเทียบแรงดัน
และส่งสัญญาณออกมาเป็น Digital ได้
อุปกรณ์ที่ต้องใช้
- Arduino UNO R3 https://shopee.co.th/product/243007968/5725582932
- Rain Sensor Module https://shopee.co.th/product/243007968/6125581917
- Buzzer https://shopee.co.th/product/243007968/5225583635
- Breadboard https://shopee.co.th/product/243007968/4725583371
- สาย Jumper https://shopee.co.th/product/243007968/7225582763 , https://shopee.co.th/product/243007968/7525582748
หลักการทำงาน
ระบบจะตรวจวัดค่าความชื้นจาก Rain Sensor ผ่านขา Analog (A0) ของ Arduino
เมื่อมีฝนตก ค่าแรงดันจะลดลง และ Arduino จะตรวจจับการเปลี่ยนแปลงนี้
จากนั้น Arduino จะสั่งให้ Buzzer ทำงานเพื่อแจ้งเตือนผู้ใช้งานทันที
การต่อวงจร
- VCC → 5V
- GND → GND
- A0 → ขา Analog ของ Arduino
- Buzzer → ขา Digital (เช่น D5)
แนะนำให้ใช้ขา A0 เพื่ออ่านค่าแบบละเอียด (Analog) จะได้ค่าที่แม่นยำมากกว่า

โค้ด Arduino ตรวจจับฝน
#define rainfall A0
#define buzzer 5
int value;
int set = 10;
void setup() {
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(rainfall, INPUT);
}
void loop() {
value = analogRead(rainfall);
Serial.println(value);
value = map(value, 0, 1023, 225, 0);
if (value >= set) {
Serial.println("Rain Detected");
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(buzzer, LOW);
}
delay(200);
}
การคำนวณค่า Analog
Arduino จะอ่านค่า Analog ในช่วง 0 – 1023
โดยสามารถแปลงแรงดันเป็นค่าดิจิทัลได้ด้วยสูตร:
ADC = (แรงดันไฟ × 1023) / 5
ยิ่งมีน้ำมาก ค่าแรงดันจะยิ่งต่ำ ทำให้ค่า Analog ลดลงตาม
จุดเด่นของโปรเจค
- ทำง่าย เหมาะสำหรับมือใหม่
- ต้นทุนต่ำ
- นำไปใช้งานจริงได้
- ต่อยอดเป็น IoT ได้
การต่อยอด
- แจ้งเตือนผ่าน LINE / Telegram
- ควบคุมปั๊มน้ำอัตโนมัติ
- ระบบปิดหน้าต่างอัตโนมัติ
- ระบบปัดน้ำฝนอัตโนมัติในรถ
สรุป
ระบบตรวจจับฝนด้วย Arduino เป็นโปรเจคที่เข้าใจง่ายและสามารถนำไปใช้งานจริงได้
เหมาะสำหรับผู้เริ่มต้นและผู้ที่ต้องการพัฒนาระบบ Smart Farm หรือ IoT
ในอนาคต