การสร้างโปรเจคการเปิด-ปิดไฟด้วย 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 เมตร

6. AC Power Cord 2 Pin Plug

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

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



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

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



คลิกที่ 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

Leave a Reply

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

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

Privacy Preferences

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

Allow All
Manage Consent Preferences
  • Always Active

Save