ในปัจจุบัน การควบคุมอุปกรณ์ไฟฟ้าผ่านอินเทอร์เน็ตเป็นที่นิยมมากขึ้น ESP32 เป็นไมโครคอนโทรลเลอร์ที่มี Wi-Fi และ Bluetooth ในตัว เหมาะสำหรับการพัฒนา Smart Home ในบทความนี้ เราจะสร้าง Smart Switch สำหรับควบคุมไฟผ่านแอป Blynk บน Mac

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


อุปกรณ์ที่ใช้

  1. DevKitC V4 ESP32 Development Board
  2. ESP32 Expansion Board 38Pins
  3. Micro USB Cable Wire 1m
  4. Relay 2 Channel 5V DC
  5. หลอดไฟ + ชั้วหลอด 2 ชุด
  6. สายไฟทองแดง เดี่ยว สายแข็ง
  7. AC Power Cord 2 Pin Plug
  8. สาย Jumper
  9. Power Supply 9V
  10. 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ไปที่ เมนู SketchInclude LibraryManage 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 ได้สำเร็จ สามารถนำไปปรับใช้กับอุปกรณ์อื่น ๆ เช่น พัดลม หรือเครื่องใช้ไฟฟ้าอื่น ๆ ได้ต่อไป

Leave a Reply

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

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save