MQTT คืออะไร?
MQTT (Message Queuing Telemetry Transport) เป็น โปรโตคอลการสื่อสารแบบเบา (Lightweight Communication Protocol) ที่ออกแบบมาเพื่อใช้ในการส่งข้อมูลระหว่างอุปกรณ์ โดยเฉพาะในระบบ Internet of Things (IoT) และ Machine-to-Machine (M2M)
โปรโตคอลนี้ถูกพัฒนาขึ้นครั้งแรกในปี 1999 โดย Andy Stanford-Clark (จาก IBM) และ Arlen Nipper (จาก Arcom) โดยมีเป้าหมายหลักเพื่อสร้าง โปรโตคอลที่ใช้พลังงานน้อย ประสิทธิภาพสูง และทำงานได้แม้ในเครือข่ายที่ไม่เสถียร เช่น ระบบตรวจจับข้อมูลระยะไกล หรืออุปกรณ์ IoT ที่ใช้พลังงานต่ำ
หลักการทำงานของ MQTT
MQTT ใช้ สถาปัตยกรรมแบบ Publish/Subscribe (Pub/Sub) ซึ่งแตกต่างจากการสื่อสารแบบ Client-Server ทั่วไป ในระบบนี้ มีองค์ประกอบหลัก 3 ส่วน ได้แก่:
- Broker (ตัวกลาง)
- ทำหน้าที่เป็นเซิร์ฟเวอร์กลางที่รับและแจกจ่ายข้อความระหว่างอุปกรณ์ที่เชื่อมต่อ
- อุปกรณ์ทุกตัวต้องเชื่อมต่อกับ Broker เพื่อส่งหรือรับข้อมูล
- Publisher (ผู้ส่งข้อความ)
- เป็นอุปกรณ์ที่สร้างและส่งข้อมูลไปยัง Broker
- ข้อมูลจะถูกส่งไปในรูปแบบของ “Topic” ที่กำหนด เช่น
"sensor/temperature"
หรือ"smartHome/light"
- Subscriber (ผู้รับข้อความ)
- เป็นอุปกรณ์ที่สมัครรับข้อมูลจาก Topic ที่สนใจ
- ตัวอย่างเช่น อุปกรณ์ที่ต้องการรับข้อมูลอุณหภูมิ อาจสมัครรับข้อมูลจาก
"sensor/temperature"
กระบวนการทำงาน
- Publisher ส่งข้อมูลไปยัง Broker ตาม Topic ที่กำหนด
- Broker ทำหน้าที่กระจายข้อมูลไปยัง Subscriber ที่สมัครรับ Topic นั้นๆ
- Subscriber จะได้รับข้อมูลแบบเรียลไทม์โดยไม่ต้องร้องขอซ้ำๆ (ต่างจาก HTTP ที่ต้องมีการร้องขอแบบ Request/Response)

คุณสมบัติหลักของ MQTT
- มีขนาดแพ็กเกจเล็ก ใช้แบนด์วิดท์ต่ำ
- ทำให้เหมาะสำหรับอุปกรณ์ IoT ที่มีข้อจำกัดด้านพลังงานและเครือข่าย
- รองรับ QoS (Quality of Service) 3 ระดับ
- QoS 0 – At most once: ส่งข้อมูลครั้งเดียว ไม่มีการรับประกันว่าข้อมูลจะถูกส่งถึงปลายทาง
- QoS 1 – At least once: รับประกันว่าข้อมูลจะถูกส่งถึง Subscriber อย่างน้อยหนึ่งครั้ง
- QoS 2 – Exactly once: รับประกันว่าข้อมูลจะถูกส่งถึง Subscriber เพียงครั้งเดียวและไม่มีการซ้ำซ้อน
- ทำงานได้ในเครือข่ายที่ไม่เสถียร
- MQTT ถูกออกแบบมาให้สามารถทำงานในเครือข่ายที่มีแบนด์วิดท์ต่ำหรือเชื่อมต่อไม่เสถียร เช่น 3G/4G/5G หรือเครือข่าย LoRaWAN
- รองรับการทำงานแบบ Persistent Session
- อุปกรณ์ที่หลุดการเชื่อมต่อสามารถกลับมาเชื่อมต่อและรับข้อมูลต่อเนื่องได้
- รองรับการเข้ารหัสข้อมูล (SSL/TLS) และระบบยืนยันตัวตน
- MQTT สามารถเข้ารหัสข้อมูลด้วย SSL/TLS และรองรับการยืนยันตัวตนผ่าน Username/Password เพื่อเพิ่มความปลอดภัย
MQTT เทียบกับโปรโตคอลอื่นๆ
โปรโตคอล | ลักษณะ | เหมาะสำหรับ |
---|---|---|
MQTT | ใช้สถาปัตยกรรม Publish/Subscribe, ขนาดข้อมูลเล็ก | IoT, อุปกรณ์พลังงานต่ำ |
HTTP | ใช้สถาปัตยกรรม Client/Server, ใช้แบนด์วิดท์สูงกว่า | เว็บแอปพลิเคชัน |
CoAP | ใช้สำหรับอุปกรณ์ IoT เช่นกัน แต่มีขนาดแพ็กเกจใหญ่กว่า MQTT | อุปกรณ์ที่ต้องการรองรับ REST API |
AMQP | ใช้สำหรับการส่งข้อมูลที่มีความปลอดภัยสูงและซับซ้อน | ระบบที่ต้องการความปลอดภัยและการทำธุรกรรม |
การนำ MQTT ไปใช้งานจริง
MQTT ถูกนำไปใช้งานอย่างแพร่หลายในอุตสาหกรรมต่างๆ เช่น
- ระบบอัตโนมัติในบ้าน (Smart Home)
- ควบคุมไฟฟ้า สมาร์ทล็อค กล้องวงจรปิด และเซ็นเซอร์ต่างๆ ผ่าน MQTT
- ตัวอย่าง: เมื่อกดสวิตช์ไฟ MQTT จะส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อเปิด-ปิดไฟ
- ระบบอุตสาหกรรม (Industrial IoT – IIoT)
- ใช้ในโรงงานอุตสาหกรรมเพื่อตรวจสอบสถานะเครื่องจักรและส่งข้อมูลเซ็นเซอร์แบบเรียลไทม์
- การเกษตรอัจฉริยะ (Smart Agriculture)
- ใช้ MQTT ในระบบรดน้ำอัตโนมัติ โดยให้เซ็นเซอร์ส่งข้อมูลความชื้นของดินไปยังระบบควบคุม
- ระบบขนส่งและโลจิสติกส์ (Fleet Management)
- ใช้ MQTT ในการติดตามยานพาหนะ เช่น รถบรรทุก หรือระบบ GPS
- ระบบพลังงานอัจฉริยะ (Smart Energy)
- ใช้ MQTT ในโซลูชัน Smart Grid เพื่อตรวจสอบและควบคุมการใช้พลังงานในบ้านหรือโรงงาน
ข้อดีและข้อเสียของ MQTT
✅ ข้อดี
✔ ใช้แบนด์วิดท์ต่ำ ทำให้สามารถทำงานได้ดีในเครือข่ายที่จำกัด
✔ รองรับ QoS ทำให้มั่นใจได้ว่าข้อมูลจะถูกส่งไปยังปลายทาง
✔ รองรับการเชื่อมต่ออุปกรณ์จำนวนมาก
✔ มีระบบเข้ารหัสและยืนยันตัวตนเพื่อความปลอดภัย
❌ ข้อเสีย
✖ ต้องพึ่งพา Broker หาก Broker ล่ม ระบบจะไม่สามารถรับส่งข้อมูลได้
✖ ต้องมีการตั้งค่าระบบรักษาความปลอดภัยเพิ่มเติม เช่น SSL/TLS
✖ ไม่รองรับการสื่อสารแบบเรียลไทม์ที่ต้องการ Latency ต่ำมาก (เช่น ระบบ Streaming)
สรุป
MQTT เป็น โปรโตคอลที่เหมาะสมอย่างยิ่งสำหรับ IoT และระบบที่ต้องการส่งข้อมูลขนาดเล็กด้วยพลังงานต่ำ ด้วยสถาปัตยกรรมแบบ Publish/Subscribe ที่ช่วยลดปริมาณการรับส่งข้อมูล ทำให้สามารถรองรับอุปกรณ์ IoT จำนวนมากได้อย่างมีประสิทธิภาพ
แม้ว่า MQTT จะมีข้อจำกัดบางอย่าง เช่น ต้องใช้ Broker เป็นตัวกลาง แต่ด้วยความสามารถในการรองรับการสื่อสารในเครือข่ายที่มีข้อจำกัด ทำให้ MQTT ยังคงเป็น หนึ่งในโปรโตคอลยอดนิยมสำหรับระบบอัจฉริยะและ IoT ทั่วโลก