นบทที่แล้วเราทำสวิตช์ไฟที่สั่งงานผ่าน Web Browser ได้แล้ว แต่ข้อเสียคือ “ต้องอยู่บ้านและต่อ Wi-Fi เดียวกันเท่านั้นถึงจะสั่งได้” ในบทนี้ เราจะมาแก้ปัญหานั้นด้วยการใช้แพลตฟอร์ม Cloud ที่ชื่อว่า Blynk IoT ซึ่งเป็นแอปพลิเคชันยอดนิยมสำหรับการเรียนการสอน เพราะใช้งานง่ายและมีหน้าตา UI สวยงาม เราจะนำมาควบคุม รีเลย์ (Relay) เพื่อจำลองการสร้าง “ปลั๊กไฟอัจฉริยะ (Smart Plug)” สำหรับเสียบพัดลมหรือโคมไฟครับ


1. จุดประสงค์การเรียนรู้ (Objectives)

  1. เข้าใจการทำงานของ Relay Module ในการตัดต่อไฟ 220V (จำลองด้วย LED ก่อนเพื่อความปลอดภัย)
  2. สามารถสมัครและตั้งค่า Blynk Console (Template/Device) ได้
  3. เขียนโปรแกรมเชื่อมต่อ ESP32 เข้ากับ Blynk Server เพื่อสั่งงานผ่านอินเทอร์เน็ตได้

2. อุปกรณ์ที่ต้องเตรียม (Hardware)

  1. บอร์ด ESP32 : 1 บอร์ด
  2. Relay Module (1 Channel) 5V : 1 ตัว (พระเอกของงานนี้ ทำหน้าที่เหมือนสวิตช์ตัดต่อไฟ)
  3. สาย Jumper : ผู้-เมีย (Male-Female)
  4. สมาร์ทโฟน (Android หรือ iOS) ที่ติดตั้งแอปฯ Blynk IoT

3. การต่อวงจร (Wiring Diagram)

เราจะต่อ Relay เข้ากับ ESP32 (สมมติใช้ขา GPIO 26)

  • VCC (Relay): ต่อเข้าขา VIN หรือ 5V ของ ESP32
  • GND (Relay): ต่อเข้าขา GND ของ ESP32
  • IN (Relay): ต่อเข้าขา GPIO 26 (D26) ของ ESP32

(ข้อควรระวัง: Relay Module บางรุ่นเป็น Active LOW คือป้อนไฟ 0V ถึงจะทำงาน, บางรุ่น Active HIGH คือป้อน 3.3V ถึงจะทำงาน ในแล็บนี้ให้สังเกตเสียง “ติ๊ก” เวลาสั่งงาน)

4. การตั้งค่าบน Blynk Console (ทำบนคอมพิวเตอร์)

ก่อนเขียนโค้ด ต้องไปสร้าง “ตัวตน” ของอุปกรณ์บน Cloud ก่อน:

  1. เข้าไปที่เว็บไซต์ blynk.cloud และสมัครสมาชิก/ล็อกอิน
  2. สร้าง New Template:
    • Name: Smart Plug
    • Hardware: ESP32
    • Connection Type: WiFi
  3. ไปที่แถบ Datastreams -> กด New Datastream -> เลือก Virtual Pin:
    • Name: Fan Switch
    • Pin: V0 (จำเลขนี้ไว้ให้ดี)
    • Data Type: Integer
    • Min/Max: 0 / 1
  4. ไปที่รูปแว่นขยาย (Search) -> กด New Device -> เลือก From Template -> เลือก Template ที่เพิ่งสร้าง
  5. สำคัญมาก: ท่านจะได้ Template ID, Device Name, และ Auth Token (เป็นโค้ด 3 บรรทัด) ให้ก๊อปปี้เก็บไว้ใส่ในโปรแกรม

5. การเขียนโปรแกรม (Source Code)

ท่านต้องติดตั้ง Library ชื่อ “Blynk” ใน Arduino IDE ก่อน (ไปที่ Sketch > Include Library > Manage Libraries > ค้นหา “Blynk” และกด Install)

จากนั้นคัดลอกโค้ดนี้ไปวาง (อย่าลืมแก้โค้ด 3 บรรทัดบน และชื่อ Wi-Fi):

C++
// --- ใส่โค้ด 3 บรรทัดที่ได้จาก Blynk Console ตรงนี้ ---
#define BLYNK_TEMPLATE_ID "ใส่_Template_ID_ของท่าน"
#define BLYNK_DEVICE_NAME "Smart Plug"
#define BLYNK_AUTH_TOKEN "ใส่_Auth_Token_ของท่าน"

#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>

// --- ตั้งค่า Wi-Fi ---
char ssid[] = "ชื่อไวไฟบ้านท่าน";
char pass[] = "รหัสผ่านไวไฟ";

// กำหนดขาอุปกรณ์
#define RELAY_PIN 26  // ขาที่ต่อ Relay

// --- ฟังก์ชันรับคำสั่งจากแอป Blynk (Virtual Pin V0) ---
// เมื่อเรากดปุ่มในแอป ฟังก์ชันนี้จะทำงานทันที
BLYNK_WRITE(V0) {
  int pinValue = param.asInt(); // รับค่า 0 หรือ 1 จากแอป
  
  if (pinValue == 1) {
    digitalWrite(RELAY_PIN, HIGH); // สั่ง Relay ทำงาน (ถ้า Relay เป็น Active High)
    Serial.println("Turn ON");
  } else {
    digitalWrite(RELAY_PIN, LOW);  // สั่ง Relay หยุดทำงาน
    Serial.println("Turn OFF");
  }
}

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PIN, OUTPUT);
  
  // เชื่อมต่อ Blynk
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}

void loop() {
  Blynk.run(); // หัวใจสำคัญ ให้ Blynk ทำงานตลอดเวลา
}

6. การสร้างปุ่มบนมือถือ (Mobile App Setup)

  1. เปิดแอป Blynk IoT บนมือถือ
  2. จะเห็นชื่อ Device Smart Plug ที่เราสร้างไว้ กดเข้าไป
  3. กดรูปประแจ (Settings/Developer Mode) เพื่อแก้ไขหน้าจอ
  4. กดเครื่องหมาย + เลือก Button
  5. จิ้มที่ปุ่ม Button เพื่อตั้งค่า:
    • Datastream: เลือก Fan Switch (V0) ที่เราสร้างไว้
    • Mode: เลือก Switch (กดติด-กดดับ)
  6. กด Back ออกมา แล้วกด Play (สามเหลี่ยมมุมขวาบน)

7. ผลลัพธ์การทดลอง

  1. เมื่อท่านกดปุ่มบนแอปมือถือ จะต้องได้ยินเสียง Relay ดัง “ติ๊ก” และไฟสถานะบนบอร์ด Relay ติด
  2. เมื่อกดอีกครั้ง จะได้ยินเสียงตัด และไฟดับ
  3. ทดลองขั้นสูง: ลองปิด Wi-Fi มือถือ แล้วใช้ 4G กดสั่งงานดู ถ้า Relay ยังทำงานได้ แสดงว่าท่านทำสำเร็จ! ท่านสามารถสั่งงานพัดลมตัวนี้จากที่ไหนก็ได้ในโลกแล้วครับ

เกร็ดความรู้สำหรับช่าง:

  • Active HIGH vs Active LOW: หากท่านใช้ Relay แล้วพบว่า “กดปุ่มเปิดในแอป แต่ Relay ดับ” (สลับกัน) ให้แก้โค้ดจาก HIGH เป็น LOW และ LOW เป็น HIGH ครับ
  • ความปลอดภัย: การนำไปต่อกับพัดลมจริง (220V) ต้องตัดสายไฟ AC เส้นใดเส้นหนึ่ง (L) มาเข้าช่อง COM และออกจากช่อง NO (Normally Open) ของ Relay ห้ามนำสาย L และ N มาเข้า Relay พร้อมกันเด็ดขาด เพราะจะระเบิด (Short Circuit)!