การสร้างโปรเจคการเปิด-ปิดไฟด้วย ESP32 ผ่านอินเทอร์เน็ตโดยใช้ Blynk เป็นโครงการที่มีประโยชน์มากสำหรับการทำระบบสมาร์ทโฮม สามารถควบคุมไฟฟ้าในบ้านจากที่ไหนก็ได้ผ่านแอปพลิเคชันบนมือถือ นี่คือขั้นตอนหลักในการสร้างโปรเจคนี้:
รายการอุปกรณ์
1. 4 Channel Relay Module ESP32-WROOM Development Board
2. CP2102 USB 2.0 to UART TTL 5PIN Connector Module
3. Adapter DC 9V 1A Power Supply
4. DC Jack 5.5×2.1mm ตัวเมีย + สายไฟ
5. สายไฟแดงดำ ขนาด 22AWG มาตรฐาน ความยาว 1 เมตร
7. แผ่นอะคริลิคใสขนาด A4
8. สกรูหัวกลม+น็อตตัวเมีย ขนาด 3มม ยาว 10มม
9. หลอดไฟ E27 และขั้วเกลียว 4 หลอด
ประกอบโปรเจค
ใช้ เสารองแผ่นพีซีบี ยึด 4 Channel Relay Module ESP32 เข้ากับ แผ่นอะคริลิค
ประกอบ ปลั๊กไฟ และ ขั้วเกลียว 4 หลอด เข้ากับ 4 Channel Relay Module ESP32
ประกอบ หลอดไฟ ทั้ง 4 หลอด เข้ากับ ขั้วเกลียว
เชื่อมต่อ CP2102 USB เข้ากับ 4 Channel Relay Module ESP32 (เฉพาะ ที่ต้องการอัพโหลดโค้ดเท่านั้น)
เสียบ CP2102 USB เข้ากับ คอมพิวเตอร์ (เฉพาะ ที่ต้องการอัพโหลดโค้ดเท่านั้น)
เชื่อมต่อ Adapter เข้ากับ 4 Channel Relay Module ESP32
โดยใช้ DC Jack ตัวเมีย
แล้วจึงเชื่อมต่อกับ Adapter
เมื่อต้องการอัพโหลดโปรแกรมลงบอร์ด ให้ใส่จัมเปอร์ที่ขา IO0 และ GND
ทดสอบการต่อสายเบื้องต้น
เพื่อเป็นการทดสอบว่า ที่เราต่อสายมาถูกต้องหรือไม่ เราจะเขียนโค้ดให้หลอดไฟ ติด-ดับ ทั้ง 4 หลอด โดยมีขั้นตอนดังนี้
1.ติดตั้ง Arduino IDE
ดาวน์โหลด Arduino IDE จากที่นี่
https://www.arduino.cc/en/software
2.กำหนดค่าให้ รองรับบอร์ด ESP32
ไปที่ File > Preferences
คัดลอกและวางบรรทัดต่อไปนี้ลงในฟิลด์ Boards Manager URLs
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
คลิกไอคอนตัวจัดการบอร์ดที่มุมด้านซ้าย ค้นหา ESP32 และกดปุ่มติดตั้งสำหรับ esp32 โดย Espressif Systems
เขียนโค้ดดังนี้
int LED1 = 26;
int LED2 = 25;
int LED3 = 32;
int LED4 = 33;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop() {
digitalWrite(LED1, HIGH);
delay(1000);
digitalWrite(LED1, LOW);
delay(1000);
digitalWrite(LED2, HIGH);
delay(1000);
digitalWrite(LED2, LOW);
delay(1000);
digitalWrite(LED3, HIGH);
delay(1000);
digitalWrite(LED3, LOW);
delay(1000);
digitalWrite(LED4, HIGH);
delay(1000);
digitalWrite(LED4, LOW);
delay(1000);
}
https://lungmaker.com/code/test-led4-esp32.ino
เลือกบอร์ด ESP32 ตามรุ่นที่ใช้ เป็น ESP32 Dev Module
เลือก Port โดยไปที่ Tools -> Port -> COM5
(โดย COM5 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)
คลิกที่ Upload รอจนกระทั่ง อัพโหลดสำเร็จ
ถอด จัมเปอร์ที่ขา IO0 และ GND ออก
รีสตาร์ท ESP32 โดยกดปุ่ม EN
คลิป-ทดสอบการต่อสายเบื้องต้น ESP32 เปิด-ปิดไฟ
ถ้าได้ตามคลิปด้านบน แสดงว่าโปรเจคของเราพร้อมที่จะทำขั้นตอนต่อไปได้แล้ว
3. เรียนรู้การใช้งาน App Blynk เบื้องต้น
4. ใช้งานเว็บแอพพลิเคชั่น 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
ตั้งชื่อ ในตัวอย่างคือ LED4 บอร์ดคือ ESP32 และเชื่อมต่อแบบ WIFI -> Done
ไปที่ Developer Zone
ไปที่ 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
NAEM = LED3 , PIN = V3 , DATA TYPE = Integer -> Create
NAEM = LED4 , PIN = V4 , DATA TYPE = Integer -> Create
Save
ไปที่ Web Dashboard – Edit
ที่ Widget Box ลาก Switch 4 ตัว ไปที่ส่วนแสดงผล
เลือก Switch ที่ส่วนแสดงผล ตัวบนสุด แล้วเลือกรูปเฟือง เพื่อกำหนดค่า
เลือกเป็น LED1(V1) -> Save
ตัวถัดไป เลือกเป็น LED2(V2) ตามลำดับ -> Save
เลือกเป็น LED3(V3) -> Save
เลือกเป็น LED4(V4) – Save
Save มุมขวาบน
ไปที่ Devices -> New Device
เลือก From template
TEMPLATE เลือก Template ที่เราสร้างก่อนหน้านี้ คือ LED4 -> Create
ก๊อปปี้ ส่วน New Device Created (พื้นสีดำ) สำหรับเอาไปแก้ไขโค้ดของ Arduino
#define BLYNK_TEMPLATE_ID "TMPL6Wf09tb1R"
#define BLYNK_TEMPLATE_NAME "LED4"
#define BLYNK_AUTH_TOKEN "7jB2MTm1eYsFh3sqNpzeWNJm1rKwb17Z"
5. Uplpad Code โปรเจค ESP32 เปิด-ปิดไฟ ผ่านอินเตอร์เน็ต ด้วย Blynk
ก่อนอัพโหลดต้องแก้ไขโค้ด ส่วน Blynk Device Info here ที่ก๊อปปี้ จากส่วน New Device Created ของขั้นตอนที่แล้ว
และ แก้ไข ชื่อเครือข่าย wifi และ รหัสผ่าน
นี่คือโค้ด
#define BLYNK_PRINT Serial
/* Fill in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID "TMPxxxxxx"
#define BLYNK_TEMPLATE_NAME "Device"
#define BLYNK_AUTH_TOKEN "YourAuthToken"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Your WiFi credentials.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
int LED1 = 26;
int LED2 = 25;
int LED3 = 32;
int LED4 = 33;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, 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_WRITE(V3) {
int pinValue = param.asInt(); // Get the value from the Blynk app
// Update LED state
if (pinValue == 1) {
digitalWrite(LED3, HIGH); // Turn LED ON
} else {
digitalWrite(LED3, LOW); // Turn LED OFF
}
}
BLYNK_WRITE(V4) {
int pinValue = param.asInt(); // Get the value from the Blynk app
// Update LED state
if (pinValue == 1) {
digitalWrite(LED4, HIGH); // Turn LED ON
} else {
digitalWrite(LED4, LOW); // Turn LED OFF
}
}
https://lungmaker.com/code/ESP32-BLYNK-4D.ino
6. ทดสอบควบคุม เปิด-ปิดไฟ ผ่านหน้าจอคอมพิวเตอร์
คลิป ทดสอบควบคุมผ่านหน้าจอคอมพิวเตอร์
7. สร้างแอป Blynk ที่ สมาร์ทโฟน
8. ทดสอบควบคุม ESP32 เปิด-ปิดไฟ ผ่านอินเตอร์เน็ต ด้วย Blynk
วิดีโอผลลัพธ์การทำงาน ESP32 เปิด-ปิดไฟ ผ่านอินเตอร์เน็ต ด้วย Blynk