Arduino ESP8266
การทดลอง nodeMCU ท่ี 6
การควบคุม ON-OFF อุปกรณ์ไฟฟ้าด้วยแอปพลิเคชั่น Blynk
วัตถุประสงค์
1) เพ่ือให้รู้วิธีการสร้าง แอปพลิเคช่ัน Blynk เพื่อควบคุมเปิด ปิด อุปกรณ์ไฟฟ้า
2) เพื่อให้เข้าใจการทางานของระบบ IoT บนเครือข่ายอินเตอร์เน็ต
3) เพื่อให้รู้วิธีการเขียนคาสั่งควบคุม ESP8266 เช่ือมต่อกับ Blynk
Blynk คอื Application สาเร็จรปู สาหรับงาน IOT มคี วามนา่ สนใจคือการเขียนโปรแกรมท่ีง่าย ไม่
ตอ้ งเขยี น App เองสามารถใช้งานได้อยา่ ง Real time สามารถเชอ่ื มต่อ Device ตา่ งๆเข้ากบั Internet ได้
อย่างง่ายดาย ไม่วา่ จะเปน็ Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้นาคา่ มาแสดงบน
Application ได้อย่างง่ายดาย แลว้ ทสี่ าคัญ Application Blynk ยังฟรี และ รองรับในระบบ IOS และ
Android อกี ดว้ ย
https://www.9arduino.com/article/59/app Page 1
Sayan Sunya
Arduino ESP8266
ในใบงานทีผ่ า่ นมา จะเปน็ การวางระบบให้ ESP8266 ทาหนา้ ที่เป็นเวปเซิฟเวอร์ บริการ Client ในวงแลน
เดียวกัน ซึ่งได้พ้นื ท่ีควบคุมไม่กวา้ งนกั แต่หากตอ้ งการควบคุมจากระยะทางไมจ่ ากดั กต็ ้องมีกระบวนการที่
ซับซ้อนข้นึ นอกจากน้ี ESP8266 มีขอ้ จากัด คือทรัพยากร เช่น CPU RAM ROM มอี ยู่นอ้ ย มักจะเจอ
ปญั หาการคา้ ง (Hang) บอ่ ยๆ จึงเปน็ ขอ้ ด้อยหากนามาใช้ทาเป็นเซฟิ เวอร์
ปจั จุบัน ระบบ Cloud ได้รับความนิยมมากขึ้น ซง่ึ ได้มแี นวคดิ นาข้อมลู ไปใสล่ งใน Server ทมี่ ี
สมรรถนะ และทรพั ยากรที่มากพอเพื่อให้บริการเครื่องลูกข่ายจานวนมากๆได้ โดย Server จะทาหนา้ ทเี่ ป็น
ตัวกลางใหบ้ รกิ ารแก่ แอปพลเิ คช่นั และ NodeCMU จงึ ทาให้ NodeMCU ไมต่ ้องรับภาระมากเกนิ ไป ทงั้
NodeMCU และ App จะทาหนา้ ท่เี พยี งตวั รับ หรือสง่ ขอ้ มลู ไปยงั ระบบ Cloud หรอื เซิฟเวอร์ Blynk ซง่ึ
สามารถเขา้ ถึงได้ง่ายหากมีระบบเครอื ข่ายทีเ่ ข้าถงึ ระบบอินเตอร์เนต็ ได้ โดยระบบมีลกั ษณะดงั ในรปู
Sayan Sunya Page 2
Arduino ESP8266
โดยวิธกี ารของ Blynk จะใหอ้ ุปกรณเ์ ช่น NodeMCU ESP8266 , Arduino, Rasberry Pi เชื่อมต่อไป
ยงั เซฟิ เวอร์ Blynk โดยตรง และให้ Smart phone หรอื App เชือ่ มตอ่ ไปยงั เซฟิ เวอร์ Blynk เชน่ เดยี วกนั ซง่ึ
เซิฟเวอร์ Blynk ทาหนา้ ท่เี ป็นสะพานเช่ือมข้อมูลให้กนั และกัน จงึ ทาใหก้ ารใชง้ านสะดวกข้ึนเพราะไมต่ ้อง
ยงุ่ ยากในการเซต็ ค่าอปุ กรณ์ Network ท่ยี ุ่งยากซับซอ้ น
โดยเครือ่ งมือการพฒั นา App ของ Blynk ก็มคี วามหลากหลาย เช่น การแสดงค่าเปน็ ตัวเลข เปน็
กราฟิก เกจวดั และการแสดงผลเปน็ กราฟ การเขียน App กไ็ ม่ยงุ ยากมานกั สามารถจับลากจดั เลยี งปรับ
ขนาดให้เหมาะสมตรงตามความต้องการ ขึน้ กับความต้องการของผู้ออกแบบ App นอกจากนย้ี งั เป็นเซิฟเวอร์
ทีใ่ หบ้ ริการแบบฟรีอกี ดว้ ย
Sayan Sunya Page 3
Arduino ESP8266
Sayan Sunya Page 4
Arduino ESP8266
โดยเบอื้ งต้นมีการทางานดว้ ยกนั 2 ส่วนคือ
1) การออกแบบพัฒนา App เพ่ือใช้งานกบั Smart phone
2) การเขียนโค้ดลงในบอร์ด esp8266
การทดลองที่ 6.1 การพัฒนา App บน Smart phone ระบบ Android
เปน็ การออกแบบและพัฒนา App บนระบบ Android ดว้ ย Blynk ซึ่งขัน้ ตอนการพัฒนา App มี
ขน้ั ตอนดังน้ี
1) ทาการติดตงั้ App Blynk ลงบนสมาร์ทโฟน โดยเขา้ ไปที่ Play Store
2) พมิ พค์ ้นหา App ทช่ี ่ือวา่ Blynk แลว้ ทาการติดตงั้
3) เรียกใช้งาน Blynk Page 5
Sayan Sunya
Arduino ESP8266
4) สร้างบัญชสี าหรับการใช้งานครั้งแรก
5) กรอกอีเมล์และพาสเวิรด์ สาหรบั การลอ๊ กอนิ ใช้โปรแกรม (อีเมล์ควรใช้อีเมลจ์ รงิ เนอ่ื งจากโปรแกรม
จะสง่ รหัสการใชง้ านของบอร์ดเข้าไปในอเี มล์เมื่อผู้ใช้งานสรา้ งโปรเจคใหม่)
Sayan Sunya Page 6
Arduino ESP8266
6) สรา้ งโปรเจ็คใหม่ ด้วยการแตะที่ New Project
7) กาหนดรายละเอียดของโปรเจค็ Page 7
1 ชอื่ โปรเจ็ค
2 ชนดิ ของบอรด์ NodeMCU
3 ชนดิ ของการเชอ่ื มตอ่
4 สีพ้นื ของ App
Sayan Sunya
Arduino ESP8266
8) โปรแกรมจะสง่ รหัส Token เชอ่ื มต่อไปยงั Email ท่ลี งทะเบียนไว้
Sayan Sunya Page 8
Arduino ESP8266
9) เขา้ ไปดรู ายละเอยี ดของ App
10) รายละเอยี ดของโปรเจคจะแสดงดงั รูป
11) สามารถคดั ลอกรหสั Token ไดโ้ ดยแตะที่ Copy all Page 9
Sayan Sunya
Arduino ESP8266
12) การเข้าไปดรู ายละเอยี ด ของโครงการ LED Control
Sayan Sunya Page 10
Arduino ESP8266
13) เพิม่ Wedget หรืออุปกรณ์ บน App ดว้ ยการกดปุ่มเครือ่ งหมาย +
จะปรากฏ Widget Box ใหเ้ ลอื ก โดยจะมีแต้มพลังงานมาให้ฟรี 2000 หากเลือกอปุ กรณใ์ ดไปใช้งาน
ก็จะทาใหร้ ะดบั พลงั งานลดลงตามรายการอุปกรณท์ ่เี ลือก และหากระดบั พลังงาน หมดลง หากตอ้ งการใช้
อุปกรณ์เพิ่มเติมก็ตองเสยี คา่ ใชจ้ า่ ยสาหรบั การเพมิ่ widget
Sayan Sunya Page 11
Arduino ESP8266
14) ให้เลอื ก Button สาหรบั การกดปุ่ม ON-Off และจะแสดงค่าสถานะของหลอด วา่ อยใู่ นสถานะ
ใด
กาหนดตาแหน่ง ขาใช้งานของ NodeMCU และลักษณะของปมุ่ กด หากเป็น Switch หมายถึงเป็น
สวิทชแ์ บบ กดตดิ กดดับ แตห่ ากเปฯ็ แบบ Push หากตอ้ งกดคา้ งไวต้ ลอด เม่ือต้องการให้ LED ตดิ
Sayan Sunya Page 12
Arduino ESP8266
ต้งั รายละเอียดของป่มุ
(1) ตั้งชอ่ื ปมุ กด
(2) เลือกขาพอร์ตที่ต้องการควบคุม
(3) เลอื กชนดิ การทางานของปุ่ม กดตดิ ปล่อยดับเลือก PUSH กดติดกดดับเลือก SWITCH
(4) กาหนดชือ่ ท่ตี ้องการใหป้ รากฏที่ปุ่มเมื่อทางานหรอื หยุดทางาน
Sayan Sunya Page 13
Arduino ESP8266
การพฒั นาโค้ดสว่ นของ NodeMCU
ใหเ้ พิม่ Library Blynk โดยเขา้ ไปท่ี Sketch -> Include Library -> Manage Library
Sayan Sunya Page 14
Arduino ESP8266
ทาการติดต้ัง Install เวอรช์ นั่ ลา่ สดุ
สรา้ งโปรแกรมสาหรับ NodeMCU ESP8266 ดว้ ยการใชโ้ ค้ดจากตวั อย่าง โดยไปที่ Example->Blynk ->
Board_WiFi -> ESP8266_Standalone
Sayan Sunya Page 15
Arduino ESP8266
จะไดโ้ ค้ดตัวอย่าง ใหป้ รบั สว่ นทค่ี อมเมนต์ เน่ืองจากข้อความจะเยอะเกนิ ไป
ใส่คา่ ตา่ ง ๆ ลงในโคด้ โปรแกรม
(1) รหสั ลบั ที่คดั ลอกมาจากขอ้ 4
(2) ชอ่ื ไวไฟทบี่ อรด์ จะใช้เช่อื มตอ่
(3) รหัสผ่าน WiFi
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "6dfdfd54af14da693ef3892729b376f"; // ให้ใส่ รหัส Token ที่ได้รับมาจาก Blynk
char ssid[] = "AndroidAP9"; // ชื่อเครือข่าย WiFi
Sayan Sunya Page 16
Arduino ESP8266
char pass[] = "******************"; // รหสั เขา้ เครอื ข่าย WiFi
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run(); // รันระบบ Blynk
}
3) ทาการ บันทึก Save เป็นช่ือไฟล์ Blynk_control_LED
4) ทาการคอมไฟล์ และหากมีข้อผิดพลาดจากการพิมพ์ให้แก้ไขให้ถูกต้อง
5) ทาการ upload โค้ดลงสู่บอร์ด ESP8266
Sayan Sunya Page 17
Arduino ESP8266
การต่อวงจรของฮาร์ดแวร์ ESP8266
6) เปิด Serial Monitor เพื่อรับข้อความจาก ESP8266 ผ่านทางพอร์ตอนุกรม หากการเชื่อมต่อ
ระหว่าง ESP8266 กับ Blynk ผ่านเครือข่ายอินเตอร์เน็ตเรียบร้อย ที่ Serial Monitor จะปรากฏข้อความ
ดังรูป
Sayan Sunya Page 18
Arduino ESP8266
การใช้ App เพ่ือสั่ง เปิด ปิด หลอด LED ผ่าน Blynk ให้ทาการ RUN App ด้วยการแตะที่ ปุ่ม
สามเหลี่ยมดังรูป จะปรากฏหน้าตาของ App
Sayan Sunya Page 19
Arduino ESP8266
ให้ทดลองแตะปุ่ม Button เพ่ือเปดิ ปดิ LED ที่ บอรด์ ESP8266
ให้สงั เกตและบนั ทกึ ผลการทดลอง
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
Sayan Sunya Page 20
Arduino ESP8266
งานท่ีมอบหมาย :
1. เพิ่มวงจรสวิทช์ควบคุมการการติดดับของ LED เป็นจานวน 4 ดวง แต่ละดวง เช่น หาก LED1
ดับ เมื่อกด SW1 LED1 จะติด หากติดอยู่แล้ว กด SW1 จะทาให้ LED1 ดับ และสามารถควบคุม LED1
ผ่าน App ของ Blynk ให้ติด หรือ ดับได้ ส่วน LED ดวงท่ี 2,3 และ 4 ก็มีลักษณะการทางานเหมือน LED1
โดยสามารถควบคุม LED ทั้ง 4 หลอด ผ่าน Blynk ได้เช่นกัน
Sayan Sunya Page 21