นบทที่แล้วเราทำสวิตช์ไฟที่สั่งงานผ่าน Web Browser ได้แล้ว แต่ข้อเสียคือ “ต้องอยู่บ้านและต่อ Wi-Fi เดียวกันเท่านั้นถึงจะสั่งได้” ในบทนี้ เราจะมาแก้ปัญหานั้นด้วยการใช้แพลตฟอร์ม Cloud ที่ชื่อว่า Blynk IoT ซึ่งเป็นแอปพลิเคชันยอดนิยมสำหรับการเรียนการสอน เพราะใช้งานง่ายและมีหน้าตา UI สวยงาม เราจะนำมาควบคุม รีเลย์ (Relay) เพื่อจำลองการสร้าง “ปลั๊กไฟอัจฉริยะ (Smart Plug)” สำหรับเสียบพัดลมหรือโคมไฟครับ
1. จุดประสงค์การเรียนรู้ (Objectives)
- เข้าใจการทำงานของ Relay Module ในการตัดต่อไฟ 220V (จำลองด้วย LED ก่อนเพื่อความปลอดภัย)
- สามารถสมัครและตั้งค่า Blynk Console (Template/Device) ได้
- เขียนโปรแกรมเชื่อมต่อ ESP32 เข้ากับ Blynk Server เพื่อสั่งงานผ่านอินเทอร์เน็ตได้
2. อุปกรณ์ที่ต้องเตรียม (Hardware)
- บอร์ด ESP32 : 1 บอร์ด
- Relay Module (1 Channel) 5V : 1 ตัว (พระเอกของงานนี้ ทำหน้าที่เหมือนสวิตช์ตัดต่อไฟ)
- สาย Jumper : ผู้-เมีย (Male-Female)
- สมาร์ทโฟน (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 ก่อน:
- เข้าไปที่เว็บไซต์
blynk.cloudและสมัครสมาชิก/ล็อกอิน - สร้าง New Template:
- Name:
Smart Plug - Hardware:
ESP32 - Connection Type:
WiFi
- Name:
- ไปที่แถบ Datastreams -> กด New Datastream -> เลือก Virtual Pin:
- Name:
Fan Switch - Pin:
V0(จำเลขนี้ไว้ให้ดี) - Data Type:
Integer - Min/Max:
0/1
- Name:
- ไปที่รูปแว่นขยาย (Search) -> กด New Device -> เลือก
From Template-> เลือก Template ที่เพิ่งสร้าง - สำคัญมาก: ท่านจะได้ Template ID, Device Name, และ Auth Token (เป็นโค้ด 3 บรรทัด) ให้ก๊อปปี้เก็บไว้ใส่ในโปรแกรม
5. การเขียนโปรแกรม (Source Code)
ท่านต้องติดตั้ง Library ชื่อ “Blynk” ใน Arduino IDE ก่อน (ไปที่ Sketch > Include Library > Manage Libraries > ค้นหา “Blynk” และกด Install)
จากนั้นคัดลอกโค้ดนี้ไปวาง (อย่าลืมแก้โค้ด 3 บรรทัดบน และชื่อ Wi-Fi):
// --- ใส่โค้ด 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)
- เปิดแอป Blynk IoT บนมือถือ
- จะเห็นชื่อ Device
Smart Plugที่เราสร้างไว้ กดเข้าไป - กดรูปประแจ (Settings/Developer Mode) เพื่อแก้ไขหน้าจอ
- กดเครื่องหมาย + เลือก Button
- จิ้มที่ปุ่ม Button เพื่อตั้งค่า:
- Datastream: เลือก
Fan Switch (V0)ที่เราสร้างไว้ - Mode: เลือก
Switch(กดติด-กดดับ)
- Datastream: เลือก
- กด Back ออกมา แล้วกด Play (สามเหลี่ยมมุมขวาบน)
7. ผลลัพธ์การทดลอง
- เมื่อท่านกดปุ่มบนแอปมือถือ จะต้องได้ยินเสียง Relay ดัง “ติ๊ก” และไฟสถานะบนบอร์ด Relay ติด
- เมื่อกดอีกครั้ง จะได้ยินเสียงตัด และไฟดับ
- ทดลองขั้นสูง: ลองปิด 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)!
