อ่านค่าเซ็นเซอร์ตรวจจับน้ำฝนด้วย Arduino
อ่านค่าเซ็นเซอร์ตรวจจับน้ำฝนด้วย Arduino
บทความนี้จะสอนใช้งานเซ็นเซอร์ตรวจจับน้ำฝน หรือ Rain Sensor กับบอร์ด Arduino เพื่อวัดระดับน้ำและตรวจจับฝน อธิบายการต่อวงจร การอ่านค่า analog และการนำค่าไปประยุกต์ใช้
อุปกรณ์ที่ต้องเตรียม
- บอร์ด Arduino UNO R3
- เซ็นเซอร์ตรวจจับน้ำฝน Rain / Water Detection Sensor Module
- LED สีแดง 5mm พร้อมตัวต้านทาน 220Ω
- บอร์ดทดลอง (Breadboard) MB-102 ขนาด 830 จุด
- สายไฟจัมเปอร์ผู้-ผู้ ยาว 20cm
- Power Adapter 9V 2A (ถ้าต้องการใช้งานแบบ Standalone)
หลักการทำงานของ Rain Sensor
เซ็นเซอร์ตรวจจับน้ำฝนมีลักษณะเป็นแผ่น PCB ที่มีขั้วไฟฟ้าสลับกัน เมื่อมีน้ำหยดลงบนผิวเซ็นเซอร์ น้ำจะทำหน้าที่เป็นตัวนำไฟฟ้าระหว่างขั้ว ทำให้ค่าความต้านทานลดลง ส่งผลให้ค่า analog ที่ Arduino อ่านได้ลดลงตามปริมาณน้ำที่สัมผัส
| สถานะเซ็นเซอร์ | ค่า Analog (โดยประมาณ) |
|---|---|
| แห้งสนิท | 500 - 1023 |
| มีหยดน้ำเล็กน้อย | 300 - 500 |
| จุ่มน้ำลึก | 0 - 300 |
วงจรการต่อ
การต่อสายมีดังนี้:
เซ็นเซอร์ตรวจจับน้ำฝน
- VCC → 5V ของ Arduino
- GND → GND ของ Arduino
- A0 → A0 ของ Arduino
หลอด LED
- ขาบวก (ขายาว) → ขา 13 ของ Arduino ผ่านตัวต้านทาน 220Ω
- ขาลบ (ขาสั้น) → GND
โค้ดตัวอย่างอ่านค่า Analog และสั่งงาน LED
// กำหนดขาที่ใช้งาน
const int rainSensorPin = A0; // ขาอ่านค่า Analog จากเซ็นเซอร์
const int ledPin = 13; // ขาควบคุม LED
// ค่า threshold สำหรับตรวจจับน้ำ
// ปรับค่านี้ตามสภาพแวดล้อมจริง
const int threshold = 500;
void setup() {
Serial.begin(9600); // เปิด Serial Monitor ที่ baud 9600
pinMode(ledPin, OUTPUT);
pinMode(rainSensorPin, INPUT);
Serial.println("Arduino Rain Sensor Ready");
Serial.println("=========================");
}
void loop() {
// อ่านค่า Analog จากเซ็นเซอร์ (0 - 1023)
int sensorValue = analogRead(rainSensorPin);
// แสดงค่าที่อ่านได้ใน Serial Monitor
Serial.print("Sensor Value: ");
Serial.println(sensorValue);
// สถานะการตรวจจับน้ำ
if (sensorValue > threshold) {
Serial.println("Status: Dry");
digitalWrite(ledPin, LOW); // ปิด LED
} else {
Serial.println("Status: Water Detected");
digitalWrite(ledPin, HIGH); // เปิด LED
}
delay(500); // หน่วงเวลา 500 มิลลิวินาที
}
วิธีทดสอบ
- อัปโหลดโค้ดข้างบนลงบอร์ด Arduino UNO
- เปิด Serial Monitor (Tools → Serial Monitor) ตั้ง baud เป็น 9600
- สังเกตค่าที่แสดง ตอนนี้เซ็นเซอร์ยังแห้ง ค่าควรเกิน 500 หลอด LED ไม่ติด
- หยดน้ำลงบนแผ่นเซ็นเซอร์ ค่าจะลดลง LED จะติด
- จุ่มเซ็นเซอร์ลงในน้ำ ค่าจะลดลงต่ำมากขึ้น
การปรับแต่ง Threshold
ค่า threshold = 500 เป็นค่าเริ่มต้น แต่แต่ละเซ็นเซอร์และสภาพแวดล้อมอาจแตกต่างกัน แนะนำให้:
- เปิด Serial Monitor ดูค่าตอนแห้งก่อน ใช้ค่านั้นเป็น reference
- กำหนด threshold ต่ำกว่าค่าตอนแห้งประมาณ 50-100 หน่วย
- ถ้าต้องการตรวจจับแค่ฝนหนัก ให้กำหนด threshold ต่ำลง
ประยุกต์ใช้งานจริง
หลักการเดียวกันนี้สามารถนำไปต่อยอดได้หลายแบบ เช่น:
- ระบบรดน้ำอัตโนมัติ อ่านค่าความชื้นดินแทนเซ็นเซอร์วัดน้ำ
- เตือนภัยน้ำรั่ว ติดตั้งเซ็นเซอร์ในจุดที่ต้องการ
- ตรวจจับระดับน้ำในถัง ต่อขยายสายเซ็นเซอร์
สรุป
เซ็นเซอร์ตรวจจับน้ำฝนเป็นอุปกรณ์ง่าย ๆ แต่มีประโยชน์มากในงาน IoT และระบบอัตโนมัติ หลักการคืออ่านค่า analog เมื่อค่าลดลงต่ำกว่า threshold แสดงว่ามีน้ำสัมผัส การปรับ threshold ให้เหมาะกับการใช้งานจริงจะช่วยให้ระบบทำงานได้แม่นยำ
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย