การควบคุม LED ด้วย KidBright ผ่าน Freeboard (ด้วย Plugin NETPIE)
ในการทดลองนี้เราจะทดลอง 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
ในส่วนนี้จะใช้ 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 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”]