MQTT (Message Queue Telemetry Transport) เป็นโปรโตคอลสำหรับ Internet of Things โปรโตคอลนี้ใช้วิธีการเหมือนกับ Message Queue ปกติแต่พัฒนาให้รองรับงานด้าน Internet of Things นอกจากจะรอรับและอ่านค่าแล้ว ยังสามารถสั่งงานอุปกรณ์ที่ใช้ MQTT ได้ด้วย การใช้งานโปรโตคอลนี้ต้องจะต้องมีอุปกรณ์ที่ฝัง MQTT Broker มาเพื่อทำหน้าที่รับส่งข้อมูลไปยังอุปกรณ์อื่นที่ใช้ MQTT เหมือนกัน เนื่องจากไม่มีอุปกรณ์ที่เล่นกับ MQTT ได้ก็ต้องจำลองกันสักหน่อย

MQTT Broker มีหลายค่ายให้ใช้งาน เราเลือกใช้ของง่ายๆ กันก่อน คือ Mosquitto เจ้ายุงนี้เป็น OpenSource MQTT Broker สนับสนุน MQTT Broker v3.1/3.1.1 วิธีการติดตั้งก็ง่ายมาก ติดตั้งผ่าน PPA ได้เลยดังนี้

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto python-software-properties

เท่านี้ก็ใช้งานได้แล้ว อ้อเกือบลืม mosquitto ทำงานบน port 1883 ครับ ได้ Broker แล้วจะทดลองเล่นยังไง มี 2 ทางเลือกคือ ใช้ MQTT Client หรือเขียนโปรแกรมเชื่อมต่อ ทางเลือกที่ดีที่สุดคือใช้ Client ครับ :) ผมเลือก Client ที่คิดว่าน่าจะใช้ง่ายที่สุดคือ MQTT Spy ครับ ดาวน์โหลดมาแล้วเรียกใช้งาน เราจะได้หน้าตาแบบนี้

เพิ่ม Connection เข้าไป

เราก็จะได้หน้าตาออกมาแบบนี้

ตัวโปรแกรมจะแบ่งเป็น 2 ส่วน คือ ส่วน Publish และส่วน Subscription เราจะมาลองเพิ่มส่วน Subscription ก่อน โดยมีข้อมูลของ Topic ดังนี้

  • ห้องนอน
    • อุณหภูมิ => bedroom/temperature
    • สวิตช์ไฟ => bedroom/switch/light
  • ห้องครัว
    • อุณหภูมิ => kitchen/temperature
    • สวิตช์ไฟ => kitchen/switch/light
  • ห้องนั่งเล่น
    • อุณหภูมิ => livingroom/temperature
    • ความชื้น => livingroom/humidity
    • สวิตช์ไฟ => livingroom/switch/light

สมมุติว่าบ้านเรามี Sensor อ่านอุณหภูมิ (temperature) ความชื้น (humidity) และควบคุมสวิตช์ไฟ (switch/light) ในแต่ละห้องซึ่ง sensor เหล่านี้จะส่งข้อมูลเข้ามาที่ MQTT Borker จากนั้นเอาก็จะเอาค่าที่ได้มาใช้งาน มาทดลองรับส่งผ่าน MQTT Spy กัน อันดับแรกตั้งค่า Subscription ก่อนเราจะได้ตรวจสอบได้ว่า Broker รับข้อมูลมาได้จริงๆ และ Client อ่านข้อมูลได้จริง

จากนั้นเรามาลองส่งข้อมูลทีละตัวกัน

  • bedroom/temperature = 30
  • bedroom/switch/light = 0
  • kitchen/temperature = 32
  • kitchen/switch/light = 0
  • livingroom/temperature = 31
  • livingroom/humidity = 60
  • livingroom/switch/light = 1

ดังนี้

เราก็จะพบว่า MQTT Spy อ่านค่าจาก Broker ให้ตามที่เรา Subscribe ข้อมูลเอาไว้ 3 ห้องคือ bedroom, kitchen และ livingroom นั่นเอง MQTT เป็นเพียงโปรโตคอลในการสื่อสาร สามารถประยุกต์ใช้ตามความเหมาะสม ลองอ่านข้อมูลเพิ่มเติมได้ที่ MQTT and CoAP, IoT Protocols ครับ

Comments are closed.