กลับหน้าหลัก
views
วิธีใช้งาน ESP32 ควบคุม Solid State Relay แบบ Active Low 2 Channel
Last updated on

วิธีใช้งาน 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 กับ SSR 2 Channel แสดงสาย VIN/GND/D22/D23 ไปยังขา DC+/DC-/CH1/CH2 และสาย AC ต่อไปยังหลอดไฟ

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

  • บอร์ด 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+
GNDDC-
D22CH1
D23CH2
ภาพวงจรบน breadboard แสดง ESP32 ต่อกับ SSR ด้าน DC โดยเฉพาะขา DC+/DC-/CH1/CH2 อย่างชัดเจน

ส่วนโหลด (เชื่อมต่อกับไฟ AC 220V)

  1. ต่อสายไฟ AC เส้นหนึ่ง (เช่น สาย L) ไปยังโหลดตัวที่ 1 ผ่านขา A1 ของ SSR
  2. ต่อสายไฟ AC เส้นหนึ่ง (เช่น สาย L) ไปยังโหลดตัวที่ 2 ผ่านขา A2 ของ SSR
  3. ต่อสาย N ของไฟ AC ไปยังขา B1 และ B2 ของ SSR

หมายเหตุ: โหลดต้องรองรับแรงดัน 220V AC ได้ เช่น หลอดไฟ พัดลม หรือมอเตอร์ขนาดเล็ก ต่อโหลดอย่างน้อย 1 ตัวต่อช่อง ไม่เช่นนั้น SSR อาจทำงานผิดพลาด

แผนภาพสายไฟ AC 220V เข้า SSR ผ่านขา A1/A2/B1/B2 และออกไปยังโหลดอย่างชัดเจน มีข้อความเตือนเรื่องความปลอดภัยไฟฟ้า

โค้ด 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;
    }
  }
}

ขั้นตอนการอัปโหลดและทดสอบ

  1. เปิด Arduino IDE แล้ววางโค้ดด้านบน
  2. ไปที่ Tools → Port เลือก port ที่เชื่อมต่อกับ ESP32
  3. ไปที่ Tools → Board เลือกประเภทบอร์ดที่ใช้งาน
  4. กด Upload (Sketch → Upload) รอจนขึ้น Done uploading
  5. เปิด Serial Monitor (Tools → Serial Monitor) ตั้งค่า baud เป็น 9600
  6. ส่งค่าตัวเลขได้ตามคำสั่ง:
คำสั่งผลลัพธ์
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 แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

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

ประเมิน Project

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

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

ความคิดเห็น

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

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

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

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