ในปัจจุบัน การควบคุมอุปกรณ์ไฟฟ้าผ่านอินเทอร์เน็ตเป็นที่นิยมมากขึ้น 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

This image has an empty alt attribute; its file name is e1-1024x573.png





กำหนดค่าให้ รองรับบอร์ด ESP32


ไปที่ File > Preferences

This image has an empty alt attribute; its file name is e2-1024x633.png


คัดลอกและวางบรรทัดต่อไปนี้ลงในฟิลด์ Boards Manager URLs

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

This image has an empty alt attribute; its file name is e3-1024x629.png



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

This image has an empty alt attribute; its file name is e4-1024x633.png


ขั้นตอนที่ 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ไปที่ เมนู SketchInclude LibraryManage 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


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

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

Leave a Reply

Your email address will not be published. Required fields are marked *