สรุปความรู้ที่ต้องใช้กันก่อน
- Node-red คืออะไร แล้วมันใช้ยังไง ? ถ้ายังไม่รู้เข้าไปอ่านในบทเก่าๆของเราได้
- MQTT คืออะไร MQTT Broker คืออะไร ถ้ายังไม่รู้เข้าไปอ่านในบทเก่าๆของเรา
เราจะถือว่าทุกคนอ่านเข้าใจกันเป็นอย่างดี มาเริ่มกันเลย
ทำความรู้จักกับ MQTT node ใน node-red
เริ่มกันด้วยลาก MQTT node มาวางบน Flow แล้ว Double Click โลดดดด
mqtt แบบ Input
เป็น node ที่ใช้สำหรับ Subscribe ข้อมูลจาก Topic
Properties จะมีแบบนี้
Server : ตั้งค่า Server ของ MQTT Broker ที่เราจะใช้งาน
Topic : Topic ที่เราจะ Subscribe
QoS : Quality of Service สำหรับการจัดสรรเส้นทางแบนด์วิธในระบบเครือข่ายที่มีอยู่อย่างจำกัด
- QoS 0 : ส่งข้อมูลเพียงครั้งเดียว ไม่สนใจว่าผู้รับจะได้รับหรือไม่
- QoS 1 : ส่งข้อมูลเพียงครั้งเดียว ไม่สนใจว่าผู้รับจะได้รับหรือไม่ แต่ให้จำค่าที่ส่งล่าสุดไว้ เมื่อมีการเชื่อมต่อใหม่จะได้รับข้อมูลครั้งล่าสุดอีกครั้ง
- QoS 2 : ส่งข้อมูลหลาย ๆ ครั้งจนกว่าปลายทางจะได้รับข้อมูล มีข้อเสียที่สามารถทำงานได้ช้ากว่า QoS0 และ QoS1
Output : คือ เมื่อรับข้อมูลมาจะแปลงข้อมูลให้อยู่ในรูปแบบไหน
mqtt แบบ Output
เป็น node ที่ใช้สำหรับ Publish ข้อมูลไปยัง Topic ที่เรากำหนด
Properties จะมีแบบนี้
Server : ตั้งค่า Server ของ MQTT Broker ที่เราจะใช้งาน
Topic : Topic ที่เราจะ Subscribe
QoS : Quality of Service สำหรับการจัดสรรเส้นทางแบนด์วิธในระบบเครือข่ายที่มีอยู่อย่างจำกัด
- QoS 0 : ส่งข้อมูลเพียงครั้งเดียว ไม่สนใจว่าผู้รับจะได้รับหรือไม่
- QoS 1 : ส่งข้อมูลเพียงครั้งเดียว ไม่สนใจว่าผู้รับจะได้รับหรือไม่ แต่ให้จำค่าที่ส่งล่าสุดไว้ เมื่อมีการเชื่อมต่อใหม่จะได้รับข้อมูลครั้งล่าสุดอีกครั้ง
- QoS 2 : ส่งข้อมูลหลาย ๆ ครั้งจนกว่าปลายทางจะได้รับข้อมูล มีข้อเสียที่สามารถทำงานได้ช้ากว่า QoS0 และ QoS1
Retain : เก็บข้อมูลที่ส่งไปแล้วไว้ ปกติตั้งเป็น false
ตั้งค่า Server ให้พร้อมใช้งาน
กดเข้าไปที่รูป ดินสอ หลัง Server แล้วเราจะเห็นช่องให้ใส่ข้อมูลมากมายเลย ช่องที่เราควรกรอก คือ Name, Server, Port ,Security
Name : ชื่อของ Server ตั้งอะไรก็ได้
Server : เอามาจาก หน้า Details ใน CloudMQTT ได้เลย
Port : เอามาจาก หน้า Details ใน CloudMQTT ได้เลย
จากหน้านี้ ได้เลย
เข้าไปที่ Tabs Security ใส่ Uername Password ที่เราตั้งไว้ใน CloudMQTT ให้เรียบร้อย
เสร็จแล้ว Deploy กันได้เลยลุยยยย
Subscribe ข้อความแรกจาก MQTT Broker
เราตั้งค่า Server เรียบร้อยแล้วต่อกันด้วยการ Subscribe ข้อความจาก WebSocket UI ของ CloudMQTT
ลาก node mqtt กับ debug ลงมาบน Flow แบบนี้ กด Deploy อีกสักรอบ
ตั้งค่า Topic ที่เราจะ Subscribe เป็น /ESP32_1/Test กด Deploy !!!
เข้า WebSocket UI จัดการส่ง “Hello From WebSocket” ที่ Topic /ESP32_1/Test
กด Send จากนั้นเข้ามาดูที่ debug ของ node-red จะเห็นข้อความที่ส่งมา
เป็นอันเสร็จง่ายมากกกกกก มาต่อกันเลย
Publish ข้อความแรกผ่าน MQTT Broker
เลือก node mqtt แบบ output และ inject มาต่อกันแบบนี้
ตั้งค่าให้ inject ส่งข้อมความว่า “Hello From Node-red”
กด Deploy แล้ว กดที่ inject โลด เสร็จแล้วเราจะเห็นข้อความมาปรากฎที่ WebSocket แบบนี้
ได้แล้วแค่นี้เอง ง่ายมากเราสามารถนำเอาเรื่องแบบนี้ไปต่อไปยอดไม่ว่าจะเป็นการต่อกับ MongoDB หรือ ใช้งานอย่างอื่นได้อีก ไม่เชื่อลองไปทำดู
แถมให้ลองเอาไปทำดูได้ Publish ค่า โดยการใช้ Node-red แล้ว Subscribe ค่าโดยการใช้ M5GO อ่านเรื่องการใช้ MQTT บน M5GOได้ที่