Posted in

โปรเจคตรวจจับฝนด้วย Rain Sensor และ Arduino พร้อมระบบแจ้งเตือนด้วย Buzzer

โปรเจคตรวจจับฝนด้วย Rain Sensor และ Arduino พร้อมระบบแจ้งเตือนด้วย Buzzer

หลักการทำงาน (How It Works)

โมดูลตรวจจับฝน (Rain Sensor) ทำงานโดยอาศัยการเปลี่ยนแปลงค่าความต้านทาน (Resistance)
เมื่อมีน้ำตกกระทบบนแผงเซ็นเซอร์ ค่าความต้านทานจะลดลง ซึ่ง Arduino จะทำหน้าที่อ่านค่าที่เปลี่ยนแปลงนี้
หากค่าที่อ่านได้ต่ำกว่าค่าที่กำหนด (Threshold) ระบบจะสั่งให้ Buzzer ทำงานเพื่อแจ้งเตือนว่ามีฝนตก


อุปกรณ์ที่ใช้ (Devices & Components)

  • Arduino Uno R3 https://shopee.co.th/product/243007968/5725582932
    บอร์ดไมโครคอนโทรลเลอร์หลัก ใช้สำหรับประมวลผลและควบคุมการทำงานของระบบ
  • สาย Jumper (Jumper Wires) https://shopee.co.th/product/243007968/7525582748
    ใช้สำหรับเชื่อมต่อวงจรระหว่าง Arduino กับอุปกรณ์ต่าง ๆ
  • โมดูลตรวจจับฝน (Rain Sensor Module) https://shopee.co.th/product/243007968/6125581917
    ใช้ตรวจจับน้ำหรือฝน โดยอาศัยการเปลี่ยนแปลงค่าความต้านทาน
  • Buzzer แบบ Passive 5V https://shopee.co.th/product/243007968/11291944810
    ใช้สำหรับส่งเสียงแจ้งเตือนเมื่อมีการตรวจพบฝน

อุปกรณ์เสริม (แนะนำเพิ่มเติม)

  • บอร์ดทดลอง (Breadboard) เพื่อความสะดวกในการต่อวงจร
  • กล่องกันน้ำ สำหรับติดตั้งใช้งานภายนอก
  • ตัวต้านทาน (Resistor) สำหรับปรับสัญญาณ (ถ้าจำเป็น)

ขั้นตอนที่ 1: ทำความเข้าใจ Rain Sensor

โมดูล Rain Sensor ประกอบด้วยแผงตรวจจับน้ำ (Detection Board) ซึ่งสามารถวัดปริมาณน้ำที่สัมผัสได้
โดยอาศัยหลักการเปลี่ยนแปลงค่าความต้านทาน ดังนี้:

  • ค่าความต้านทานสูง → ไม่มีน้ำ หรือมีน้ำน้อย
  • ค่าความต้านทานต่ำ → มีน้ำอยู่บนเซ็นเซอร์

ค่า Output ของเซ็นเซอร์จะอยู่ในช่วง 0 – 1023

  • ค่าใกล้ 1023 → ไม่มีน้ำ
  • ค่าลดลง → มีน้ำเพิ่มขึ้น

ในโปรเจคนี้กำหนดค่า Threshold = 102 หากค่าต่ำกว่านี้ จะถือว่ามีฝนตกและสั่งให้ Buzzer ทำงาน


ขั้นตอนที่ 2: การต่อวงจร (Circuit Connections)

การต่อ Rain Sensor กับ Arduino

  • VCC → 5V (Arduino)
  • GND → GND (Arduino)
  • Signal → ขา A0 (Arduino)

การต่อ Buzzer กับ Arduino

  • ขั้วบวก (VCC) → ขา Digital 9
  • ขั้วลบ (GND) → GND

ขั้นตอนที่ 3: อัปโหลดโปรแกรม

ใช้โปรแกรม Arduino IDE ในการอัปโหลดโค้ดไปยังบอร์ด Arduino Uno

โค้ดโปรแกรม Arduino

ด้านล่างนี้เป็นตัวอย่างโค้ดสำหรับใช้ตรวจจับฝนด้วย Rain Sensor และแจ้งเตือนผ่าน Buzzer


#define RAIN_SENSOR A0
#define BUZZER 9
 
void setup() {
    pinMode(RAIN_SENSOR, INPUT);
    pinMode(BUZZER, OUTPUT);
    Serial.begin(9600);
}
 
void loop() {
    int sensorValue = analogRead(RAIN_SENSOR);
    Serial.println(sensorValue);
    
    if (sensorValue < 102) { // Threshold สำหรับตรวจจับฝน
        digitalWrite(BUZZER, HIGH);
    } else {
        digitalWrite(BUZZER, LOW);
    }
    delay(1000); // หน่วงเวลาเพื่อความเสถียร
}

คำอธิบายโค้ด

  • #define RAIN_SENSOR A0 : กำหนดขาที่ใช้รับค่าสัญญาณจาก Rain Sensor
  • #define BUZZER 9 : กำหนดขาที่ใช้ควบคุม Buzzer
  • analogRead() : ใช้อ่านค่าจากเซ็นเซอร์ (ช่วง 0–1023)
  • Serial.println() : แสดงค่าบน Serial Monitor
  • if (sensorValue < 102) : ตรวจสอบว่ามีฝนตกหรือไม่
  • digitalWrite() : สั่งเปิด/ปิด Buzzer

การปรับค่า Sensitivity

คุณสามารถปรับค่าความไวของการตรวจจับฝนได้ โดยแก้ค่า Threshold ในบรรทัดนี้:


if (sensorValue < 102)
  • ค่าต่ำ → ตรวจจับเฉพาะตอนน้ำเยอะ
  • ค่าสูง → ตรวจจับไวขึ้น (น้ำเล็กน้อยก็แจ้งเตือน)

ขั้นตอนที่ 4: ตรวจสอบค่าจากเซ็นเซอร์

  • เชื่อมต่อ Arduino กับคอมพิวเตอร์ผ่านสาย USB
  • เปิด Serial Monitor ใน Arduino IDE
  • ดูค่าที่เซ็นเซอร์อ่านได้แบบเรียลไทม์
  • ปรับค่า Threshold ตามความเหมาะสม

ขั้นตอนที่ 5: ทดสอบการทำงานของระบบ

  • จ่ายไฟให้ Arduino ด้วยแหล่งจ่ายไฟ 7-12V
  • จำลองฝนโดยหยดน้ำลงบนเซ็นเซอร์
  • เมื่อมีน้ำ ค่าเซ็นเซอร์จะลดลง และ Buzzer จะทำงาน
  • เมื่อเซ็นเซอร์แห้ง Buzzer จะหยุดทำงาน

การทดสอบและปรับค่า (Testing & Calibration)

  • อัปโหลดโค้ดลง Arduino ผ่าน Arduino IDE
  • เปิด Serial Monitor เพื่อดูค่าที่อ่านได้
  • ทดสอบโดยการหยดน้ำลงบนเซ็นเซอร์
  • ตรวจสอบว่า Buzzer ทำงานเมื่อค่าต่ำกว่า 102
  • ปรับค่า Threshold ในโค้ดเพื่อให้เหมาะกับการใช้งานจริง

สรุป

โปรเจคนี้เป็นตัวอย่างการใช้งาน Rain Sensor ร่วมกับ Arduino เพื่อสร้างระบบแจ้งเตือนฝนตก
เหมาะสำหรับผู้เริ่มต้น และสามารถนำไปต่อยอดเป็นระบบ Smart Home หรือ IoT ได้ในอนาคต