ในปัจจุบัน การควบคุมอุปกรณ์ไฟฟ้าผ่านอินเทอร์เน็ตเป็นที่นิยมมากขึ้น ESP32 เป็นไมโครคอนโทรลเลอร์ที่มี Wi-Fi และ Bluetooth ในตัว เหมาะสำหรับการพัฒนา Smart Home ในบทความนี้ เราจะสร้าง Smart Switch สำหรับควบคุมไฟผ่านแอป Blynk บน Mac
การสร้างโปรเจค ESP32 เปิด-ปิดไฟ ผ่านแอปบน Mac ด้วย Blynk เป็นโครงการที่มีประโยชน์มากสำหรับการทำระบบสมาร์ทโฮม สามารถควบคุมไฟฟ้าในบ้านจากที่ไหนก็ได้ผ่านแอปพลิเคชันบน Mac นี่คือขั้นตอนหลักในการสร้างโปรเจคนี้:
อุปกรณ์ที่ใช้
- DevKitC V4 ESP32 Development Board
- ESP32 Expansion Board 38Pins
- Micro USB Cable Wire 1m
- Relay 2 Channel 5V DC
- หลอดไฟ + ชั้วหลอด 2 ชุด
- สายไฟทองแดง เดี่ยว สายแข็ง
- AC Power Cord 2 Pin Plug
- สาย Jumper
- Power Supply 9V
- Mac (สำหรับรันแอป Blynk และอัปโหลดโค้ด)

เทคโนโลยีและอุปกรณ์ที่ใช้
- บอร์ด ESP32: เป็นบอร์ดไมโครคอนโทรเลอร์ที่มีความสามารถมากมาย เช่น การเชื่อมต่อ WiFi, Bluetooth, และการประมวลผลที่เร็วและมีประสิทธิภาพ
- Arduino IDE: เป็นโปรแกรมที่ใช้ในการเขียนและอัปโหลดโค้ดลงในบอร์ด Arduino หรือ ESP32 ซึ่งมีความสะดวกและใช้งานง่ายสำหรับผู้เริ่มต้น
- Blynk เป็นแพลตฟอร์ม IoT (Internet of Things) ที่ช่วยให้คุณสร้างแอปพลิเคชันสำหรับควบคุมอุปกรณ์ดิจิตอลต่าง ๆ ผ่านเครือข่ายอินเทอร์เน็ตได้อย่างง่ายดาย
1.การเชื่อมต่ออุปกรณ์

ESP32 Expansion Board 38Pins คือบอร์ดเสริมที่ออกแบบมาเพื่อใช้งานร่วมกับ ESP32 รุ่นที่มี 38 ขา (38 Pins) โดยช่วยให้สามารถเชื่อมต่อกับอุปกรณ์ภายนอกได้สะดวกขึ้น เช่น การต่อเซนเซอร์, รีเลย์ และโมดูลอื่น ๆ
เชื่อมต่อ ESP32 กับ Relay Module ดังนี้:
33 <-> IN2
32 <-> IN1
V <-> VCC
G <-> GND

เชื่อมต่อ Relay กับ หลอดไฟ

ภาพรวมการประกอบ

ดาวน์โหลดและติดตั้ง Arduino IDE 2.0 บน MAC
ขั้นตอนการดาวน์โหลดและติดตั้ง Arduino IDE 2.0 บน MAC
ขั้นตอนที่ 1: ดาวน์โหลด Arduino IDE
เปิดเบราว์เซอร์ ไปที่ https://www.arduino.cc/en/software
เลือกเวอร์ชัน Mac OS (Apple Silicon หรือ Intel CPU) ให้ตรงกับเครื่องของคุณ ถ้ารุ่นใหม่ๆก็จะเป็น Apple Silicon

กดปุ่ม “Just Download”

กดปุ่ม “Just Download” อีกครั้ง


ขั้นตอนที่ 2: ติดตั้ง Arduino IDE
เมื่อดาวน์โหลดไฟล์ เสร็จแล้ว ให้ดับเบิลคลิกที่ไฟล์เพื่อแตกไฟล์

ลากไอคอน Arduino.app ไปยัง Applications


ขั้นตอนที่ 3: เปิดใช้งานครั้งแรก
เปิด Finder →

ไปที่ Applications → คลิกที่ Arduino

คลิก Open

คลิก OK

ขั้นตอนที่ 3: กำหนดค่าให้ รองรับบอร์ด ESP32
ไปที่ Arduino IDE > Preferences

คัดลอกและวางบรรทัดต่อไปนี้ลงในฟิลด์ Boards Manager URLs
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
คลิก OK

คลิกไอคอนตัวจัดการบอร์ดที่มุมด้านซ้าย ค้นหา ESP32 และกดปุ่ม INSTALL สำหรับ esp32 โดย Espressif Systems


ขั้นตอนที่ 4: ทดสอบการต่อสายเบื้องต้น ESP32 เปิด-ปิดไฟ
เสียบสาย USB ระหว่างคอมพิวเตอร์ กับ บอร์ด ESP32

เขียนโค้ดดังนี้
int LED1 = 33;
int LED2 = 32;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
void loop() {
digitalWrite(LED1, HIGH);
delay(1000);
digitalWrite(LED1, LOW);
delay(1000);
digitalWrite(LED2, HIGH);
delay(1000);
digitalWrite(LED2, LOW);
delay(1000);
}
ไปที่ Tools -> Board -> esp32 -> เลือกบอร์ด ESP32 ตามรุ่นที่ใช้ เป็น ESP32 Dev Module

เลือก Port โดยไปที่ Tools -> Port -> /dev/cu.usbserial-00001
(โดย /dev/cu.usbserial-00001 แต่ละเครื่องอาจจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)

ไปที่ Sketch -> Upload

รอจน แสดงการ Upload สำเร็จ

คลิป-ทดสอบการต่อสายเบื้องต้น ESP32 เปิด-ปิดไฟ
ขั้นตอนที่ 5: ทดสอบ เชื่อมต่อ WiFi ของ ESP32
การทดสอบว่า ESP32 เชื่อมต่อ WiFi ได้สำเร็จหรือไม่? เช่น ชื่อ WiFi และ รหัสผ่าน WiFi รวมทั้ง การทำงานของเครือข่าย WiFi โดยใช้ Arduino IDE ดังนี้:
โค้ด
#include <WiFi.h>
const char* ssid = "ชื่อเครือข่าย WiFi"; // ใส่ชื่อ WiFi ของคุณ
const char* password = "รหัสผ่าน WiFi"; // ใส่รหัสผ่าน WiFi ของคุณ
void setup() {
Serial.begin(115200); // เปิด Serial Monitor
delay(1000);
// เริ่มการเชื่อมต่อ WiFi
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
// เมื่อเชื่อมต่อสำเร็จ
Serial.println("\nWiFi connected!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// วนลูปทำงาน (ถ้าต้องการ)
}

Upload โค้ด แล้วไปที่ Tools -> Serial Monitor

กดที่ปุ่ม EN Button ที่บอร์ด ESP32

หากเชื่อมต่อสำเร็จ จะเห็นข้อความ WiFi connected! และ IP address ในตัวอย่างคือ 192.168.1.38 (ขั้นตอนตอนนี้สำเร็จแล้ว)

ขั้นตอนที่ 6: เรียนรู้การใช้งาน App Blynk เบื้องต้น
ขั้นตอนที่ 7: ใช้งานเว็บ Blynk
Blynk เป็นแพลตฟอร์ม IoT (Internet of Things) ที่ช่วยให้คุณสร้างแอปพลิเคชันสำหรับควบคุมอุปกรณ์ดิจิตอลต่าง ๆ ผ่านเครือข่ายอินเทอร์เน็ตได้อย่างง่ายดาย นี่คือขั้นตอนพื้นฐานในการเริ่มต้นใช้งาน Blynk:
สร้างบัญชี Blynk:
ไปที่เว็บไซต์ของ Blynk (https://blynk.io/) และสร้างบัญชีผู้ใช้ใหม่
ใช้ PC คอมพิวเตอร์ แล้วเปิดเบราว์เซอร์ ไปที่ https://blynk.io/ คลิกที่ START FREE

กรอกอีเมล แล้วกด Sign Up

ระบบแจ้งให้ไปยืนยัน Email ที่ใช้สมัคร

ไปที่ Email ที่ใช้สมัคร จะมี Email ที่ส่งมาจาก Blynk เปิดเข้าไป แล้ว คลิกที่ Create Password

สร้างรหัสผ่าน -> Next

ตั้งชื่อผู้ใช้งาน -> Done

พร้อมใช้งานแล้ว

กลับไปที่ blynk.io คลิกที่ LOG IN

เข้าสู่ระบบด้วยข้อมูลบัญชี Email และ รหัสผ่าน ที่คุณสร้าง -> Log In

เลือก + New Template

ตั้งชื่อ ในตัวอย่างคือ LED2 บอร์ดคือ ESP32 และเชื่อมต่อแบบ WIFI -> Done

คลิก Save

ไปที่ Datastreams -> Edit

New Datastreams -> Virtual Pin

NAEM = LED1 , PIN = V1 , DATA TYPE = Integer -> Create

New Datastreams -> Virtual Pin

NAEM = LED2 , PIN = V2 , DATA TYPE = Integer -> Create

ตลิก Save

ไปที่ Datastreams – Edit


ไปที่ Web Dashboard

ที่ Widget Box ลาก Switch 2 ตัว ไปที่ส่วนแสดงผล

เลือก Switch ที่ส่วนแสดงผล ตัวบนสุด แล้วเลือกรูปเฟือง เพื่อกำหนดค่า

ตั้งชื่อ เป็น LED1 เลือกเป็น LED1(V1) -> Save

ตัวถัดไป ตั้งชื่อ เป็น LED2 เลือกเป็น LED1(V2) -> Save

คลิก Save มุมขวาบน

ไปที่ Devices -> New Device

เลือก From template

TEMPLATE เลือก Template ที่เราสร้างก่อนหน้านี้ คือ LED2 -> Create

ก๊อปปี้ ส่วน New Device Created (พื้นสีดำ) สำหรับเอาไปแก้ไขโค้ดของ Arduino


ตัวอย่างคือ
#define BLYNK_TEMPLATE_ID "TMPL6xy66xOcz"
#define BLYNK_TEMPLATE_NAME "LED2"
#define BLYNK_AUTH_TOKEN "0S8arc664Rqc5qBoM8nip0z_sjxv7N5u"
โดยเราจะนำค่าเหล่านี้ไปใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 8 : ติดตั้ง ไลบรารี่ Blynk ที่ Arduino IDE
เปิด Arduino IDEไปที่ เมนู Sketch → Include Library → Manage Libraries…

ค้นหา Blynk ในช่องค้นหา แล้วคลิก INSTALL

คลิก INSTALL ALL

รอจนติดตั้งสำเร็จ

ขั้นตอนที่ 9 : Uplpad Code โปรเจค ESP32 เปิด-ปิดไฟ ผ่านแอปบน Mac ด้วย Blynk
ก่อนอัพโหลดต้องแก้ไขโค้ด ส่วน Blynk Device Info here ที่ก๊อปปี้ จากส่วน New Device Created ของขั้นตอนที่แล้ว (ไม่ใช่ค่าตามตัวอย่างนี้ ต้องใช้ ข้อมูลที่ได้มาจาก ขั้นตอนที่ 7)
และ แก้ไข ชื่อเครือข่าย wifi และ รหัสผ่าน
นี่คือโค้ด
#define BLYNK_PRINT Serial
/* แก้ไขข้อมูลที่ได้มาจาก ขั้นตอนที่ 7 */
#define BLYNK_TEMPLATE_ID "TMPL6xy66xOcz"
#define BLYNK_TEMPLATE_NAME "LED2"
#define BLYNK_AUTH_TOKEN "0S8arc664Rqc5qBoM8nip0z_sjxv7N5u"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Your WiFi credentials.
char ssid[] = "ชื่อเครือข่าย WiFi"; // ใส่ชื่อ WiFi ของคุณ
char pass[] = "รหัสผ่าน WiFi"; // ใส่รหัสผ่าน WiFi ของคุณ
int LED1 = 33;
int LED2 = 32;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}
void loop() {
Blynk.run();
}
BLYNK_WRITE(V1) {
int pinValue = param.asInt(); // Get the value from the Blynk app
// Update LED state
if (pinValue == 1) {
digitalWrite(LED1, HIGH); // Turn LED ON
} else {
digitalWrite(LED1, LOW); // Turn LED OFF
}
}
BLYNK_WRITE(V2) {
int pinValue = param.asInt(); // Get the value from the Blynk app
// Update LED state
if (pinValue == 1) {
digitalWrite(LED2, HIGH); // Turn LED ON
} else {
digitalWrite(LED2, LOW); // Turn LED OFF
}
}

กลับไปที่ Blynk ไปที่ Devices ที่ Status ต้องแสดง สถานะ Online

คลิกที่ LED 2 แล้วทดสอบการทำงาน

วิดีโอผลลัพธ์การทำงาน โปรเจค ESP32 เปิด-ปิดไฟ ผ่านแอปบน Mac ด้วย Blynk
สรุป
เราได้สร้าง ESP32 Smart Switch ที่สามารถควบคุมผ่านแอป Blynk บน Mac ได้สำเร็จ สามารถนำไปปรับใช้กับอุปกรณ์อื่น ๆ เช่น พัดลม หรือเครื่องใช้ไฟฟ้าอื่น ๆ ได้ต่อไป