ต่อ Relay Module ควบคุมเปิดปิดไฟบ้าน 220VAC ด้วย Arduino
ต่อ Relay Module ควบคุมเปิดปิดไฟบ้าน 220VAC ด้วย Arduino
รีเลย์ (Relay) ทำหน้าที่เหมือนสวิตช์ทางไฟฟ้า ต่างกันตรงที่แทนที่จะกดด้วยนิ้ว เราใช้สัญญาณดิจิตอล 0 หรือ 1 จาก Arduino มาควบคุมการเปิด-ปิดวงจรแทน ตรงนี้ทำให้เปิดปิดอุปกรณ์ไฟฟ้าในบ้านได้โดยไม่ต้องจ่ายไฟ 220V ให้วงจรขับเอง
อุปกรณ์ที่ต้องเตรียม
| อุปกรณ์ | จำนวน |
|---|---|
| Arduino UNO R3 | 1 บอร์ด |
| Relay Module 5V 1 Channel (250V/10A) | 1 โมดูล |
| Power Adapter 9V 2A | 1 ตัว |
| หลอดไฟ LED E27 7W | 1 หลอด |
| ฐานหลอดไฟ E27 | 1 ตัว |
| สายไฟพร้อมปลั๊ก 2x0.75 ยาว 1.5m | 1 เส้น |
| สายจัมเปอร์ ผู้-ผู้ 20cm | 3-4 เส้น |
| บอร์ดทดลอง (MB-102) | 1 ชิ้น (ถ้าต้องการ) |
วิธีต่อสาย Relay Module กับ Arduino UNO
ต่อสายระหว่าง Relay Module กับ Arduino ตามนี้
// ===== การต่อสาย =====
// Relay Module -> Arduino UNO
// GND -> GND
// VCC -> 5V
// IN -> ขา 2
การต่อวงจรไฟ 220V สำหรับหลอดไฟ
- ขา COM ของรีเลย์ ต่อกับสายไฟสะพาน (L)
- ขา NO (Normally Open) ของรีเลย์ ต่อกับสายไฟที่ไปหลอดไฟ
- ด้านหลอดไฟ ใช้สายไฟสองเส้น ด้านหนึ่งเข้าฐานหลอด อีกด้านเป็นขั้วที่ต่อกับสายจากขา NO
โค้ด Arduino ควบคุมรีเลย์เปิด-ปิดทุก 1 วินาที
int Relay1 = 2; // กำหนดขา digital ที่ต่อกับขา IN ของ Relay Module
void setup() {
pinMode(Relay1, OUTPUT); // กำหนดขา 2 เป็น OUTPUT
digitalWrite(Relay1, HIGH); // ตั้งค่าเริ่มต้นให้รีเลย์ปิด (ขา NO ไม่ต่อ)
}
void loop() {
digitalWrite(Relay1, LOW); // สั่งให้รีเลย์เปิด หลอดไฟติด
delay(1000); // หน่วงเวลา 1 วินาที
digitalWrite(Relay1, HIGH); // สั่งให้รีเลย์ปิด หลอดไฟดับ
delay(1000); // หน่วงเวลา 1 วินาที
}
อัปโหลดโค้ดลงบอร์ด ถ้าสำเร็จ หลอดไฟจะติด 1 วินาที แล้วดับ 1 วินาที วนซ้ำไปเรื่อย ๆ
รีเลย์ทำงานอย่างไร — อธิบายขา COM, NO, NC
ตอนไม่ได้สั่งงาน (สัญญาณ LOW) ขา COM จะต่อกับขา NC อยู่ หลอดไฟจึงยังไม่ติด เพราะวงจรยังไม่ครบ
เมื่อ Arduino ส่งสัญญาณ HIGH มา (ขา 2 เป็น LOW) รีเลย์จะทริก มีเสียงคลิก ขา COM จะเปลี่ยนมาต่อกับขา NO แทน วงจรครบ หลอดไฟติด
Active HIGH กับ Active LOW ต่างกันอย่างไร
Relay Module ที่ซื้อมาต้องเช็คว่าเป็นแบบไหน
Active HIGH — สัญญาณ HIGH ที่ขา IN ทำให้รีเลย์ทำงาน Active LOW — สัญญาณ LOW ที่ขา IN ทำให้รีเลย์ทำงาน
โมดูลส่วนใหญ่ที่ขายในไทยเป็น Active LOW คือสั่ง digitalWrite(pin, LOW) แล้วรีเลย์ทำงาน ถ้าใช้โมดูลแบบ Active HIGH ก็สลับ logic กัน โค้ดตัวอย่างข้างบนเขียนไว้สำหรับ Active LOW
ประยุกต์ใช้งาน Smart Home
หลักการเดียวกับโค้ดตัวอย่างนี้สามารถนำไปต่อยอดได้หลายแบบ
- ควบคุมเปิด-ปิดพัดลม หรือแอร์ผ่านมือถือ
- ตั้งเวลาเปิดไฟระยะไกลด้วย ESP8266 หรือ ESP32
- ทำ Smart Farm เปิดปิดปั้มน้ำตามเวลาหรือความชื้น
ถ้าจะต่อหลายช่อง ขยายขาอินพุตไปที่ขา 3, 4, 5 แล้วเพิ่ม pinMode กับ digitalWrite ตามจำนวนช่องที่ใช้
ข้อควรระวังเรื่องไฟ 220V
- ห้ามจ่ายไฟ 220V เข้าบอร์ด Arduino โดยตรงเด็ดขาด
- ตรวจสอบว่าสายไฟต่อหลุดหรือไม่ ก่อนเสียบปลั๊ก
- ใช้รีเลย์ที่รองรับกระแสตามโหลดที่ต้องการ (โมดูลที่ใช้ในบทความรองรับ 250V/10A)
- ถ้าต้องการควบคุมโหลดที่กระแสสูงกว่านี้ ใช้ Contactor แทนรีเลย์
วิดีโออ้างอิง
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย