Coding & Dashboard Design
เรียนทฤษฎีกันมาครบแล้ว ถึงเวลาประกอบร่างความรู้ทั้งหมดเข้าด้วยกันครับ! วันนี้เราจะมาจำลองการสร้าง "ระบบเปิด-ปิดหลอดไฟผ่านสมาร์ตโฟน" โดยใช้สมาร์ตโฟนเป็นผู้สั่งการ (Publisher) ส่งผ่านตัวกลาง (Broker) ไปยังบอร์ดสมองกล (Subscriber) เพื่อให้หลอดไฟสว่างขึ้นครับ!
เราจะเปลี่ยนหน้าจอมือถือธรรมดา ให้กลายเป็นรีโมตสุดล้ำด้วยแอปพลิเคชัน IoT MQTT Panel (หรือแอปแนว Dashboard อื่นๆ) โดยมีขั้นตอนง่ายๆ ดังนี้:
เปิดแอปขึ้นมา สิ่งแรกที่ต้องทำคือกรอก IP Address หรือ URL ของ Broker เพื่อให้มือถือรู้ว่าจะต้องส่งข้อมูลไปที่เซิร์ฟเวอร์ไหน (เช่น tcp://broker.hivemq.com)
ในกรณีที่เราต้องการเปิด-ปิดไฟ ให้เราเลือกวิดเจ็ตประเภท สวิตช์ (Switch หรือ Button) นำมาวางบนหน้าจอ Dashboard
เมื่อเราสร้างสวิตช์บนแอปแล้ว เราต้องตั้งค่า "รหัสลับ" 2 อย่าง เพื่อให้สวิตช์ตัวนี้คุยกับหลอดไฟได้ถูกดวง ไม่ไปเปิดไฟบ้านคนอื่นครับ!
home/bedroom/light1
ON
1
OFF
0
เมื่อมือถือส่งคำสั่งออกไปแล้ว ฝั่งฮาร์ดแวร์ (เช่น บอร์ด Raspberry Pi, NodeMCU หรือ KidBright) ก็ต้องมี โปรแกรมคอมพิวเตอร์ (Coding) ฝังไว้ เพื่อบอกมันว่าต้องทำตัวอย่างไร ซึ่งหลักการเขียนโปรแกรม (เช่น ภาษา Python) จะมีตรรกะดังนี้ครับ:
เพียงเท่านี้! ทันทีที่เรากดสวิตช์ ON บนมือถือ ข้อมูลจะวิ่งไปที่ Broker แล้วส่งต่อมาที่บอร์ดสมองกล บอร์ดอ่านโค้ดเจอคำว่า ON ก็จะสั่งจ่ายไฟให้หลอดไฟสว่างขึ้นทันที นี่แหละครับคือเวทมนตร์ของ Internet of Things!
ทดสอบความเข้าใจเรื่องการสร้างระบบควบคุม IoT
ข้อที่ 1: ในการใช้งานแอปพลิเคชัน IoT MQTT Panel สิ่งแรกที่นักเรียนต้องตั้งค่าเพื่อให้แอปสามารถสื่อสารกับระบบได้คืออะไร?
ข้อที่ 2: ในระบบ MQTT คำว่า "Topic" มีหน้าที่เปรียบได้กับสิ่งใดในชีวิตประจำวัน?
ข้อที่ 3: หากนักเรียนกดสวิตช์เปิดไฟบนมือถือ แล้วแอปส่งคำว่า "ON" ออกไป คำว่า "ON" นี้เรียกอีกอย่างหนึ่งว่าอะไรตามหลักของ MQTT?
ข้อที่ 4: ในกระบวนการสั่งเปิดไฟจากมือถือ "บอร์ดสมองกล" (เช่น Raspberry Pi หรือ NodeMCU) ที่ต่ออยู่กับหลอดไฟ จะต้องทำหน้าที่อะไรเป็นหลัก?
ข้อที่ 5: เหตุใดเราจึงต้อง "เขียนโปรแกรม (Coding)" ลงไปในบอร์ดสมองกล ทั้งที่เรากดปุ่มจากในแอปมือถือได้แล้ว?