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

กำหนดค่าให้ รองรับบอร์ด ESP32
ไปที่ File > Preferences

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

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

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

เขียนโค้ดดังนี้
int LED1 = 32;
int LED2 = 33;
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);
}
เลือกบอร์ด ESP32 ตามรุ่นที่ใช้ เป็น ESP32 Dev Module

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

ถ้าไม่พบ ให้ ดาวน์โหลดไดรเวอร์ CP2102:
เข้าเว็บไซต์ของ Silicon Labs (ผู้ผลิตชิป CP2102)
https://www.silabs.com/software-and-tools/usb-to-uart-bridge-vcp-drivers
แล้วทำการติดตั้ง
คลิกที่ Upload

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

คลิป-ทดสอบการต่อสายเบื้องต้น ESP32 เปิด-ปิดไฟ
ขั้นตอนที่ 3: ทดสอบ เชื่อมต่อ 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 (ขั้นตอนตอนนี้สำเร็จแล้ว)

ขั้นตอนที่ 4: เรียนรู้การใช้งาน App Blynk เบื้องต้น
ขั้นตอนที่ 5: ใช้งานเว็บ 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

ไปที่ Developer Zone -> My Templates -> 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"
โดยเราจะนำค่าเหล่านี้ไปใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 6 : ติดตั้ง ไลบรารี่ Blynk ที่ Arduino IDE
เปิด Arduino IDEไปที่ เมนู Sketch → Include Library → Manage Libraries…

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

คลิก INSTALL ALL

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

ขั้นตอนที่ 7 : Uplpad Code โปรเจค ESP32 เปิด-ปิดไฟ ผ่านแอป Blynk
ก่อนอัพโหลดต้องแก้ไขโค้ด ส่วน Blynk Device Info here ที่ก๊อปปี้ จากส่วน New Device Created ของขั้นตอนที่แล้ว (ไม่ใช่ค่าตามตัวอย่างนี้ ต้องใช้ ข้อมูลที่ได้มาจาก ขั้นตอนที่ 5)
และ แก้ไข ชื่อเครือข่าย wifi และ รหัสผ่าน โดยนำค่ามาจาก ขั้นตอนที่ 3
นี่คือโค้ด
#define BLYNK_PRINT Serial
/* แก้ไขข้อมูลที่ได้มาจาก ขั้นตอนที่ 5 */
#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[] = "Robotsiam_2.4G"; // ใส่ชื่อ WiFi ของคุณ
char pass[] = "m9g9pbmd"; // ใส่รหัสผ่าน WiFi ของคุณ
int LED1 = 32;
int LED2 = 33;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
}
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, LOW); // Turn LED ON
} else {
digitalWrite(LED1, HIGH); // 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, LOW); // Turn LED ON
} else {
digitalWrite(LED2, HIGH); // Turn LED OFF
}
}

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

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

วิดีโอผลลัพธ์การทำงาน โปรเจค ESP32 เปิด-ปิดไฟ ผ่านแอปบน Mac ด้วย Blynk
8. สร้างแอป Blynk ที่ สมาร์ทโฟน
เปิด Play Store จากนั้นค้นหาแอปพิเคชัน Blynk.
กดปุ่ม Install เพื่อติดตั้ง
เมื่อติดตั้งเสร็จจะได้แอปพิเคชัน Blynk. ต้องเข้าระบบด้วยบัญชี อีเมล และ รหัสผ่าน ผู้ใช้เดียวกัน กับขั้นตอนที่ 5 ด้วย
คลิกเข้าไปที่ LED2

คลิกเครื่องหมาย +

เพิ่ม Button 2 ปุ่ม

ตั้งค่าปุ่มที่ 1

ตั้งค่าปุ่มที่ 2

หลังการตั้งค่าแล้ว

ทดสอบการทำงาน
