กลับหน้าหลัก
views
ESP32 Relay 4 ช่อง 3V: วิธีต่อ Relay Module เปิดปิดไฟบ้านผ่าน GPIO
Last updated on

ESP32 Relay 4 ช่อง 3V: วิธีต่อ Relay Module เปิดปิดไฟบ้านผ่าน GPIO


ESP32 Relay 4 ช่อง 3V: วิธีต่อ Relay Module เปิดปิดไฟบ้านผ่าน GPIO

บทความนี้จะสอนต่อ ESP32 Relay 4 ช่อง 3V โดยใช้ ESP32 NodeMCU ESP-WROOM-32 กับบอร์ด Relay 4 Channel 3V แบบ Isolation High and Low Trigger เน้นการต่อวงจรที่ถูกต้อง อธิบาย GPIO แต่ละขา และเขียนโค้ด Arduino ควบคุมการเปิด-ปิดรีเลย์ทีละตัวตามลำดับ

ถ้าไม่แน่ใจเรื่อง COM/NO/NC, relay active low หรือความต่างระหว่าง relay 3V/5V ให้อ่าน รีเลย์ Arduino/ESP32 คืออะไร ก่อน แล้วค่อยกลับมาทำวงจร ESP32 4 ช่องในหน้านี้ หรือถ้าต้องการระบบควบคุมผ่านมือถือ ดู รับทำโปรเจค ESP32

คำเตือน: ส่วนที่เกี่ยวกับไฟ 220V AC เป็นอันตรายถึงชีวิต ถ้าไม่มั่นใจให้ปรึกษาช่างไฟฟ้าที่มีใบอนุญาต

อุปกรณ์ที่ต้องใช้

อุปกรณ์จำนวนหมายเหตุ
ESP32 NodeMCU ESP-WROOM-321 บอร์ดWi-Fi + Bluetooth, Dual Core
บอร์ด Relay 4 Channel 3V1 บอร์ดIsolation High/Low Trigger 250V/10A
Breadboard 170 จุด1 ชิ้นสำหรับทดลองวงจร
สาย Micro USB Type B1 เส้นยาว 1 เมตร
Power Adapter Micro USB 5V 2A1 ตัวจ่ายไฟให้ ESP32
ESP32 Screw Shield (30 Pin)1 ชิ้นช่วยต่อสายง่ายขึ้น
สาย Jumper ผู้-ผู้ 20cm40 เส้น
สาย Jumper ผู้-เมีย 20cm40 เส้น
สาย Jumper เมีย-เมีย 20cm40 เส้น
ขั้วหลอดไฟ E27 + หลอด LED 7W1 ชุดสำหรับทดสอบโหลด
สายไฟ 2*0.75 พร้อมหัวปลั๊ก2 เส้นยาว 1.5m และ 2m
แผนภาพจัดวางอุปกรณ์บนโต๊ะ — ESP32 วางบน Screw Shield ด้านบน ข้างๆ วาง Breadboard และบอร์ด Relay 4 Channel พร้อมสาย Jumper หลายสี

วงจร Relay Module 4 Channel ทำงานอย่างไร

บอร์ด Relay 4 Channel แต่ละช่องมีโครงสร้างภายในประกอบด้วย:

  • ขา VCC — จ่ายไฟ 5V ให้วงจรควบคุมภายในรีเลย์
  • ขา GND — ขากราวด์ร่วม
  • ขา Signal (S1-S4) — รับสัญญาณดิจิทัลจาก ESP32 เพื่อสั่งให้รีเลย์ทำงาน
  • ขา COM — ขากลางของหน้าสัมผัส (Common)
  • ขา NO — หน้าสัมผัสปกติเปิด (Normal Open) — จะปิดเมื่อรีเลย์ทำงาน
  • ขา NC — หน้าสัมผัสปกติปิด (Normal Closed) — จะเปิดเมื่อรีเลย์ทำงาน

หลักการคือเมื่อสัญญาณจาก ESP32 ส่งมาที่ขา Signal ควบคุมให้ขา NO กับ COM ต่อกัน ทำให้กระแสไฟ AC ไหลผ่านได้

วงจรภายในรีเลย์ 1 ช่อง แสดงขา VCC GND Signal ด้านซ้าย และ COM NO NC ด้านขวา มี optocoupler และ LED บอกสถานะ

การต่อสาย ESP32 กับ Relay Module

ส่วนควบคุม (ไฟ 5V DC)

ESP32บอร์ด Relay 4 Channel
Vin (5V)VCC
GNDGND
D23S1
D22S2
D21S3
D19S4
ตารางการต่อสาย ESP32 กับ Relay Module พร้อมสีสายแนะนำ — Vin (แดง) → VCC, GND (ดำ) → GND, D23 (ส้ม) → S1, D22 (เหลือง) → S2, D21 (เขียว) → S3, D19 (ฟ้า) → S4

ส่วนโหลด (ไฟ 220V AC)

สำหรับควบคุมหลอดไฟ 1 ดวง (ใช้รีเลย์ 1 ช่อง):

  • สาย L (ไฟร้อน) จากปลั๊กบ้าน → ขา NO ของรีเลย์ช่องที่ 4
  • ขา COM ของรีเลย์ช่องที่ 4 → สาย L ไปเข้าหลอดไฟ
  • สาย N (ไฟเย็น) จากปลั๊กบ้าน → สาย N เข้าหลอดไฟโดยตรง

หมายเหตุ: ถ้าต้องการใช้รีเลย์หลายช่องควบคุมหลอดไฟหลายดวง ให้ต่อแต่ละช่องเป็นอิสระตามวิธีเดียวกัน

[image: วงจรไฟ AC 220V — สายไฟบ้าน L เข้ารีเลย์ช่อง 4 ที่ขา NO และ COM ออกไปเข้าหลอดไฟ E27 สาย N ต่อตรง]

โค้ด Arduino ควบคุมรีเลย์แบบเรียงลำดับ

// กำหนดขาสัญญาณที่ต่อกับ Relay 4 Channel
const int RELAY_S1 = 23;  // รีเลย์ช่องที่ 1
const int RELAY_S2 = 22;  // รีเลย์ช่องที่ 2
const int RELAY_S3 = 21;  // รีเลย์ช่องที่ 3
const int RELAY_S4 = 19;  // รีเลย์ช่องที่ 4

void setup() {
  // ตั้งค่าขาทั้ง 4 ขาเป็น Output
  pinMode(RELAY_S1, OUTPUT);
  pinMode(RELAY_S2, OUTPUT);
  pinMode(RELAY_S3, OUTPUT);
  pinMode(RELAY_S4, OUTPUT);

  // ปิดรีเลย์ทุกตัวเริ่มต้น (ปรับเป็น HIGH หรือ LOW ตามชนิดของบอร์ด)
  digitalWrite(RELAY_S1, LOW);
  digitalWrite(RELAY_S2, LOW);
  digitalWrite(RELAY_S3, LOW);
  digitalWrite(RELAY_S4, LOW);
}

void loop() {
  // เปิดรีเลย์ทีละตัว หน่วงเวลา 1 วินาที
  digitalWrite(RELAY_S1, HIGH);
  delay(1000);

  digitalWrite(RELAY_S2, HIGH);
  delay(1000);

  digitalWrite(RELAY_S3, HIGH);
  delay(1000);

  digitalWrite(RELAY_S4, HIGH);  // หลอดไฟจะติดที่จุดนี้
  delay(1000);

  // ปิดรีเลย์ทีละตัว หน่วงเวลา 1 วินาที
  digitalWrite(RELAY_S1, LOW);
  delay(1000);

  digitalWrite(RELAY_S2, LOW);
  delay(1000);

  digitalWrite(RELAY_S3, LOW);
  delay(1000);

  digitalWrite(RELAY_S4, LOW);
  delay(1000);
}

ขั้นตอนการอัปโหลดโค้ด

  1. เปิด Arduino IDE → วางโค้ดด้านบน
  2. ไปที่ Tools → Port → เลือก Port ที่ ESP32 เชื่อมต่อ
  3. ไปที่ Tools → Board → เลือกประเภทบอร์ด ESP32 ที่ใช้
  4. กดปุ่ม Upload (ลูกศรขวา)
  5. รอจนขึ้น Done uploading ที่แถบด้านล่าง

จุดที่ต้องปรับ: ถ้ารีเลย์ไม่ทำงาน ให้ลองสลับ digitalWrite(pin, LOW) เป็น HIGH เนื่องจากบอร์ดรีเลย์แต่ละรุ่นใช้ Trigger ต่างกัน (บางรุ่น Active LOW)

ทดสอบการทำงาน

เมื่ออัปโหลดโค้ดเสร็จแล้ว จะเห็นพฤติกรรมดังนี้:

  1. รีเลย์ช่องที่ 1 ติด → relay click
  2. รีเลย์ช่องที่ 2 ติด → relay click
  3. รีเลย์ช่องที่ 3 ติด → relay click
  4. รีเลย์ช่องที่ 4 ติด → หลอดไฟติด (วงจร AC ปิด)
  5. รีเลย์ช่องที่ 1-4 ดับตามลำดับ → หลอดไฟดับ
  6. วนซ้ำทุก 8 วินาที

[image: ลำดับการทำงานของรีเลย์ 4 ช่อง — แสดง Timeline ตามแนวนอน มี 4 แถวแทนรีเลย์แต่ละช่อง ช่วงเวลาที่ HIGH ใช้สีเข้ม ช่วง LOW ใช้สีอ่อน พร้อมข้อความบอกว่าหลอดไฟติดช่วงไหน]

ข้อควรระวังเรื่องความปลอดภัย

  • แยกส่วน DC ออกจากส่วน AC — สายไฟ 220V ต้องพาดผ่านบอร์ดรีเลย์อย่างเป็นระเบียบ ไม่ชนสายสัญญาณ
  • ใช้ขั้วหลอดไฟที่ถูกต้อง — ขั้ว E27 ต้องมีฝาครอบป้องกันไฟฟ้าสัมผัส
  • ห้ามแตะส่วน AC ขณะจ่ายไฟ — ปิดสวิตช์หรือถอดปลั๊กก่อนต่อสาย
  • ตรวจสอบ spec รีเลย์ก่อนใช้ — รีเลย์รุ่นนี้รับได้ 250V/10A อย่าดึงโหลดเกิน
  • Isolation optocoupler — บอร์ดนี้มี optocoupler กั้นระหว่างวงจรควบคุมกับวงจรโหลด ช่วยป้องกันไฟกระซิกกลับมาเสียหาย ESP32

ขยายความรู้เพิ่มเติม

High Trigger กับ Low Trigger

บอร์ด Relay บางรุ่นใช้ Active LOW คือสั่ง LOW แล้วรีเลย์ทำงาน ถ้าใช้โค้ดด้านบนแล้วรีเลย์สวิตช์ตลอดเวลาแม้ปิดโค้ด แสดงว่าบอร์ดที่ใช้เป็น Active LOW ให้สลับสถานะเริ่มต้นและคำสั่งใน loop

ต่อหลายหลอดพร้อมกัน

ถ้าต้องการให้หลอดไฟทุกดวงติดพร้อมกัน เปลี่ยนโค้ดใน loop() เป็น:

void loop() {
  // เปิดทั้ง 4 รีเลย์พร้อมกัน
  digitalWrite(RELAY_S1, HIGH);
  digitalWrite(RELAY_S2, HIGH);
  digitalWrite(RELAY_S3, HIGH);
  digitalWrite(RELAY_S4, HIGH);
  delay(3000);

  // ปิดทั้ง 4 รีเลย์พร้อมกัน
  digitalWrite(RELAY_S1, LOW);
  digitalWrite(RELAY_S2, LOW);
  digitalWrite(RELAY_S3, LOW);
  digitalWrite(RELAY_S4, LOW);
  delay(3000);
}

ปิดเปิดรีเลย์จากเว็บ

เมื่อเชื่อม ESP32 เข้า Wi-Fi แล้ว ใช้ Web Server หรือ Blynk ควบคุมรีเลย์จากมือถือได้ ซึ่งเป็นการปูทางสู่โปรเจกต์ Smart Home ขั้นต่อไป

สรุป

การต่อ ESP32 กับ Relay 4 Channel 3V มีหลักการง่าย ๆ คือ จ่ายไฟ 5V ให้บอร์ดรีเลย์ → ต่อ GND ร่วม → สั่งขา Signal ด้วย digitalWrite ตามขาที่กำหนด (D23 D22 D21 D19) ส่วนไฟ 220V AC ให้ต่อที่ขา COM และ NO อย่างถูกต้อง และอย่าลืมว่าความปลอดภัยต้องมาก่อนเสมอ

วิดีโออ้างอิง

https://www.youtube.com/embed/V0laB4hj1W8

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

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

ประเมิน Project

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

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

ความคิดเห็น

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

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

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

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