ส่วนประกอบส่วนหนึ่งของ IoT ก็จะเป็นเรื่องของความปลอยภัยส่วนบุคคล แม้เราจะมีกล้องวงจรปิดซึ่งเป็นอุปกรณ์ IoT อยู่แล้ว การกล้องวงจรปิดทำหน้าที่ได้แค่บันทึกภาพเท่านั้น ไม่สามารถส่งการแจ้งเตือนใด ๆ ให้เราสามารถรับรู้สถานะการได้ หรือหากใช้กล้องวงจรปิดที่มีอยู่ในท้องตลาด และสามารถแจ้งเตือนได้ ก็จำเป็นจะต้องลองแอพพลิเคชั่นในโทรศัพท์มือถือเพิ่มเติม
สนับสนุนบทความดี ๆ แบบนี้ได้ โดยเลือกสั่งซื้อสินค้ากับเรา |
|
NodeMCU 1.0 WIFI IoT development board based ESP8266 ราคา 230.00 บาท |
NodeMCU V3 Lua WIFI module integration of ESP8266 + extra memory 32Mbit Flash, USB-serial CH340G ราคา 155.00 บาท |
NodeMCU V3 Lua WIFI module integration of ESP8266 ราคา 125.00 บาท |
WeMos D1 mini V3.1.0 Lua WIFI IoT ESP8266 Development Board ราคา 225.00 บาท |
WeMos D1 mini (Compatible) Lua WIFI IoT ESP8266 Development Board ราคา 203.00 บาท |
ดูสินค้าเพิ่มเติมในหมวด บอร์ด ESP8266
ดูสินค้าเพิ่มเติมในหมวด WeMos D1 mini
|
ในบทความนี้จะเป็นการนำ 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 ด้านล่างนี้
รูปภาพจาก notify-bot.line.me
การขอ Access Token
ในการใช้งาน API ในทุก ๆ บริการ จะมีสิ่งที่เรียกว่า Access Token ไว้สำหรับเป็นรหัสที่ใช้ตอนจะเข้าใช้งาน API โดยรหัสนี้จะเป็นข้อความแทนอีเมล์ และพาสเวิคของเรา ดังนั้นหาก Access Token ถูกเปิดเผย เรายังสามารถใช้งานแอ๊กเค้าได้ปกติ (แต่หากรู้ตัวว่า Access Token ถูกเปิดเผย ควรยกเลิก แล้วขอ Access Token ใหม่ทันที)
เข้าไปที่หน้าเว็บ https://notify-bot.line.me/my/ จากนั้นระบบจะให้เราล็อกอินด้วยแอ๊คเค้า LINE โดยกรอกอีเมล์ และรหัสผ่านที่ได้ตั้งไว้ลงไป
เมื่อล็อกอินสำเร็จแล้ว ให้เลื่อนลงมาด้านล่าง จะพบ ออก Access Token (สำหรับผู้พัฒนา) ให้กดปุ่ม ออก Token
พอมาถึงส่วนนี้ให้เราทำความเข้าใจก่อนว่า เมื่อเราส่งข้อความไปแล้ว ข้อความที่ขึ้นจะปรากฏในรูปแบบ
[ชื่อ Token]: [ข้อความ]
ดังนั้นในช่องที่ 1 สามารถกรอกเป็นอะไรก็ได้ และสิ่งที่กรอกนั้นจะติดไปพร้อมกับข้อความเสมอ เช่น หากกรอกว่า ESP8266 เมื่อใช้ API ส่งข้อความว่า "สวัสดี" ข้อความจะขึ้นว่า "ESP8266:สวัสดี"
ในช่องที่ 2 จะให้เลือกว่าเราจะส่งข้อความเข้าไปในกลุ่มไหน หรือส่งให้ตัวเองเท่านั้น
เมื่อกรอกครบแล้ว ให้กดปุ่ม ออก Token
เมื่อกดปุ่มแล้ว จะปรากฏรหัส Token ให้ท่านเก็บรหัสนี้ไว้ให้ดีเพราะจะออกให้เพียงครั้งเดียว แต่หากลืม ท่านสามารถเริ่มต้นทำขั้นตอนใหม่เพื่อขอ Token ใหม่ได้
ส่วนใน LINE ก็จะมีการแจ้งเตือนว่าออก Access Token ใหม่แล้ว
แค่นี้เป็นอันจบขั้นตอนการขอ Access Token แล้ว ต่อเราจะมาเริ่มต่อวงจรกันครับ
ต่อวงจรสวิตซ์ให้ NodeMCU v1.0
ในบทความนี้จะเลือกใช้ NodeMCU เนื่องจากเป็นบอร์ดที่ค่อนข้างได้รับความนิยมเป็นส่วนใหญ่
ในการทดลอง จะใช้สวิตซ์ในการแทนเซ็นเซอร์อื่น ๆ เมื่อมีการกดสวิตซ์แล้ว จะมีการส่งแจ้งเตือนไปทาง LINE ท่านสามารถเปลี่ยนสวิตซ์เป็น PIR Sensor เพื่อตรวจจับผู้บุกรุกได้ หรือเปลี่ยนเป็นสวิตซ์แม่เหล็กติดกับประตูเพื่อแจ้งเตือนมีการเปิดประตูได้
Coding
ในโค้ดด้านล่างนี้ ท่านสามารถคัดลอกไปวางในโปรแกรม Arduino IDE ได้เลย แล้วแก้ไข
จากนั้นอัพโหลดลง NodeMCU ไปได้เลย
การทดสอบ
หลังจาก ESP8266 เชื่อมต่อ WiFi ได้แล้ว ทดลองกดสวิตซ์ จะมีข้อความว่า "โดนกด" มาปรากฏในห้องแชทของ LINE Notify เป็นอันจบการทดสอบ
การแก้ไขข้อความที่ส่ง
ท่านสามารถแก้ไขข้อความได้โดยแก้ไขคำในตัวแปร message ในบรรทัดที่ 12 ได้เลย
แต่เนื่องจากไมโครคอนโทรลเลอร์ไม่รองรับ UTF-8 ทำให้ไม่รองรับการพิมพ์ภาษาไทยลงไปตรง ๆ หากต้องการส่งข้อความที่ไม่ใช่ภาษาอังกฤษ เป็นข้อความภาษาไทย ข้อความยาวหลายบรรทัด มีการเว้นวรรค มีอักษรพิเศษ จะต้องแปลงข้อความให้อยู่ในรูปที่เรียกว่า URL Encode ก่อน โดยใช้บริการเว็บ http://meyerweb.com/eric/tools/dencoder/ เมื่อเข้าไปในเว็บ ให้พิมพ์ข้อความที่ต้องการ จากนั้นกดปุ่ม Encode ก็จะปรากฏข้อความที่ถูกแปลงแล้วออกมา ท่านสามารถนำข้อความที่ถูกแปลงแล้วไปใส่ในตัวแปร message ได้เลย
--------------------
ขอบคุณที่อ่านมาจนจบนะครับ ในโอกาศหน้าผมจะนำบทความอะไรมาลงอีก สามารถติดตามได้ที่เว็บของ artronshop หรือที่เพจ artronshop ได้ครับ และสุดท้ายหวังว่าเราจะก้าวเข้าสู่ Thailand 4.0 ไปพร้อม ๆ กันนะครับ
สวัสดีครับ.
ขอบคุณบทความการใช้งาน LINE Notify ในภาษา Python จาก python3.wannaphong.com จนนำมาสู่การนำไปใช้บน ESP8266 / ESP8285 และเกิดบทความนี้ขึ้นมาครับ