กลับหน้าหลัก
views
ต่อ Relay Module ควบคุมเปิดปิดไฟบ้าน 220VAC ด้วย Arduino
Last updated on

ต่อ Relay Module ควบคุมเปิดปิดไฟบ้าน 220VAC ด้วย Arduino


ต่อ Relay Module ควบคุมเปิดปิดไฟบ้าน 220VAC ด้วย Arduino

รีเลย์ (Relay) ทำหน้าที่เหมือนสวิตช์ทางไฟฟ้า ต่างกันตรงที่แทนที่จะกดด้วยนิ้ว เราใช้สัญญาณดิจิตอล 0 หรือ 1 จาก Arduino มาควบคุมการเปิด-ปิดวงจรแทน ตรงนี้ทำให้เปิดปิดอุปกรณ์ไฟฟ้าในบ้านได้โดยไม่ต้องจ่ายไฟ 220V ให้วงจรขับเอง

วงจรเชื่อมต่อ Arduino UNO กับ Relay Module 5V 1 Channel พร้อมหลอดไฟ 220V ภาพสีฟ้าขาว

อุปกรณ์ที่ต้องเตรียม

อุปกรณ์จำนวน
Arduino UNO R31 บอร์ด
Relay Module 5V 1 Channel (250V/10A)1 โมดูล
Power Adapter 9V 2A1 ตัว
หลอดไฟ LED E27 7W1 หลอด
ฐานหลอดไฟ E271 ตัว
สายไฟพร้อมปลั๊ก 2x0.75 ยาว 1.5m1 เส้น
สายจัมเปอร์ ผู้-ผู้ 20cm3-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
แผนผังการต่อสายไฟ 220V ผ่านรีเลย์ แสดง COM NO NC ชัดเจน พื้นหลังสีขาว

โค้ด 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 แทน วงจรครบ หลอดไฟติด

ภาพเปรียบเทียบสถานะ NO และ NC ของรีเลย์ มีลูกศรชี้ไฟไหล

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 แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ประเมิน Project

อยากทำงานแนวนี้? แยกไปกรอกหน้าประเมินราคาได้เลย

ไม่ยัดฟอร์มยาวไว้ใต้บทความแล้ว กดปุ่มเดียวไปหน้าประเมิน Project กรอกโจทย์แบบตัวใหญ่ อ่านง่าย แล้วเอา Reference Code ไปคุยต่อใน LINE

ความคิดเห็น

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...