การทดลอง nodemcu 6 - geocities.ws · อย่างง่ายดาย...
TRANSCRIPT
Arduino ESP8266
Sayan Sunya Page 1
การทดลอง 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
Arduino ESP8266
Sayan Sunya Page 2
ในใบงานที่ผ่านมา จะเป็นการวางระบบให้ ESP8266 ท าหน้าที่เป็นเวปเซิฟเวอร์ บริการ Client ในวงแลน
เดียวกัน ซึ่งได้พ้ืนที่ควบคุมไม่กว้างนัก แต่หากต้องการควบคุมจากระยะทางไม่จ ากัดก็ต้องมีกระบวนการที่
ซับซ้อนขึ้น นอกจากนี้ ESP8266 มีข้อจ ากัด คือทรัพยากร เช่น CPU RAM ROM มีอยู่น้อย มักจะเจอ
ปัญหาการค้าง (Hang) บ่อยๆ จึงเป็นข้อด้อยหากน ามาใช้ท าเป็นเซิฟเวอร์
ปัจจุบัน ระบบ Cloud ได้รับความนิยมมากข้ึน ซ่ึงได้มีแนวคิดน าข้อมูลไปใส่ลงใน Server ที่มี
สมรรถนะ และทรัพยากรที่มากพอเพ่ือให้บริการเครื่องลูกข่ายจ านวนมากๆได้ โดย Server จะท าหน้าที่เป็น
ตัวกลางให้บริการแก่ แอปพลิเคชั่น และ NodeCMU จึงท าให้ NodeMCU ไม่ต้องรับภาระมากเกินไป ทั้ง
NodeMCU และ App จะท าหน้าที่เพียงตัวรับ หรือส่งข้อมูลไปยังระบบ Cloud หรือเซิฟเวอร์ Blynk ซ่ึง
สามารถเข้าถึงได้ง่ายหากมีระบบเครือข่ายที่เข้าถึงระบบอินเตอร์เน็ตได้ โดยระบบมีลักษณะดังในรูป
Arduino ESP8266
Sayan Sunya Page 3
โดยวิธีการของ Blynk จะให้อุปกรณ์เช่น NodeMCU ESP8266 , Arduino, Rasberry Pi เชื่อมต่อไป
ยังเซิฟเวอร์ Blynk โดยตรง และให้ Smart phone หรือ App เชื่อมต่อไปยังเซิฟเวอร์ Blynk เช่นเดียวกัน ซึ่ง
เซิฟเวอร์ Blynk ท าหน้าที่เป็นสะพานเชื่อมข้อมูลให้กันและกัน จึงท าให้การใช้งานสะดวกข้ึนเพราะไม่ต้อง
ยุ่งยากในการเซ็ตค่าอุปกรณ์ Network ที่ยุ่งยากซับซ้อน
โดยเครื่องมือการพัฒนา App ของ Blynk ก็มีความหลากหลาย เช่น การแสดงค่าเป็นตัวเลข เป็น
กราฟิก เกจวัด และการแสดงผลเป็นกราฟ การเขียน App ก็ไม่ยุงยากมานัก สามารถจับลากจัดเลียงปรับ
ขนาดให้เหมาะสมตรงตามความต้องการ ขึ้นกับความต้องการของผู้ออกแบบ App นอกจากนี้ยังเป็นเซิฟเวอร์
ที่ให้บริการแบบฟรีอีกด้วย
Arduino ESP8266
Sayan Sunya Page 4
Arduino ESP8266
Sayan Sunya Page 5
โดยเบื้องต้นมีการท างานด้วยกัน 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
Arduino ESP8266
Sayan Sunya Page 6
4) สร้างบัญชีส าหรับการใช้งานครั้งแรก
5) กรอกอีเมล์และพาสเวิร์ดส าหรับการล๊อกอินใช้โปรแกรม (อีเมล์ควรใช้อีเมล์จริงเนื่องจากโปรแกรม
จะส่งรหัสการใช้งานของบอร์ดเข้าไปในอีเมล์เมื่อผู้ใช้งานสร้างโปรเจคใหม่)
Arduino ESP8266
Sayan Sunya Page 7
6) สร้างโปรเจ็คใหม่ ด้วยการแตะที่ New Project
7) ก าหนดรายละเอียดของโปรเจ็ค
1 ชื่อโปรเจ็ค
2 ชนิดของบอร์ด NodeMCU
3 ชนิดของการเชื่อมต่อ
4 สีพื้นของ App
Arduino ESP8266
Sayan Sunya Page 8
8) โปรแกรมจะส่งรหัส Token เชื่อมต่อไปยังEmail ที่ลงทะเบียนไว้
Arduino ESP8266
Sayan Sunya Page 9
9) เข้าไปดูรายละเอียดของ App
10) รายละเอียดของโปรเจคจะแสดงดังรูป
11) สามารถคัดลอกรหัส Token ได้โดยแตะที่ Copy all
Arduino ESP8266
Sayan Sunya Page 10
12) การเข้าไปดูรายละเอียด ของโครงการ LED Control
Arduino ESP8266
Sayan Sunya Page 11
13) เพ่ิม Wedget หรืออุปกรณ์ บน App ด้วยการกดปุ่มเครื่องหมาย +
จะปรากฏ Widget Box ให้เลือก โดยจะมีแต้มพลังงานมาให้ฟรี 2000 หากเลือกอุปกรณ์ใดไปใช้งาน
ก็จะท าให้ระดับพลังงานลดลงตามรายการอุปกรณ์ท่ีเลือก และหากระดับพลังงาน หมดลง หากต้องการใช้
อุปกรณ์เพ่ิมเติมก็ตองเสียค่าใช้จ่ายส าหรับการเพ่ิม widget
Arduino ESP8266
Sayan Sunya Page 12
14) ให้เลือก Button ส าหรับการกดปุ่ม ON-Off และจะแสดงค่าสถานะของหลอด ว่าอยู่ในสถานะ
ใด
ก าหนดต าแหน่ง ขาใช้งานของ NodeMCU และลักษณะของปุ่มกด หากเป็น Switch หมายถึงเป็น
สวิทช์แบบ กดติด กดดับ แต่หากเป็ฯแบบ Push หากต้องกดค้างไว้ตลอด เมื่อต้องการให้ LED ติด
Arduino ESP8266
Sayan Sunya Page 13
ตั้งรายละเอียดของปุ่ม
(1) ตั้งชื่อปุมกด
(2) เลือกขาพอร์ตที่ต้องการควบคุม
(3) เลือกชนิดการท างานของปุ่ม กดติดปล่อยดับเลือก PUSH กดติดกดดับเลือก SWITCH
(4) ก าหนดชื่อที่ต้องการให้ปรากฏที่ปุ่มเม่ือท างานหรือหยุดท างาน
Arduino ESP8266
Sayan Sunya Page 14
การพัฒนาโค้ดส่วนของ NodeMCU
ให้เพ่ิม Library Blynk โดยเข้าไปที่ Sketch -> Include Library -> Manage Library
Arduino ESP8266
Sayan Sunya Page 15
ท าการติดตั้ง Install เวอร์ชั่น ล่าสุด
สร้างโปรแกรมส าหรับ NodeMCU ESP8266 ด้วยการใช้โค้ดจากตัวอย่าง โดยไปท่ี Example->Blynk ->
Board_WiFi -> ESP8266_Standalone
Arduino ESP8266
Sayan Sunya Page 16
จะได้โค้ดตัวอย่าง ให้ปรับส่วนที่คอมเมนต์ เนื่องจากข้อความจะเยอะเกินไป
ใส่ค่าต่าง ๆ ลงในโค้ดโปรแกรม
(1) รหัสลับที่คัดลอกมาจากข้อ 4
(2) ชื่อไวไฟที่บอร์ดจะใช้เชื่อมต่อ
(3) รหัสผ่าน WiFi
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "6dfdfd54af14da693ef3892729b376f"; // ให้ใส่ รหัส Token ที่ได้รับมาจาก Blynk
char ssid[] = "AndroidAP9"; // ชื่อเครือข่าย WiFi
Arduino ESP8266
Sayan Sunya Page 17
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
Arduino ESP8266
Sayan Sunya Page 18
การต่อวงจรของฮาร์ดแวร์ ESP8266
6) เปิด Serial Monitor เพื่อรับข้อความจาก ESP8266 ผ่านทางพอร์ตอนุกรม หากการเชื่อมต่อ
ระหว่าง ESP8266 กับ Blynk ผ่านเครือข่ายอินเตอร์เน็ตเรียบร้อย ที่ Serial Monitor จะปรากฏข้อความ
ดังรูป
Arduino ESP8266
Sayan Sunya Page 19
การใช้ App เพ่ือสั่ง เปิด ปิด หลอด LED ผ่าน Blynk ให้ท าการ RUN App ด้วยการแตะที่ ปุ่ม
สามเหลี่ยมดังรูป จะปรากฏหน้าตาของ App
Arduino ESP8266
Sayan Sunya Page 20
ให้ทดลองแตะปุ่ม Button เพ่ือเปิด ปิด LED ที่ บอร์ด ESP8266
ให้สังเกตและบันทึกผลการทดลอง
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………
Arduino ESP8266
Sayan Sunya Page 21
งานที่มอบหมาย :
1. เพิ่มวงจรสวิทช์ควบคุมการการติดดับของ LED เป็นจ านวน 4 ดวง แต่ละดวง เช่น หาก LED1
ดับ เมื่อกด SW1 LED1 จะติด หากติดอยู่แล้ว กด SW1 จะท าให้ LED1 ดับ และสามารถควบคุม LED1
ผ่าน App ของ Blynk ให้ติด หรือ ดับได้ ส่วน LED ดวงที่ 2,3 และ 4 ก็มีลักษณะการท างานเหมือน LED1
โดยสามารถควบคุม LED ทั้ง 4 หลอด ผ่าน Blynk ได้เช่นกัน