RUN DEVIO Beacon! เมื่อ LINE DEV จะมาวิ่งทั้งที… ก็ต้องมีเขียนโค้ดกันหน่อย!

Tan Warit
LINE Developers Thailand
2 min readFeb 18, 2022

สวัสดีครับทุกคน ช่วงนี้ผมกลับมาวิ่งจริงจังในรอบ 5 ปี ประกอบกับผมชวนพี่ตี๋ Jirawat มาวิ่งด้วย เมื่อ LINE DEV จะลุกขึ้นมาวิ่งทั้งที แค่ไปวิ่งธรรมดาๆมันก็จะกะไรอยู่ ไหนๆเรามี DEVIO Beacon อยู่ในมือแล้วด้วย ขอทำเป็น Gamification ใช้ LINE Messaging API ร่วมกับ DEVIO Beacon ที่เป็นอุปกรณ์ LINE Beacon ที่จับสัญญาณเวลาเราออกไปวิ่งกันครับ

วิ่งกับพี่ตี๋ วิ่งกับพี่ตี๋ วิ่ง วิ่ง วิ่ง!

LINE Beacon คืออะไร?

LINE Beacon คือเทคโนโลยีที่อยู่ในอุปกรณ์ Beacon โดยมันสามารถปล่อยสัญญาณ Bluetooth® Low Energy ไปยังแอปพลิเคชัน LINE บนสมาร์ทโฟน จากนั้นเราสามารถเขียนโค้ดเพื่อรับ Webhook event เวลาที่ผู้ใช้เข้ามาใกล้อุปกรณ์ Beacon ของเรา

โดยในบทความนี้เราจะใช้ DEVIO Beacon ที่เป็นความร่วมมือระหว่าง LINE กับ AIS เปิดตัวไปเมื่อปลายปีที่แล้วครับ

5 Steps ในการพัฒนา RUN DEVIO Beacon

สิ่งที่เราจะทำใน Chatbot ตัวนี้ก็ง่ายๆมีอยู่แค่ 5 ขั้นตอนเท่านั้นครับ ได้แก่

  1. Setup และลงทะเบียนอุปกรณ์ DEVIO Beacon กับ LINE OA ให้เรียบร้อย
  2. Deploy Webhook server สำหรับรับ webhook ที่จะถูกส่งมาจาก LINE ซึ่งทั้ง 2 ขั้นตอนนี้สามารถทำตามบทความนี้ได้เลยครับ

3. เขียนโค้ดเพื่อดักสัญญาณ Beacon event โดยจะมี Logic ง่ายๆ 2 กรณีคือ

  • ถ้านักวิ่งเดินเข้ามาในระยะ Beacon ครั้งแรก จะมีปุ่ม I’m Ready, GO! ตูพร้อมวิ่งแล้วนะ! ให้กดเพื่อเริ่มวิ่ง เมื่อนักวิ่งกดปุ่มนี้เราก็ Flag ไว้ว่านักวิ่งคนนี้กำลังวิ่งอยู่
  • พอวิ่งวนกลับมาแล้วเข้าระยะ Beacon อีกครั้ง ก็ทำการเก็บระยะทางใส่ไว้ Database ให้ (โดย 1 รอบคอนโดที่ผมกับพี่ตี๋วิ่ง มีระยะทางประมาน 1 KM)

4. พอวิ่งจนหนำใจละ นักวิ่งสามารถกดปุ่ม I’m done อารมณ์แบบตูไม่ไหวแล้ว พอเถอะ เพื่อหยุดนับระยะทาง

5. Query ข้อมูลใน Database เพื่อเอามาปั้นเป็น Flex message เพื่อส่งผลการวิ่งให้กับนักวิ่ง โดยจะเป็นการนับระยะสะสมของทั้งสัปดาห์

โดยโค้ดทั้งหมดมี 2 ไฟล์ครับ index.js กับ msgTemplate.js (ไว้เก็บ Flex message)

ชวน Jirawatee ออกมาวิ่ง 5 วันติด!

ในการทดสอบเราจะวิ่งทั้งหมด 5 วันติดต่อกันเพื่อสะสมระยะทางว่าจะได้สักกี่กิโล (จริงจังไปไหน) ไปลุ้นกันว่า 5 วันนี้พี่ตี๋จะรอดหรือไม่?!

ชอบกด Like ใช่กด Share และ Subscribe ให้ด้วยนะครัช 💚

Summary

สำหรับผมการพัฒนา RUN DEVIO Beacon ทั้งหมดไม่ยากเลย นี่ใช้เวลาไม่นานผมก็ได้ Prototype มาเล่นแล้ว ตัว DEVIO Beacon ก็ใช้งานง่าย สัญญาณนิ่งมาก เราวิ่งกันบางช่วง Pace 5 (1 กิโลใช้เวลา 5 นาที) ถือว่าเร็วใช้ได้ ก็จับสัญญาณได้หนึบ ไม่มีหลุด อีกประเด็นพอทำ Solution อยู่บน LINE ก็ยิ่งง่าย เขียนโค้ดครั้งเดียวใช้งานได้ทั้ง iOS และ Android เลย ใครสนใจตามไปกดมาเล่นกันได้ฮะ

จริงๆมันยังมีส่วนที่ต้องเพิ่มอีกเช่น กำหนดเวลา Time interval ให้กับการนับระยะทางเพื่อกันคนไม่ได้วิ่งเข้าออกจริงๆ อาจจะแค่เปิดปิด Bluetooth เป็นต้น หวังว่าบทความนี้จะเป็น Idea ให้เพื่อนๆ LINE DEV ได้เอาไปต่อยอดกันได้นะครับ วันนี้เราสองคนลาไปก่อน ต้องบอกว่าขอลาไปนอนก่อน ตื่นเช้ามาหลายวัน 55+ ราตรีสวัสดิ์ครับ

--

--