Friday, October 20, 2017

เริ่มต้นกับ MQTT

MQTT เป็นชื่อ Protocol หนึ่งไว้สำหรับรับ-ส่งข้อมูลอย่างง่าย เป็นที่นิยมใช้ในอุปกรณ์ IOT : Internet Of Thing (รายละเอียด : https://en.wikipedia.org/wiki/MQTT)

หลักการทำงานพอสังเขป :
1.สื่อสารกันโดยประกาศว่าจะส่งข้อความ (Publish) และรอรับข้อความ (Subscribe)
2.มี Broker เป็นตัวกลางในการสื่อสาร

สองรูปแทนสองหมื่นตัวอักษร (เครดิตรูปและคำอธิบายจาก https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Overview)

1.ติดตั้ง Broker
sudo apt-get install mosquitto
2.ติดตั้ง client
sudo apt-get install mosquitto-clients

3.เริ่มใช้งาน
3.1 ให้ Client ตัวหนึ่ง สมัครรับข้อความทุกอย่างจาก Broker (สมัครรับหัวข้อ (topic) ไหน ก็จะได้รับเฉพาะ topic นั้น แต่ตัวอย่างนี้ใช้ # เพื่อขอดูทุก topic)
mosquitto_sub -h 192.168.xx.xx -t "#"


3.2 ให้ client อีกตัว ประกาศข้อความ ในหัวข้อเรื่อง (topic) "obtrusive"
mosquitto_pub -h 192.168.xx.xx -t "obtrusive" -m "Not yours"

3.3 Client ที่สมัครรับ topic นั้นไว้ก็จะได้รับข้อความ ตามตัวอย่าง


4.แนวทางการใช้งานกับอุปกรณ์ IOT (ตัวอย่างการทำให้อุปกรณ์ IOT ชื่อ Sonoff รองรับ MQTT : https://github.com/arendst/Sonoff-Tasmota)
4.1 ให้อุปกรณ์ IOT เป็น MQTT Client รอรับ Topic ที่สนใจเช่น เป็น IOT ที่ทำหน้าที่เปิดไฟก็ Subscribe รับ Topic ชื่อ LivingRoom (mosquitto_sub -h 192.168.x.x -t "LivingRoom")
4.2 ตั้ง crontab ให้ Publish ข้อความ 0 หรือ 1 ไปที่ Topic ชื่อ LivingRoom (mosquitto_pub -h 192.168.x.x -t "LivingRoom" -m 1)

4.3 สั่งงานผ่าน Client รูปแบบอื่น เช่น MQTT Client on Android, Webservice, REST

No comments: