Embedded System-Week 2 mQTT

MQTT คืออะไร?

Surasak Sincharoen
2 min readJun 19, 2017

Message Queuing Telemetry Transport (MQTT) เป็นProtocol ที่ออกแบบมาเพื่อการเชื่อมต่อแบบ M2M (machine-to-machine)คืออุปกรณ์กับอุปกรณ์ สนับสนุนเทคโนโลยี iot (Internet of Things) คือเทคโนโลยีที่อินเทอร์เน็ตเชื่อมต่อกับอุปกรณ์ต่าง ๆ เช่น โทรศัพท์มือถือ รถยนต์ โทรทัศน์ ตู้เย็น เข้ากับอินเทอร์เน็ตทำให้สามารถเชื่อมโยงสื่อสารกับอุปกรณ์ต่าง ๆ ได้ โดยผ่านเครือข่ายอินเทอร์เน็ต ซึ่งจะทำให้มนุษย์สามารถ ควบคุมอุปกรณ์ต่าง ๆ จากที่อื่นได้ เช่นการสั่งปิดเปิดไฟในบ้านจากที่อื่น ๆ

เนื่องจากโปรโตคอลตัวนี้มีน้ำหนักเบา ออกแบบมาเพื่อใช้งานกับอุปกรณ์อิเล็กทรอนิกส์ขนาดเล็ก การรับส่งข้อมูลในเครื่อข่ายที่มีขนาดเล็ก แบนร์วิธต่ำ ใช้หลักการแบบ publisher / subscriber คล้ายกับหลักการที่ใช้ใน Web Service ที่ต้องใช้ Web Serverเป็นตัวกลางระหว่างคอมพิวเตอร์ของผู้ใช้ แต่ MQTT จะใช้ตัวกลางที่เรียกว่า Broker เพื่อทำหน้าที่ จัดการคิว รับ — ส่ง ข้อมูลระหว่างอุปกรณ์ และทั้งในส่วนที่เป็น Publisher และ Subscriber ดังภาพ

จากภาพจะเห็นได้ว่า Topic จะเป็นตัวอ้างอิงหลัก ข้อมูลทีจะ Publisher ออกไปยัง Broker จะต้องมี topic กำกับไว้เสมอ ทางฝ่าย subscriber ก็จะอ้างถึง topic เพื่อเรียกข้อมูลที่ต้องการ เหมือนกับการสมัครเป็นสมาชิกของหนังสือพิมพ์ฉบับหนึ่ง ชื่อของหนังสือก็เปรียบเหมือน topic และผู้ผลิตก็คือ publisher เมือถึงเวลาที่หนังสือเสร็จ ผู้ส่ง Broker ก็จะนำหนังสือพิมพ์มาส่งให้เรา

ตัวอย่าง แอพพลิเคชั่นที่ใช้งานคือ Facebook Mesenger

สรุปองค์ประกอบของ MQTT Protocol

จะประกอบไปด้วย Broker , Publisher และ Subscriber แต่ล่ะอย่างก็จะทำหน้าที่แต่กต่างกันออกไปโดย

Broker ทำหน้าที่เป็นตัวกลางคอยจัดการกับ ข้อความโดย อ้างอิงจาก Topic

Publisher จะทำหน้าที่คอยส่งข้อมูลไปยังหัวข้อนั้น ๆ

Subscriber จำทำหน้าที่คอยดูการเปลี่ยนแปลงของ message ที่อ้างอิงด้วย Topic เช่นถ้ามีหัวข้อหน้าสนใจและมีการเปลี่ยนแปลงก็จะทากรดึงข้อมูลนั้น ๆ มาใช้งาน

อ้างอิง : mindphp.com/บทความ/31-ความรู้ทั่วไป/3343-mqtt.html

ทดลองใช้ MQTT กันเถอะ

  1. ติดตั้ง app MQTTLens เป็นแอพสำหรับ Google Chrome

2.เปิดใช้งานแอพ และคลิ๊กเครืองหมาย “+” ตรงแถ็บ Connections

Connection Name : ชื่ออะไรก็ได้

Hostname : mosquitto.org

Port: 1883

3.ตั้งชื่อห้องสนทนา หรือ Topic name ในที่นี้ชื่อ mqtt_test2

4.ทำการส่งข้อความเข้าห้องสนทนา mqtt_test2 ในช่อง public

และนี่เป็นเพียงการทดสอบ mqtt วิธีนึงซึ่งสะดวกและเห็นภาพง่ายขึ้น หากต้องการศึกษาการส่งค่าจากอุปกรณ์ ลองศึกษาจากลิ้งค์ด้านล่าง

https://nodemcu.readthedocs.io/en/master/en/modules/mqtt/

https://www.foobarflies.io/a-simple-connected-object-with-nodemcu-and-mqtt/

--

--

Surasak Sincharoen
Surasak Sincharoen

Written by Surasak Sincharoen

สิ่งที่ฉันรัก

No responses yet