Line notify esp8266 แจ งเต อนอ ณหภ ม

จาก แนวคิดนักเรียน ช่วงสั่งสินค้าเยอะๆ ทำกล่องส่งของให้แจ้งเตือนทางไลน์ ก็เลยออกมาเป็น Line Object Alert!!

Line notify esp8266 แจ งเต อนอ ณหภ ม

อุปกรณ์

  1. NodeMUC
  2. IR Object sensor
  3. LED
  4. บอร์ดทดลอง

ขั้นตอนทำงาน

  1. สมัครและขอ Token ของ LINE Notify
  2. โปรแกรม – ทดสอบโปรแกรม
  3. จัดอุปกรณ์ – ทดสอบจัดอุปกรณ์
  4. นำเสนอ

เริ่มกันเลย…….

1. ขั้นตอนสมัครและขอ Token ของ LINE Notify มี 4 ขั้นตอนดังนี้

  1. เพิ่ม LINE Notify เป็นเพื่อน โดยการสแกน QR Code นี้ หรือจาก https://notify-bot.line.me/my/
    Line notify esp8266 แจ งเต อนอ ณหภ ม
  2. ล็อกอิน LINE เพื่อขอ Token ที่หน้านี้ https://notify-bot.line.me/my/ แล้วกดปุ่ม ออก Token Generate token
  3. ตั้งค่าการใช้งาน LINE Notify กำหนดชื่อผู้ส่ง เช่น MyPatsadoo และเลือกกลุ่ม/ชื่อคนที่ต้องการส่งข้อความไปหา ภาพประกอบจาก https://www.allnewstep.com/
  4. ขั้นตอนสุดท้าย รับ Token ให้กรอกชื่อที่ใช่ส่งข้อมูลเข้า Line แล้วเลือกกลุ่มที่จะส่งข้อมูล กดปุ่ม “ออก Token” จะได้ค่า Token ให้ก็อปค่านี้ไว้ เพื่อนำไปใช้ในโปรแกรมของเรา เพียงเท่านี้ก็พร้อมส่งข้อความจาก NodeMCU ไปหา LINE แล้ว แต่ถ้าลืม สามารถ กลับไปทำตามข้อ 2 ขอรหัส Token ได้ใหม่ภาพประกอบจาก https://www.allnewstep.com/

2. ดาวน์โหลดและติดตั้งไลบารี

1. ดาวน์โหลดและติดตั้งไลบารี TridentTD_LineNotify ที่นี่

  • http://www.mediafire.com/file/3szq0oevu0dt5hg/TridentTD_LineNotify-master.zip/file

วิธีลง Library ให้ดูตัวอย่างในบทความนี้

  • สอนใช้งาน Arduino ติดตั้ง Library ในโปรแกรม Arduino IDE เชื่อมต่อกับ Sensor ต่างๆ

3. เขียนโค๊ด ทดสอบกันเลย

ก็อปปี้โคดตัวอย่างลงบอร์ด NodeMCU ESP8266 โดยให้ตั้งค่า

  • แก้ไขชื่อ SSID
  • แก้ไข password ของ wifi ที่ใช้งาน
  • กำหนดค่า TOKEN ที่ได้จาก LINE ดังโคดนี้

\==โค๊ด==

Line notify esp8266 แจ งเต อนอ ณหภ ม

———-CODE——————————-

include <TridentTD_LineNotify.h>

include <ESP8266WiFi.h>

define WIFI_SSID “AP2”

define WIFI_PASSWORD “0000000000”

define LINE_TOKEN_PIR “GNMMN63yYZCrGSrbxpQIApSB0zcywpxPEQeyakXkQbh”

define OBJECT D5

void setup() { //เปิด Serial Monitor Serial.begin(115200); Serial.println();

pinMode(OBJECT, INPUT); pinMode(D0, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); //ต่อ WIFI WiFi.mode(WIFI_STA); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print(“connecting”);

while (WiFi.status() != WL_CONNECTED) { Serial.print(“.”); delay(500); } //ต่อได้แล้ว แสดงข้อความ + IP ทาง Serial Monitor Serial.println(); Serial.print(“connected: “); Serial.println(WiFi.localIP());

LINE.setToken(LINE_TOKEN_PIR); //ตัวอย่างส่งข้อความ //LINE.notify(“ทดสอบส่งข้อความ”); //ทดสอบส่งตอนเปิดเครื่อง //LINE.notifySticker(“Hello”, 1, 2); // สติ๊กเกอร์หน้ายิ้ม

delay(5000); }

void loop() { //ต่อ WIFI ได้ เปิดไฟค้างไว้ if (WiFi.status() == WL_CONNECTED) { digitalWrite(LED_BUILTIN, LOW); } else { digitalWrite(LED_BUILTIN, HIGH); } //ตรวจจับวัตถุ เมื่อมีวัตถุ ให้เปิด LED ขา D0 และส่ง Line if(digitalRead(OBJECT)==0){ digitalWrite(D0, HIGH); LINE.notify(“มีของมาส่งจ้าาาา”); delay(1000); } else{ digitalWrite(D0, LOW); } }

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



ในบทความนี้จะเป็นการนำ ESP8266 / ESP8285 มาทำการเชื่อมต่อ WiFi และส่งข้อมูลไปที่ Line ของผู้ใช้ ผ่านทาง API ที่ทาง LINE ได้จัดทำไว้ครับ สามารถนำไปเป็นพื้นฐานการเรียนรู้ในการส่งข้อมูลผ่าน API เข้า LINE และสามารถผูพื้นฐานไปสู่การทำ LINE Bot เพื่อเป็นผู้ช่วยควบคุมสิ่งต่าง ๆ ภายในบ้านได้ผ่านแอพพลิเคชั่น Line

รู้จักกับ LINE Notify

LINE Notify เป็นบริการของทาง LINE เป็นบริการและช่องทางที่ถูกต้อง ท่านสามารถส่งความ การแจ้งเตือนต่าง ๆ ไปยังแอคเค้าของท่านเองได้ ผ่านการใช้ API ซึ่งเรียกผ่าน HTTP POST แบบง่าย ๆ

ข้อจำกัดของ LINE Notify คือ สามารถส่งแจ้งเตือนได้เฉพาะผู้ที่ขอใช้ หรือกลุ่มที่ผู้ขอใช้เป็นสมาชิกเท่านั้น ไม่สามารถส่งข้อความเข้าห้องสนทนาของเพื่อน ๆ ได้ หากต้องการให้สามารถส่งข้อความหาใครก็ได้ ท่านต้องใช้ LINE Bot API แทน

เพิ่ม LINE Notify เป็นเพื่อน

ก่อนที่จะใช้งาน API และส่งการแจ้งเตือน ท่านต้องเพิ่ม LINE Notify เป็นเพื่อนก่อน โดยสแกน QR Code ด้านล่างนี้

Line notify esp8266 แจ งเต อนอ ณหภ ม

รูปภาพจาก notify-bot.line.me

การขอ Access Token

ในการใช้งาน API ในทุก ๆ บริการ จะมีสิ่งที่เรียกว่า Access Token ไว้สำหรับเป็นรหัสที่ใช้ตอนจะเข้าใช้งาน API โดยรหัสนี้จะเป็นข้อความแทนอีเมล์ และพาสเวิคของเรา ดังนั้นหาก Access Token ถูกเปิดเผย เรายังสามารถใช้งานแอ๊กเค้าได้ปกติ (แต่หากรู้ตัวว่า Access Token ถูกเปิดเผย ควรยกเลิก แล้วขอ Access Token ใหม่ทันที)

เข้าไปที่หน้าเว็บ https://notify-bot.line.me/my/ จากนั้นระบบจะให้เราล็อกอินด้วยแอ๊คเค้า LINE โดยกรอกอีเมล์ และรหัสผ่านที่ได้ตั้งไว้ลงไป

Line notify esp8266 แจ งเต อนอ ณหภ ม

เมื่อล็อกอินสำเร็จแล้ว ให้เลื่อนลงมาด้านล่าง จะพบ ออก Access Token (สำหรับผู้พัฒนา) ให้กดปุ่ม ออก Token

Line notify esp8266 แจ งเต อนอ ณหภ ม

พอมาถึงส่วนนี้ให้เราทำความเข้าใจก่อนว่า เมื่อเราส่งข้อความไปแล้ว ข้อความที่ขึ้นจะปรากฏในรูปแบบ

[ชื่อ Token]: [ข้อความ]

ดังนั้นในช่องที่ 1 สามารถกรอกเป็นอะไรก็ได้ และสิ่งที่กรอกนั้นจะติดไปพร้อมกับข้อความเสมอ เช่น หากกรอกว่า ESP8266 เมื่อใช้ API ส่งข้อความว่า "สวัสดี" ข้อความจะขึ้นว่า "ESP8266:สวัสดี"

ในช่องที่ 2 จะให้เลือกว่าเราจะส่งข้อความเข้าไปในกลุ่มไหน หรือส่งให้ตัวเองเท่านั้น

เมื่อกรอกครบแล้ว ให้กดปุ่ม ออก Token

Line notify esp8266 แจ งเต อนอ ณหภ ม

เมื่อกดปุ่มแล้ว จะปรากฏรหัส Token ให้ท่านเก็บรหัสนี้ไว้ให้ดีเพราะจะออกให้เพียงครั้งเดียว แต่หากลืม ท่านสามารถเริ่มต้นทำขั้นตอนใหม่เพื่อขอ Token ใหม่ได้

Line notify esp8266 แจ งเต อนอ ณหภ ม

ส่วนใน LINE ก็จะมีการแจ้งเตือนว่าออก Access Token ใหม่แล้ว

Line notify esp8266 แจ งเต อนอ ณหภ ม

แค่นี้เป็นอันจบขั้นตอนการขอ Access Token แล้ว ต่อเราจะมาเริ่มต่อวงจรกันครับ

ต่อวงจรสวิตซ์ให้ NodeMCU v1.0

ในบทความนี้จะเลือกใช้ NodeMCU เนื่องจากเป็นบอร์ดที่ค่อนข้างได้รับความนิยมเป็นส่วนใหญ่

ในการทดลอง จะใช้สวิตซ์ในการแทนเซ็นเซอร์อื่น ๆ เมื่อมีการกดสวิตซ์แล้ว จะมีการส่งแจ้งเตือนไปทาง LINE ท่านสามารถเปลี่ยนสวิตซ์เป็น PIR Sensor เพื่อตรวจจับผู้บุกรุกได้ หรือเปลี่ยนเป็นสวิตซ์แม่เหล็กติดกับประตูเพื่อแจ้งเตือนมีการเปิดประตูได้

Line notify esp8266 แจ งเต อนอ ณหภ ม

Coding

ในโค้ดด้านล่างนี้ ท่านสามารถคัดลอกไปวางในโปรแกรม Arduino IDE ได้เลย แล้วแก้ไข , ให้เป็นค่าที่ถูกต้อง ส่วน ให้นำ Access Token จากในขั้นตอนที่แล้วมาวาง

https://gist.github.com/maxpromer/df5d5b834acb24ed3a12fe8bb7b9c73d.js

จากนั้นอัพโหลดลง NodeMCU ไปได้เลย

Line notify esp8266 แจ งเต อนอ ณหภ ม

การทดสอบ

หลังจาก ESP8266 เชื่อมต่อ WiFi ได้แล้ว ทดลองกดสวิตซ์ จะมีข้อความว่า "โดนกด" มาปรากฏในห้องแชทของ LINE Notify เป็นอันจบการทดสอบ

Line notify esp8266 แจ งเต อนอ ณหภ ม

การแก้ไขข้อความที่ส่ง

ท่านสามารถแก้ไขข้อความได้โดยแก้ไขคำในตัวแปร message ในบรรทัดที่ 12 ได้เลย

แต่เนื่องจากไมโครคอนโทรลเลอร์ไม่รองรับ UTF-8 ทำให้ไม่รองรับการพิมพ์ภาษาไทยลงไปตรง ๆ หากต้องการส่งข้อความที่ไม่ใช่ภาษาอังกฤษ เป็นข้อความภาษาไทย ข้อความยาวหลายบรรทัด มีการเว้นวรรค มีอักษรพิเศษ จะต้องแปลงข้อความให้อยู่ในรูปที่เรียกว่า URL Encode ก่อน โดยใช้บริการเว็บ http://meyerweb.com/eric/tools/dencoder/ เมื่อเข้าไปในเว็บ ให้พิมพ์ข้อความที่ต้องการ จากนั้นกดปุ่ม Encode ก็จะปรากฏข้อความที่ถูกแปลงแล้วออกมา ท่านสามารถนำข้อความที่ถูกแปลงแล้วไปใส่ในตัวแปร message ได้เลย

Line notify esp8266 แจ งเต อนอ ณหภ ม

Line notify esp8266 แจ งเต อนอ ณหภ ม

----

ขอบคุณที่อ่านมาจนจบนะครับ ในโอกาศหน้าผมจะนำบทความอะไรมาลงอีก สามารถติดตามได้ที่เว็บของ artronshop หรือที่เพจ artronshop ได้ครับ และสุดท้ายหวังว่าเราจะก้าวเข้าสู่ Thailand 4.0 ไปพร้อม ๆ กันนะครับ

สวัสดีครับ.

ขอบคุณบทความการใช้งาน LINE Notify ในภาษา Python จาก python3.wannaphong.com จนนำมาสู่การนำไปใช้บน ESP8266 / ESP8285 และเกิดบทความนี้ขึ้นมาครับ