Line bot เปิดปิด LED ผ่านบอร์ด NodeMCU esp8266 แบบละเอียด !
Line bot เปิดปิด LED ผ่านบอร์ด NodeMCU esp8266 แบบละเอียด !
ในหัวข้อวันนี้จะเป็นการใช้ Line Message API เพื่อติดต่อกับ NodeMCU esp8266 โดยใช้ Cloud Service คือ NETPIE กับ Heroku Server
Hardware
1. NodeMCU esp8266
2. หลอด LED
Software
1.Line Application
Cloud Service
1. Line Message API
2. NETPIE
3. Heroku
4. Github
4. Github
เอาล่ะมาเริ่มลุยกันเลยครับ !
1. สร้าง Line bot
สร้าง Accout บน LINE Developers ไปที่ https://developers.line.biz/en/
1.1 เข้าสู่ระบบ และ กดที่ Documents
1.2 กดที่ Products, กดที่ Message API, กด Start now
1.3 กด Create New Provider และตั่งชื่อของ Provider List ให้เรียบร้อย
1.4 สร้างเสร็จแล้วก็กดเข้ามาใน Provider List ที่สร้างไว้ และ กด Create new channel
1.5 เลือก Messaging API
1.6 ใส่ข้อมูลของ Bot
1.7 เมื่อใส่ข้อมูลของ Bot เสร็จแล้ว หน้าตาจะเป็นแบบนี้ให้ลื่นลงมา จนจอ Messaging Setting (รูปที่ 2) ให้จำหน้านี้ไว้เพราะจะต้องกลับมา เอา Channel Access token, เปลี่ยน Webhook จาก Disabled เป็น Enabled และ ใส่ Link Webhook ที่ได้จาก Heroku Server มาใส่
2. Heroku Server
ต่อไปนี้จะเป็นการสร้าง Webhook จาก Heroku Server โดยเชื่อมต่อกับ Github เข้าไปที่ https://www.heroku.com/
2.1 สมัครสมาชิก และล็อกอินให้เรียบร้อย
2.2 กด New และ Create new app
2.3 ใส่ชื่อ App ตามที่ต้องการ จากนั้นเลือก Choose a region เป็น United States แล้ว กด Create app
2.1 สมัครสมาชิก และล็อกอินให้เรียบร้อย
2.2 กด New และ Create new app
2.3 ใส่ชื่อ App ตามที่ต้องการ จากนั้นเลือก Choose a region เป็น United States แล้ว กด Create app
2.4 เมื่อใส่ชื่อ app และ เลือก Choose a region เรียบร้อยแล้ว จะได้หน้าตาเป็นแบบนี้ กดที่ GitHub
2.5 ใส่ชื่อ Repositories ของ GitHub ลงไป แล้วกด Connect ถ้า ยังไม่มี Code ใน GitHub สามารถใช้ https://github.com/xNewz/linebot เป็นตัวทดสอบได้ครับ
2.6 กดที่ Enable Automatic Deploys เมื่อ Code ใน GitHub มีการเปลี่ยนแปลง ทาง Heroku จะ Update Code ตาม GitHub และกด Deploy Branch
2.7 และลองทดสอบดูว่าสามารถใช้งานได้หรือไม่
โดยไปที่ https://ชื่อappของheroku.herokuapp.com/ เช่น https://arduinotestapp123.herokuapp.com/ เมื่อเข้ามาแล้วจะได้หน้าตาแบบนี้
3. เชื่ออมต่อ Webhook กับ Messaging API
3.1 เข้าไปที่ลิงค์ https://manager.line.biz/ เข้าสู่ระบบและ เลือกบัญชีที่เราสร้างไว้ตอนแรก
3.2 เมื่อเลือกบัญชีที่สมัครไว้ตอนแรกแล้ว ให้กด ตั้งค่า และ ตั้งค่าการตอบกลับ ดังภาพ
3.3 แล้วเลื่อนลงมาจะเจอ ตั้งค่าออย่างละเอียด ให้ไป ติ๊ก เปิด ตรง Webhook
3.4 เมื่อกด ติ๊กเปิด ตรง Webhook เรียบร้อยแล้ว ให้กดไปที่ ตั้งค่า Messaging API
3.5 ใส่ URL ของ Heroku Server ลงไป ก็คือ https://ชื่อappของheroku.herokuapp.com/ เมื่อใส่เรียบร้อยแล้ว กด บันทึก
3.6 จากนั้นไป Copy โดยเข้าไปที่ https://developers.line.biz/en/ เหมือนกับตออนแรก
3.7 จากนั้นเลือก Providers ที่เราสร้างไว้ของผมชื่อ Arduino แล้วจากนั้นเลือก Channels ของผมเป็น test
3.8 เมื่อเลือก Channels เสร็จ ให้กดไปที่ Messageing API
3.9 แล้วเลื่อนลงมา จะเจอ Channels access token ให้กดที่ issue แล้ว Copy token ไว้
4. NETPIE
4.1 เข้าไปที่ https://netpie.io/ สมัครสมาชิกให้เรียบร้อย จากนั้นกด Login
เมื่อ Login เสร็จเรียบร้อยแล้ว กดที่ Resources จากนั้น กดที่ Applications
4.2 กดที่ เครื่องหมายบวก และ ใส่ชื่อ App ตามต้องการ
4.3 กดที่ เครื่องหมาย บวก ตั้งชื่ออุปกรณ์ และ เลือกเป็น Device Key แล้วกด CREATE
4.4 กดที่ เครื่องหมาย บวก ตั้งชื่อ และ เลือกเป็น Session Key แล้วกด CREATE
4.5 Code : https://github.com/xNewz/linebot/blob/master/Code/linebot_led/linebot_led.ino
const char* host = "Line bot server";
ใส่ http://{ชื่อAppในHeroku}.herokuapp.com/bot.php
#define APPID "arduinotestapp" ชื่อ APP ID ใน NETPIE
#define KEY "4EK109INhdbrTgs" key ของ Device Key
#define SECRET "qRMCnM0Fvp04MgPa7WNJF0gSt" Secret ของ Device Key
4.6 ตั้งชื่อ ALIAS ให้ตรงกับ ชื่ออุปกรณ์ ใน Device Key ของ NETPIE
4.7 แก้ไขไฟล์ bot.php ใน GitHub
แก้ Topic ให้ตรงกับ ชื่ออุปกรณ์ ใน Device Key ของ NETPIE
4.8 แก้ไขไฟล์ pub.php ใน GitHub
แก้ APPID เป็นชื่อของ App ID ใน NETPIE
** เช่น arduinotestapp/ มี / ข้างหลังด้วย **
In member function 'void MicroGear::syncTime(Client*, long unsigned int*)
ตอบลบเราลองทำตามแล้วคอมไพล์ดูติด error เราพยายามหาทางแก้แล้วแต่ยังไม่เจอทางออกเลยค่ะ
ลองตรวจสอบเวอร์ชั่นของ library ของ MicroGear ครับ ลองลดเวอร์ชั่น หรือ อัพเดทเวอร์ชั่นของ library MicroGear ดูครับ
ลบArduinoJson.h มันขึ้น errer ค่ะลง libary แล้วก็ขึ้นค่ะ
ตอบลบ