Workshop อ่านค่า sensor พื้นฐาน KidBright มายัง HIVEMQ

sivarak chituthas
3 min readNov 12, 2019

--

Concept ของการทดลองนี้คือเราจะอ่านและส่งค่าจาก sensor ที่บอร์ด Kidbright ได้แก่ LDR และ Temperature sensor มาแสดงผลยัง HIVEMQ ซึ่งเป็น mqtt broker ที่เราเลือกใช้ในการทดลองนี้ ซึ่งสำหรับคนที่ยังไม่คุ้นเคยกับ mqtt broker แนะนำให้อ่านเพิ่มเติมในใบความรู้ที่ 4.1 การใช้งาน MQTT บนบอร์ด KidBright
ซึ่งจัดทำโดยสวทช. ครับ

โดยการทดลองนี้จะแบ่งเป็น 2 part คือ part1 ส่วนของการตั้งค่าฝั่ง HIVEMQ และ part2 คือส่วนของการเขียนโปรแกรมฝั่ง KidBright

Part 1ส่วนของการตั้งค่าฝั่ง HIVEMQ

เริ่มต้นให้เข้ามาที่ http://www.hivemq.com/demos/websocket-client/ แล้วคลิกปุ่ม connect สิ่งที่ต้องเข้าใจคือจะมีส่วน Pubish และ Subscriptions

  • ส่วน Publish จะมีให้กรอก Topic และ Message
    - Topic ให้เราตั้งชื่อเพื่อให้ broker ใช้ในการ filter messages เพื่อส่งไปยังบอร์ด KidBright ตัวอย่างคือ pccphet_iot/kb/ldr_ctrl/
  • ส่วน Subscriptions ให้เลือก Add New Topic Subscription เพื่อใช้ monitor ค่าใน Topic ที่เราสนใจ ตัวอย่างในที่นี้คือเราจะ subscription ไว้ 2 channel คือ
    pccphet_iot/kb/ldr_ctrl/ และ pccphet_iot/kb/ldr_value/
  • Topic แรกที่ชื่อ pccphet_iot/kb/ldr_ctrl/ จะใช้สำหรับส่งค่า 1 หรือ 0 ไปยังบอร์ด kidBright โดยกำหนดเงื่อนไขคือ
    - ถ้า kidBright รับค่าเป็น 1 ให้ไปอ่านค่าแสงแล้วส่งค่ากลับมายัง topic ที่ชื่อ
    pccphet_iot/kb/ldr_value/
    (ซึ่งส่วนนี้เราจะไปเขียนโปรแกรมกันที่ฝั่งของบอร์ด Kidbright)
    - ถ้า kidBright รับค่าเป็น 0 ให้แสดง Happy Emotion

Part 2 ส่วนของโปรแกรมที่บอร์ด KidBright

ในการทดลองนี้เราจะใช้โปรแกรม KidBright IDE โดยให้ติดตั้ง plugin เสริมชื่อ cpeku_iot โดยดาวน์โหลดพร้อมศึกษาวิธีติดตั้ง plugin ได้ที่ https://gitlab.com/cjaikaeo/cpeku_iot

ส่วนของโปรแกรมให้ทดลองทำตามนี้ครับ

คำอธิบาย concept โปรแกรม

  1. Connect to MQTT Broker ให้ใส่ broker.mqttdashboard.com port 1883
  2. อ่านค่าจาก Topic ชื่อ pccphet_iot/kb/ldr_ctrl/ เก็บไว้ในตัวแปร num
  3. โปรแกรมวนตรวจสอบจนกระทั่งเชื่อมต่อ MQTT สำเร็จ จึงเข้ามาตรวจสอบเงื่อนไขคือ
    ถ้า num = 1
    - อ่านค่าแสงจาก LDR เก็บไว้ในตัวแปร light
    - ส่งค่า light กลับไปแสดงผลที่ topic ชื่อ pccphet_iot/kb/ldr_value/
    ถ้า num มีค่าอื่นๆ
    - ให้แสดง Happy Emoticon

ปล. อย่าลืม set ค่า wifi แล้ว upload โปรแกรม

ทดสอบการทำงานของโปรแกรม

case 1: พิมพ์เลข 1 ในช่อง message แล้วคลิก publish ผลลัพธ์ที่ได้คือจะแสดงเลข 1 และค่าแสงตัวอย่าง 40 ที่อ่านได้จาก KidBright ส่วนที่บอร์ด KidBright จะแสดงค่าแสงเช่นกัน

case 2: พิมพ์เลข 0 ในช่อง message แล้วคลิก publish ผลลัพธ์ที่ได้คือแสดงเลข 0 ส่วนที่บอร์ด KidBright จะแสดง Happy Emoticon

สำหรับแนวทางไปประยุกต์ต่อลองเขียนโปรแกรมเพิ่มเติมเพื่ออ่านค่าอุณภูมิมาแสดงยัง HIVEMqtt broker เพื่อทดสอบความเข้าใจดูครับ

ส่วนใครที่ลองทำด้วยความเข้าใจแล้ว อยากทดลองสั่ง Chatbot ให้ไปอ่านค่า sensor LDR ใน KidBright หรือให้ประยุกต์ควบคุม sensor ต่างๆ ของบอร์ด KidBright ลองทดลองทำตาม link ด้านล่างเลยครับ

เว็บไซต์อ้างอิง:

--

--

sivarak chituthas

สนใจอนาล็อกเป็นพิเศษ โตมากับค่ายเพลง Bakery music รักการวิ่ง จักรยานวินเทจ กีตาร์โปร่ง กาแฟดำ ชอบอ่านมูราคามิ