การทดลอง nodemcu 6 - geocities.ws · อย่างง่ายดาย...

21
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

Upload: others

Post on 23-Jul-2020

35 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

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

Page 2: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 2

ในใบงานที่ผ่านมา จะเป็นการวางระบบให้ ESP8266 ท าหน้าที่เป็นเวปเซิฟเวอร์ บริการ Client ในวงแลน

เดียวกัน ซึ่งได้พ้ืนที่ควบคุมไม่กว้างนัก แต่หากต้องการควบคุมจากระยะทางไม่จ ากัดก็ต้องมีกระบวนการที่

ซับซ้อนขึ้น นอกจากนี้ ESP8266 มีข้อจ ากัด คือทรัพยากร เช่น CPU RAM ROM มีอยู่น้อย มักจะเจอ

ปัญหาการค้าง (Hang) บ่อยๆ จึงเป็นข้อด้อยหากน ามาใช้ท าเป็นเซิฟเวอร์

ปัจจุบัน ระบบ Cloud ได้รับความนิยมมากข้ึน ซ่ึงได้มีแนวคิดน าข้อมูลไปใส่ลงใน Server ที่มี

สมรรถนะ และทรัพยากรที่มากพอเพ่ือให้บริการเครื่องลูกข่ายจ านวนมากๆได้ โดย Server จะท าหน้าที่เป็น

ตัวกลางให้บริการแก่ แอปพลิเคชั่น และ NodeCMU จึงท าให้ NodeMCU ไม่ต้องรับภาระมากเกินไป ทั้ง

NodeMCU และ App จะท าหน้าที่เพียงตัวรับ หรือส่งข้อมูลไปยังระบบ Cloud หรือเซิฟเวอร์ Blynk ซ่ึง

สามารถเข้าถึงได้ง่ายหากมีระบบเครือข่ายที่เข้าถึงระบบอินเตอร์เน็ตได้ โดยระบบมีลักษณะดังในรูป

Page 3: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 3

โดยวิธีการของ Blynk จะให้อุปกรณ์เช่น NodeMCU ESP8266 , Arduino, Rasberry Pi เชื่อมต่อไป

ยังเซิฟเวอร์ Blynk โดยตรง และให้ Smart phone หรือ App เชื่อมต่อไปยังเซิฟเวอร์ Blynk เช่นเดียวกัน ซึ่ง

เซิฟเวอร์ Blynk ท าหน้าที่เป็นสะพานเชื่อมข้อมูลให้กันและกัน จึงท าให้การใช้งานสะดวกข้ึนเพราะไม่ต้อง

ยุ่งยากในการเซ็ตค่าอุปกรณ์ Network ที่ยุ่งยากซับซ้อน

โดยเครื่องมือการพัฒนา App ของ Blynk ก็มีความหลากหลาย เช่น การแสดงค่าเป็นตัวเลข เป็น

กราฟิก เกจวัด และการแสดงผลเป็นกราฟ การเขียน App ก็ไม่ยุงยากมานัก สามารถจับลากจัดเลียงปรับ

ขนาดให้เหมาะสมตรงตามความต้องการ ขึ้นกับความต้องการของผู้ออกแบบ App นอกจากนี้ยังเป็นเซิฟเวอร์

ที่ให้บริการแบบฟรีอีกด้วย

Page 4: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 4

Page 5: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

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

Page 6: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 6

4) สร้างบัญชีส าหรับการใช้งานครั้งแรก

5) กรอกอีเมล์และพาสเวิร์ดส าหรับการล๊อกอินใช้โปรแกรม (อีเมล์ควรใช้อีเมล์จริงเนื่องจากโปรแกรม

จะส่งรหัสการใช้งานของบอร์ดเข้าไปในอีเมล์เมื่อผู้ใช้งานสร้างโปรเจคใหม่)

Page 7: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 7

6) สร้างโปรเจ็คใหม่ ด้วยการแตะที่ New Project

7) ก าหนดรายละเอียดของโปรเจ็ค

1 ชื่อโปรเจ็ค

2 ชนิดของบอร์ด NodeMCU

3 ชนิดของการเชื่อมต่อ

4 สีพื้นของ App

Page 8: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 8

8) โปรแกรมจะส่งรหัส Token เชื่อมต่อไปยังEmail ที่ลงทะเบียนไว้

Page 9: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 9

9) เข้าไปดูรายละเอียดของ App

10) รายละเอียดของโปรเจคจะแสดงดังรูป

11) สามารถคัดลอกรหัส Token ได้โดยแตะที่ Copy all

Page 10: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 10

12) การเข้าไปดูรายละเอียด ของโครงการ LED Control

Page 11: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 11

13) เพ่ิม Wedget หรืออุปกรณ์ บน App ด้วยการกดปุ่มเครื่องหมาย +

จะปรากฏ Widget Box ให้เลือก โดยจะมีแต้มพลังงานมาให้ฟรี 2000 หากเลือกอุปกรณ์ใดไปใช้งาน

ก็จะท าให้ระดับพลังงานลดลงตามรายการอุปกรณ์ท่ีเลือก และหากระดับพลังงาน หมดลง หากต้องการใช้

อุปกรณ์เพ่ิมเติมก็ตองเสียค่าใช้จ่ายส าหรับการเพ่ิม widget

Page 12: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 12

14) ให้เลือก Button ส าหรับการกดปุ่ม ON-Off และจะแสดงค่าสถานะของหลอด ว่าอยู่ในสถานะ

ใด

ก าหนดต าแหน่ง ขาใช้งานของ NodeMCU และลักษณะของปุ่มกด หากเป็น Switch หมายถึงเป็น

สวิทช์แบบ กดติด กดดับ แต่หากเป็ฯแบบ Push หากต้องกดค้างไว้ตลอด เมื่อต้องการให้ LED ติด

Page 13: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 13

ตั้งรายละเอียดของปุ่ม

(1) ตั้งชื่อปุมกด

(2) เลือกขาพอร์ตที่ต้องการควบคุม

(3) เลือกชนิดการท างานของปุ่ม กดติดปล่อยดับเลือก PUSH กดติดกดดับเลือก SWITCH

(4) ก าหนดชื่อที่ต้องการให้ปรากฏที่ปุ่มเม่ือท างานหรือหยุดท างาน

Page 14: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 14

การพัฒนาโค้ดส่วนของ NodeMCU

ให้เพ่ิม Library Blynk โดยเข้าไปที่ Sketch -> Include Library -> Manage Library

Page 15: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 15

ท าการติดตั้ง Install เวอร์ชั่น ล่าสุด

สร้างโปรแกรมส าหรับ NodeMCU ESP8266 ด้วยการใช้โค้ดจากตัวอย่าง โดยไปท่ี Example->Blynk ->

Board_WiFi -> ESP8266_Standalone

Page 16: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

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

Page 17: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

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

Page 18: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 18

การต่อวงจรของฮาร์ดแวร์ ESP8266

6) เปิด Serial Monitor เพื่อรับข้อความจาก ESP8266 ผ่านทางพอร์ตอนุกรม หากการเชื่อมต่อ

ระหว่าง ESP8266 กับ Blynk ผ่านเครือข่ายอินเตอร์เน็ตเรียบร้อย ที่ Serial Monitor จะปรากฏข้อความ

ดังรูป

Page 19: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 19

การใช้ App เพ่ือสั่ง เปิด ปิด หลอด LED ผ่าน Blynk ให้ท าการ RUN App ด้วยการแตะที่ ปุ่ม

สามเหลี่ยมดังรูป จะปรากฏหน้าตาของ App

Page 20: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

Arduino ESP8266

Sayan Sunya Page 20

ให้ทดลองแตะปุ่ม Button เพ่ือเปิด ปิด LED ที่ บอร์ด ESP8266

ให้สังเกตและบันทึกผลการทดลอง

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

…………………………………………………………………………………………………………………………………………………………

Page 21: การทดลอง nodeMCU 6 - Geocities.ws · อย่างง่ายดาย ไม่ว่าจะเป็น Arduino, Esp8266, Esp32, Nodemcu,Rasberry pi ให้น

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 ได้เช่นกัน