วิธีใช้งาน ESP32 ควบคุม Solid State Relay แบบ Active Low 2 Channel
วิธีใช้งาน ESP32 ควบคุม Solid State Relay แบบ Active Low 2 Channel
Solid State Relay หรือ SSR คือรีเลย์แบบไร้สัมผัส ทำงานด้วยอุปกรณ์อิเล็กทรอนิกส์แทนขดลวดและหน้าสัมผัสเชิงกล ข้อดีคือทนทาน ไม่มีชิ้นส่วนเคลื่อนไหว และทำงานเงียบ SSR แบบ Active Low จะทำงานเมื่อส่งสัญญาณ LOW ไปที่ขา control
บทความนี้จะสอนต่อวงจรและเขียนโค้ด ESP32 ควบคุม SSR 2 Channel ผ่าน Serial Monitor เพื่อเปิด-ปิดหลอดไฟ AC 220V
อุปกรณ์ที่ต้องใช้
- บอร์ด ESP32 NodeMCU ESP-WROOM-32
- บอร์ด Solid State Relay Active Low 5V 2A 2 Channel (SSR)
- Micro USB Cable และ Adapter 5V 2A
- Breadboard สำหรับทดลอง
- สาย Jumper ผู้-ผู้, ผู้-เมีย, เมีย-เมีย
- ฐานหลอด E27 และหลอดไฟ LED 7W
- สายไฟ AC 220V พร้อมปลั๊ก
วิธีต่อวงจร ESP32 กับ SSR
การต่อวงจรแบ่งเป็น 2 ส่วน คือส่วนควบคุม (DC side) และส่วนโหลด (AC side)
ส่วนควบคุม (เชื่อมต่อกับ ESP32)
| ESP32 | ขา SSR |
|---|---|
| VIN (5V) | DC+ |
| GND | DC- |
| D22 | CH1 |
| D23 | CH2 |
ส่วนโหลด (เชื่อมต่อกับไฟ AC 220V)
- ต่อสายไฟ AC เส้นหนึ่ง (เช่น สาย L) ไปยังโหลดตัวที่ 1 ผ่านขา A1 ของ SSR
- ต่อสายไฟ AC เส้นหนึ่ง (เช่น สาย L) ไปยังโหลดตัวที่ 2 ผ่านขา A2 ของ SSR
- ต่อสาย N ของไฟ AC ไปยังขา B1 และ B2 ของ SSR
หมายเหตุ: โหลดต้องรองรับแรงดัน 220V AC ได้ เช่น หลอดไฟ พัดลม หรือมอเตอร์ขนาดเล็ก ต่อโหลดอย่างน้อย 1 ตัวต่อช่อง ไม่เช่นนั้น SSR อาจทำงานผิดพลาด
โค้ด Arduino สำหรับควบคุม SSR
คัดลอกโค้ดด้านล่างไปวางใน Arduino IDE แล้วอัปโหลดไปยังบอร์ด ESP32
// กำหนดขาที่ใช้ควบคุม SSR
#define SSR_CH1 22 // ขาที่ 22 ควบคุม SSR ช่อง 1
#define SSR_CH2 23 // ขาที่ 23 ควบคุม SSR ช่อง 2
void setup() {
Serial.begin(9600);
// กำหนดขาทั้งสองเป็น output
pinMode(SSR_CH1, OUTPUT);
pinMode(SSR_CH2, OUTPUT);
// ปิด SSR ทั้งสองช่องเริ่มต้น (Active Low ดังนั้น HIGH = ปิด)
digitalWrite(SSR_CH1, HIGH);
digitalWrite(SSR_CH2, HIGH);
Serial.println("=== ESP32 Solid State Relay Control ===");
Serial.println("ส่งข้อความ 0 เพื่อหยุดการทำงานของ SSR");
Serial.println("ส่งข้อความ 1 เพื่อใช้งาน SSR ช่อง 1");
Serial.println("ส่งข้อความ 2 เพื่อใช้งาน SSR ช่อง 2");
Serial.println("ส่งข้อความ 3 เพื่อใช้งาน SSR ทั้งหมด");
Serial.println("========================================");
}
void loop() {
if (Serial.available() > 0) {
char command = Serial.read();
switch (command) {
case '0':
// ปิด SSR ทั้งสองช่อง
digitalWrite(SSR_CH1, HIGH); // HIGH = ปิด (Active Low)
digitalWrite(SSR_CH2, HIGH); // HIGH = ปิด (Active Low)
Serial.println("- หยุดการทำงานของ SSR");
break;
case '1':
// เปิด SSR ช่อง 1 อย่างเดียว
digitalWrite(SSR_CH1, LOW); // LOW = เปิด (Active Low)
digitalWrite(SSR_CH2, HIGH); // ปิดช่อง 2
Serial.println("- ใช้งาน SSR ช่อง 1");
break;
case '2':
// เปิด SSR ช่อง 2 อย่างเดียว
digitalWrite(SSR_CH1, HIGH); // ปิดช่อง 1
digitalWrite(SSR_CH2, LOW); // LOW = เปิด (Active Low)
Serial.println("- ใช้งาน SSR ช่อง 2");
break;
case '3':
// เปิด SSR ทั้งสองช่อง
digitalWrite(SSR_CH1, LOW); // LOW = เปิด (Active Low)
digitalWrite(SSR_CH2, LOW); // LOW = เปิด (Active Low)
Serial.println("- ใช้งาน SSR ทั้งหมด");
break;
default:
Serial.println("- คำสั่งไม่ถูกต้อง ใช้ได้เฉพาะ 0, 1, 2, 3");
break;
}
}
}
ขั้นตอนการอัปโหลดและทดสอบ
- เปิด Arduino IDE แล้ววางโค้ดด้านบน
- ไปที่ Tools → Port เลือก port ที่เชื่อมต่อกับ ESP32
- ไปที่ Tools → Board เลือกประเภทบอร์ดที่ใช้งาน
- กด Upload (Sketch → Upload) รอจนขึ้น Done uploading
- เปิด Serial Monitor (Tools → Serial Monitor) ตั้งค่า baud เป็น 9600
- ส่งค่าตัวเลขได้ตามคำสั่ง:
| คำสั่ง | ผลลัพธ์ |
|---|---|
| 1 | หลอดไฟดวงที่ 1 ติด ดวงที่ 2 ดับ |
| 2 | หลอดไฟดวงที่ 2 ติด ดวงที่ 1 ดับ |
| 3 | หลอดไฟทั้งสองดวงติด |
| 0 | หลอดไฟทั้งสองดวงดับ |
ข้อควรระวังเรื่องความปลอดภัย
- ทำงานกับไฟ AC 220V ต้องระมัดระวัง หากไม่มีประสบการณ์ควรขอความช่วยเหลือจากผู้มีความรู้
- ตรวจสอบว่าสายไฟและจุดต่อทุกจุดแน่นหนา หลีกเลี่ยงการสัมผัสสายไฟขณะจ่ายไฟ
- บอร์ด SSR บางรุ่นมี LED แสดงสถานะ สังเกต LED บนบอร์ดเพื่อยืนยันการทำงาน
- โหลดที่ต่อต้องเป็น AC เท่านั้น ห้ามต่อโหลด DC
วิดีโออ้างอิง
สรุป
บอร์ด Solid State Relay Active Low 2 Channel เป็นอุปกรณ์ที่เหมาะสำหรับควบคุมอุปกรณ์ไฟ AC ด้วย ESP32 ด้วยโค้ดง่ายๆ ผ่าน Serial Monitor สามารถเปิด-ปิดโหลดได้ทีละช่องหรือพร้อมกันทั้งสองช่อง หากต้องการขยายจำนวนช่องหรือเพิ่มฟังก์ชันอื่น เช่น ควบคุมผ่าน WiFi ก็สามารถดัดแปลงโค้ดเพิ่มเติมได้
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย