สร้าง dashboard บน NETPIE Freeboard เพื่อรับข้อมูลที่ส่งเข้ามา - mrolarik/simple-iot GitHub Wiki
การสร้าง dashboard สามารถอ่านเพิ่มเติมได้ที่บทความ
ตัวอย่าง dashboard ที่ใช้แสดงสถานะของเครื่อง Server
ข้อมูลที่ส่งมาจากโปรแกรม Python
ลักษณะของข้อมูลที่ถูกส่งจากโปรแกรม Python มายังเซิร์ฟเวอร์ของ NETPIE มีลักษณะดังนี้
0,15,3,226,14:39:19 up 17 days-14:08-0 users-load average: 0.00-0.00-0.00
จากลักษณะของข้อมูลข้างต้น ข้อมูลแต่ละชุดได้แยกกันด้วยเครื่องหมายคอมม่า (,) ดังนั้นหากเขียนโปรแกรมภาษา Python เพื่อแยกข้อมูลออกมาใช้งานสามารถทำได้โดย
msg = '0,15,3,226,14:39:19 up 17 days-14:08-0 users-load average: 0.00-0.00-0.00'
msg = msg.split(',')
print(msg)
จากคำสั่งข้างต้น ข้อมูลจะถูกเก็บลงไปใน list
ผลลัพธ์ที่ได้แบ่งเป็น 5 ค่าข้อมูล (Value) คือ
['0', '15', '3', '226', '14:39:19 up 17 days-14:08-0 users-load average: 0.00-0.00-0.00']
โดย
- msg[0] คือ
cpu usage
- msg[1] คือ
total memomy
- msg[2] คือ
used memory
- msg[3] คือ
running process
- msg[4] คือ
uptime
การสร้าง datasource ใน NETPIE
ตัวอย่างการสร้าง dashboard อ่านเพิ่มเติมได้จากบทความ การสร้าง dashboard เพื่อแสดงข้อมูล
ดังนั้น จากตัวอย่างให้เพิ่ม Widget
และเลือก Type
เป็น gauge
ลงไปใน Freeboard และในส่วนของ Value
ให้กำหนดตัวแปรดังนี้
cpu usage
ให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[0]
total memory
ให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[1]
used memory
ให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[2]
running process
ให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[3]
uptime
ให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[4].split(' ')[2]
และเพิ่มเติมในส่วนของ uptime
เนื่องจากข้อมูลที่ส่งไปยัง NETPIE เป็นชุดข้อมูล เราสามารถที่จะแสดงในรูปแบบของ HTML
ได้ดังนี้
- ในส่วนของ
uptime
ให้เลือก Widget เป็นHTML
และให้กำหนดเป็นdatasources["RPi"]["/olarikRPi/gearname/smartFarm"].split(',')[4]
โดยที่ข้อความ datasources["RPi"]
จะเปลี่ยนไปตามที่ได้กำหนดไว้ในขั้นตอนการสร้าง application
และการกำหนดข้อความ ["/olarikRPi/gearname/smartFarm"]
จะเปลี่ยนแปลงตามที่กำหนดในโปรแกรม Python