การควบคุม LED ด้วย KidBright ผ่าน Freeboard (ด้วย Plugin NETPIE)

sivarak chituthas
2 min readMar 3, 2023

--

ในการทดลองนี้เราจะทดลอง Publish และ Subscribe ข้อมูลโดยใช้ Block Netpie ของโปรแกรม KidBright IDE โดยมีโจทย์ดังนี้

  • ส่งค่าแสง (Publish) จาก KidBright ด้วย topic ชื่อว่า @msg/kb/light
  • รับค่าแสง (Subscribe) ด้วย topic ชื่อว่า @msg/kb/light มาแสดงผลที่ Freeboard
  • ส่งค่าสถานะการควบคุม LED (Publish) ซึ่งมีค่าเป็น “on” หรือ “off” จาก Freeboard มายัง KidBright ด้วย topic ชื่อว่า @msg/kb/led
  • รับค่าสถานะการควบคุม LED (Subscribe) ด้วย topic ชื่อว่า @msg/kb/led
แสดงภาพรวมการทำงานของโปรแกรม

ส่วนที่ 1 การเขียนโปรแกรม KidBright

โปรแกรมฝั่ง KidBright

ในส่วนนี้จะใช้ block คำสั่ง NETPIE ซึ่งมีติดตั้งอยู่แล้วในโปรแกรม KidBright IDE รุ่น 1.6.0 โดยอธิบายการทำงานโดยสรุปได้ดังนี้

1. Block Connect NETPIE ให้ระบุ Device ID และ Device Token ซึ่งได้มาจากเมนู Device ของ NETPIE2020 และ Subcribe topic ชื่อ @msg/kb/led

2. Block connected เป็นการบอกว่าเมื่อ KidBright เชื่อมต่อกับ NETPIE2020 ได้แล้วให้แสดงข้อความ “^^”

3. Block On recived message of topic @msg/kb/led เป็นการระบุว่า เมื่อ KidBright ได้รับข้อความผ่าน topic ดังกล่าวให้แสดงข้อความแบบเลื่อนบนหน้าจอ

4. Task ชื่อว่า Publish ให้วนส่งค่าแสงทุกๆ 1 วินาที ขึ้นไปที่ NETPIE2020 ด้วย topic ชื่อ @msg/kb/light

5. อย่าลืมใส่ ssid, password wifi เพื่อให้ KidBright เชื่อมต่อสัญญาณอินเทอร์เน็ต

ส่วนที่ 2 การปรับแต่ง Freeboard

ตัวอย่าง Widget แสงผลลัพธ์ ใน Freeboard
  1. ส่วนของ Widget Button
  • ปุ่ม ON ในเมนู on click action ให้ใส่รูปแบบข้อมูลเป็น netpie[“datasources name”].publish(“@msg/kb/led”,”on”)
  • ปุ่ม OFF ในเมนู On click action ให้ใส่รูปแบบข้อมูลเป็น netpie[“datasources name”].publish(“@msg/kb/led”,”off”)

2. ส่วนของ Widget Gauge

  • ในเมนู value ให้ใส่ค่า datasources[“datasources name”][“msg”][“kb”][“light”]

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

ตัวอย่างผลลัพธ์จาการทำงานของโปรแกรม

--

--

sivarak chituthas
sivarak chituthas

Written by sivarak chituthas

สนใจอนาล็อกโตมากับค่ายเพลง Bakery music

No responses yet