MQTT คืออะไร?
23 Apr 2025, by Uncategorized inMQTT หรือชื่อเต็มว่า Message Queuing Telemetry Transport คือโปรโตคอลสำหรับการส่งข้อความที่ถูกออกแบบมาเป็นพิเศษเพื่อใช้งานในเครือข่ายที่มีข้อจำกัด เช่น ความเร็วต่ำ สัญญาณไม่เสถียร หรือมีแบนด์วิธจำกัด โดยเฉพาะในระบบ Internet of Things (IoT) ที่อุปกรณ์มักอยู่ในพื้นที่ห่างไกลหรือใช้พลังงานต่ำ
ด้วยคุณสมบัติที่สามารถรับมือกับเครือข่ายที่ไม่เสถียรได้ดี ทำให้ MQTT เหมาะอย่างยิ่งกับการสื่อสารระหว่างเครื่องจักรและอุปกรณ์ในระบบอุตสาหกรรม ที่ต้องการส่งข้อมูลอย่างต่อเนื่อง แต่ใช้พลังงานและทรัพยากรระบบเพียงเล็กน้อย
รูปแบบการทำงานของ MQTT
การทำงานของ MQTT อาศัยรูปแบบ Publisher / Subscriber โดยมีตัวกลางที่เรียกว่า Broker เป็นผู้ควบคุมการส่งข้อมูล
• อุปกรณ์ฝั่งผู้ส่งจะ “Publish” ข้อมูลขึ้นไปยัง Broker
• ผู้ที่ต้องการข้อมูลเฉพาะด้าน (Topic) จะต้องทำการ Subscribe เพื่อให้ระบบส่งข้อมูลในหัวข้อนั้นให้อัตโนมัติ
• เมื่อมีข้อมูลใหม่ในหัวข้อนั้น ผู้ที่ Subscribe ไว้จะได้รับข้อมูลจาก Broker โดยอัตโนมัติ
กล่าวง่าย ๆ คือ ผู้ส่งกับผู้รับไม่ได้เชื่อมต่อกันโดยตรง แต่สื่อสารกันผ่านตัวกลาง ซึ่งช่วยให้ระบบมีความFlexible และรองรับอุปกรณ์จำนวนมากได้อย่างมีประสิทธิภาพ
MQTT ในระบบ IoT และ IIoT
ปัจจุบัน MQTT ได้รับความนิยมอย่างแพร่หลายในทั้งระบบ IoT และ IIoT ไม่ว่าจะเป็นการสื่อสารระหว่างอุปกรณ์หน้างาน การส่งข้อมูลจากเซนเซอร์ ไปจนถึงการเชื่อมต่อกับระบบ Cloud เพื่อวิเคราะห์และประมวลผลข้อมูลแบบเรียลไทม์ ไม่ว่าจะเป็นอุตสาหกรรมการผลิต พลังงาน ระบบสมาร์ทโฮม หรือระบบขนส่งอัจฉริยะ MQTT ก็สามารถตอบโจทย์การสื่อสารข้อมูลที่ต้องการความเร็ว ประหยัด และความเสถียรได้อย่างดีเยี่ยม
1. MQTT stand for?
MQTT หรือชื่อเต็มว่า Message Queuing Telemetry Transport คือโปรโตคอลการสื่อสารที่มีโครงสร้างเรียบง่าย ใช้งานไม่ซับซ้อน และใช้ทรัพยากรระบบน้อย โดยทำงานในรูปแบบ Publish/Subscribe ซึ่งเหมาะอย่างยิ่งสำหรับอุปกรณ์หรือเครือข่ายที่มีข้อจำกัด เช่น เครือข่ายที่มีความหน่วงสูง แบนด์วิดท์ต่ำ หรือไม่เสถียร โปรโตคอลนี้ถูกออกแบบมาเพื่อลดการใช้แบนด์วิดท์และพลังงานของอุปกรณ์ พร้อมทั้งรองรับความปลอดภัยในการรับส่งข้อมูลอย่างมีประสิทธิภาพ จุดเด่นเหล่านี้ทำให้ MQTT เหมาะสำหรับการใช้งานในระบบ M2M (Machine-to-Machine) และ IoT (Internet of Things) ซึ่งมักต้องคำนึงถึงข้อจำกัดของแบตเตอรี่และความเร็วในการเชื่อมต่อเป็นหลัก
2. MQTT Topic คืออะไร?
ในโปรโตคอล MQ Telemetry Transport (MQTT) อุปกรณ์ IoT ที่มีทรัพยากรจำกัดสามารถส่งข้อมูล หรือ “publish” ไปยังหัวข้อ (topic) เฉพาะบนเซิร์ฟเวอร์ที่ทำหน้าที่เป็น MQTT broker จากนั้น broker จะส่งข้อมูลนั้นต่อไปยังผู้ใช้งานหรือระบบอื่น ๆ ที่ได้ “subscribe” หัวข้อนั้นไว้ล่วงหน้า
สำหรับผู้ใช้งาน หัวข้อของ MQTT จะมีลักษณะคล้ายกับโฟลเดอร์ย่อยในคอมพิวเตอร์ที่จัดเรียงตามลำดับขั้น ซึ่งสามารถเลือก subscribe ได้ทั้งในระดับเฉพาะ หรือใช้ตัวแทน (wildcard) เพื่อรับข้อมูลจากหลายระดับได้พร้อมกัน
MQTT เป็นทางเลือกที่เหมาะสำหรับเครือข่ายไร้สายที่มีความหน่วงแฝงสูงหรือการเชื่อมต่อที่ไม่เสถียร หากการเชื่อมต่อระหว่างผู้รับข้อมูล (Subscriber) กับ broker ขาดหาย ระบบจะเก็บข้อความไว้และส่งให้เมื่อกลับมาออนไลน์อีกครั้ง และหากผู้ส่ง (Publisher) หลุดจากระบบโดยไม่แจ้งล่วงหน้า Broker ก็สามารถจัดการตัดการเชื่อมต่อนั้น พร้อมส่งข้อความสุดท้ายที่เก็บไว้ไปยังผู้รับ พร้อมคำแนะนำหรือข้อมูลจากผู้ส่งได้เช่นกัน
3. MQTT Broker คืออะไร?

MQTT Broker คือศูนย์กลางของโปรโตคอลแบบ Publish/Subscribe ซึ่งสามารถรองรับการเชื่อมต่อจาก MQTT clients ได้พร้อมกันจำนวนมากถึงหลายพันราย ขึ้นอยู่กับลักษณะการใช้งานของแต่ละระบบ
Broker จะทำหน้าที่รับข้อความทั้งหมดจากผู้ส่ง (หรือ Publisher) แล้วทำการกรองข้อความ ตรวจสอบว่าใครได้ทำการสมัครรับข้อความนั้น (Subscribe) ไว้ จากนั้นจึงส่งต่อข้อความไปยัง Client ที่เกี่ยวข้องอย่างถูกต้อง
นอกจากนี้ Broker ยังมีบทบาทในการจัดเก็บข้อมูลของการเชื่อมต่อ (Session) ของ Client ที่เชื่อมต่อแบบ Persistent ซึ่งรวมถึงข้อมูลการสมัครรับข้อมูล (Subscribe) และข้อความที่อาจสูญหายระหว่างที่ลูกค้าออฟไลน์
อีกหนึ่งหน้าที่สำคัญของ Broker คือการดูแลเรื่องความปลอดภัย โดยสามารถจัดการ การยืนยันตัวตน (Authentication) และ การกำหนดสิทธิ์การเข้าถึง (Authorization) ข้อมูลได้อย่างมีประสิทธิภาพ โดยทั่วไปแล้ว Broker สามารถปรับขยายความสามารถได้ตามความต้องการ เช่น การตั้งค่าการเข้าถึงเฉพาะรายบุคคล และสามารถเชื่อมต่อกับระบบ backend (ระบบหลังบ้าน) ได้อย่างยืดหยุ่น
การเชื่อมโยงกับระบบ backend ถือเป็นสิ่งจำเป็นอย่างยิ่ง เพราะ Broker มักเป็นตัวกลางที่เปิดให้เชื่อมต่อผ่านอินเทอร์เน็ตโดยตรง รองรับการใช้งานจากลูกค้าจำนวนมาก และต้องสามารถส่งต่อข้อความไปยังระบบวิเคราะห์และประมวลผลข้อมูลที่อยู่เบื้องหลังได้อย่างมีประสิทธิภาพ
กล่าวโดยรวมแล้ว Broker เปรียบเสมือนศูนย์กลางหลักที่ทุกข้อความต้องผ่าน ก่อนที่จะส่งไปยังผู้รับ ดังนั้นจึงจำเป็นที่ Broker จะต้องมีความเสถียรสูง สามารถขยายระบบได้ตามการเติบโตของการใช้งาน เชื่อมต่อกับระบบ backend ได้ง่าย มีระบบมอนิเตอร์ที่สะดวก และสำคัญที่สุดคือต้องรองรับการใช้งานที่มีประสิทธิภาพสูง
ตัวอย่างของ MQTT Broker ที่ได้รับความนิยมในภาคอุตสาหกรรม ได้แก่ HiveMQ MQTT Broker และ Mosquitto จากบริษัท Cedalo ขณะเดียวกันผู้ให้บริการคลาวด์รายใหญ่อย่าง Microsoft และ Amazon ก็มีบริการ MQTT Broker ของตนเอง ได้แก่ Azure IoT Hub และ AWS IoT Core
4. MQTT Payload คืออะไร?
ข้อความ (Messages) ในระบบ MQTT จะถูกส่งต่อไปยังอุปกรณ์หรือซอฟต์แวร์อื่น ๆ ผ่าน Broker โดยทุกข้อความจะมี หัวข้อ (Topic) ที่ใช้กำหนดเส้นทางการประมวลผลของข้อความนั้น ๆ ต่อไป นอกจากนี้ในแต่ละข้อความยังมี เนื้อหาของข้อความ ที่เรียกว่า Payload
MQTT Payload ไม่มีข้อกำหนดเกี่ยวกับโครงสร้างที่ต้องใช้ ซึ่งหมายความว่าสามารถออกแบบรูปแบบของ Payload ได้ตามต้องการ อย่างไรก็ตาม การกำหนดโครงสร้างที่ชัดเจนสำหรับ Payload จะช่วยให้อุปกรณ์หรือซอฟต์แวร์อื่น ๆ สามารถอ่านและเข้าใจข้อมูลได้อย่างถูกต้อง
ตัวอย่างของโครงสร้างข้อมูลที่มักนิยมใช้ใน MQTT Payload ได้แก่ JSON, XML หรือ OPC UA การเลือกใช้รูปแบบข้อมูลที่ชัดเจนจะช่วยให้การสื่อสารภายในระบบเป็นไปอย่างราบรื่น เพราะทุกอุปกรณ์และซอฟต์แวร์จะสามารถเข้าใจข้อมูลที่ส่งมาได้ง่ายๆ เช่น การใช้รูปแบบข้อมูลที่มีมาตรฐานอย่าง JSON, XML, หรือ OPC UA ซึ่งช่วยให้การแลกเปลี่ยนข้อมูลระหว่างระบบต่างๆ ไม่เกิดความสับสนและทำงานได้ถูกต้อง
5. MQTT Client คืออะไร และทำงานอย่างไร?
อุปกรณ์และซอฟต์แวร์ทั้งหมดที่มีการเชื่อมต่อกับ MQTT Broker ไม่ว่าจะทางใดทางหนึ่ง เช่น OPC Router จะถูกเรียกรวมกันว่า MQTT Client โดย Client เหล่านี้สามารถ ส่งข้อความไปยัง Broker และ รับข้อความจาก Broker ได้
เมื่อ Client ต้องการส่งข้อความไปยัง Broker จะต้องระบุหัวข้อ (MQTT Topic) ด้วยเสมอ เพื่อให้สามารถจัดการหรือประมวลผลข้อมูลต่อได้อย่างเหมาะสม
การส่งข้อความสามารถระบุ ระดับคุณภาพของการให้บริการ (Quality of Service หรือ QoS) ได้ตามระดับต่าง ๆ ดังนี้:
- QoS 0: ข้อความจาก Client จะถูกส่งไปยัง Broker เพียงครั้งเดียว ไม่ว่าข้อความจะไปถึงหรือไม่
- QoS 1: ข้อความจาก Client จะถูกส่งซ้ำ ๆ จนกว่า Broker จะตอบรับว่าได้รับข้อความแล้ว ซึ่งอาจทำให้ Broker ได้รับข้อความซ้ำหลายครั้ง
- QoS 2: ข้อความจาก Client จะถูกส่งเพียงครั้งเดียว และมีการยืนยันร่วมกันว่าข้อความถึง Broker แน่นอน โดยระดับนี้จะใช้แบนด์วิดท์มากกว่าระดับ 0 และ 1
ในขณะเดียวกัน MQTT Client ก็สามารถ subscribe หัวข้อจาก Broker ได้ เพื่อให้ Broker ส่งข้อมูลที่เกี่ยวข้องกับหัวข้อนั้นให้โดยอัตโนมัติ เช่น หัวข้อ plant1/hall1/temperature ซึ่งเป็นข้อมูลอุณหภูมิของพื้นที่ hall1 ใน plant1
นอกจากนี้ยังสามารถใช้ wildcards (ตัวแทน) เพื่อ subscribe ข้อมูลจากหลายหัวข้อพร้อมกัน เช่น
- หัวข้อ plant1/hall1/# จะรับข้อมูลทุกชนิดจาก hall1
- หัวข้อ plant1/+/temperature จะรับข้อมูลอุณหภูมิจากทุก hall ที่อยู่ภายใต้ plant1
MQTT Client ยังมีฟีเจอร์ที่เรียกว่า “Last Will” ซึ่งเป็นข้อความที่ Client ตั้งค่าไว้ล่วงหน้า หากการเชื่อมต่อกับ Broker หายไปหรือเกิดข้อผิดพลาด ระบบจะส่งข้อความนี้ไปยัง Broker เพื่อแจ้งเตือนว่าเกิดปัญหากับการเชื่อมต่อ และสามารถส่งการแจ้งเตือนไปยังผู้ใช้งานได้ทันที
6. เราควรใช้ MQTT เมื่อไหร่?
MQTT (เอ็มคิวทีที) เป็นเทคโนโลยีสำหรับส่งข้อมูลจากอุปกรณ์หรือเครื่องจักรจำนวนมากไปยังจุดศูนย์กลาง เช่น “คลาวด์” หรือระบบจัดเก็บข้อมูลออนไลน์ เพื่อให้สามารถนำข้อมูลเหล่านั้นไปวิเคราะห์หรือใช้งานต่อได้
ในระบบนี้จะมีตัวกลางที่เรียกว่า MQTT Broker ทำหน้าที่เป็นศูนย์กลางในการรับและส่งข้อมูลระหว่างอุปกรณ์ต่าง ๆ โดยอุปกรณ์จะไม่สื่อสารกันโดยตรง แต่จะสื่อสารผ่าน Broker แทน
ข้อมูลที่ส่งผ่าน MQTT จะถูกจัดกลุ่มเป็น “หัวข้อ” (Topic) ซึ่งผู้ใช้งานสามารถเลือก “ติดตาม” ได้ตามความสนใจ โดยใช้หลักการของระบบ Publish/Subscribe เช่น หากเครื่องปรับอากาศส่งข้อมูลเกี่ยวกับสถานะของคอมเพรสเซอร์ขึ้นไปยังคลาวด์ บุคคลหรือระบบที่ได้รับสิทธิ์ เช่น วิศวกรฝ่ายซ่อมบำรุง ระบบจัดซื้ออะไหล่ หรือซอฟต์แวร์บริหารการบำรุงรักษา ก็สามารถสมัครรับข้อมูลจากหัวข้อนั้นได้โดยอัตโนมัติ
การสื่อสารแบบนี้ทำให้สามารถติดตามสถานะของเครื่องจักรได้แบบเรียลไทม์ ช่วยให้ตรวจพบปัญหาได้ล่วงหน้า วางแผนการดูแลรักษาได้มีประสิทธิภาพมากขึ้น ลดต้นทุน และเพิ่มประสิทธิภาพของการทำงาน ซึ่งทั้งหมดนี้คือหัวใจสำคัญของแนวคิด Internet of Things (IoT) ในปัจจุบัน
เชื่อมต่อระบบของคุณผ่าน MQTT ทดลองใช้ OPC Router กับปลั๊กอิน MQTT ฟรี
Click Test MQTT connection for free
7. MQ Telemetry Transport (MQTT) ในระบบ Internet of Things (IoT) ใช้ทำอะไร?
ในระบบ MQTT คำว่า Topic หมายถึงสตริงข้อความที่เขียนในรูปแบบ UTF-8 ซึ่งจะถูกใช้โดย Broker (ตัวกลาง) เพื่อกรองข้อความและส่งไปยังลูกค้าที่เชื่อมต่ออยู่ โดยหัวข้อ (Topic) สามารถมีได้หลายระดับ และแต่ละระดับจะถูกคั่นด้วยเครื่องหมายทับ (/) ซึ่งทำหน้าที่แยกระดับของหัวข้อ
เมื่อเปรียบเทียบกับระบบคิวข้อความอื่นๆ หัวข้อใน MQTT ถือว่ามีความเรียบง่ายมาก เพราะลูกค้าไม่จำเป็นต้องสร้างหัวข้อล่วงหน้าเพื่อทำการส่งข้อมูล (publish) หรือสมัครรับข้อมูล (subscribe) โดย Broker จะยอมรับหัวข้อใดๆ ที่ถูกต้องโดยไม่จำเป็นต้องตั้งค่าล่วงหน้า
สิ่งที่ควรรู้คือ หัวข้อแต่ละหัวข้อต้องประกอบด้วยอย่างน้อยหนึ่งตัวอักษร และสามารถมีช่องว่างได้ หัวข้อยังแยกการใช้ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กด้วย เช่น myhome/temperature และ MyHome/Temperature จะถือเป็นหัวข้อคนละอัน นอกจากนี้ เครื่องหมายทับ (/) เพียงตัวเดียวก็สามารถใช้เป็นหัวข้อที่ถูกต้องได้เช่นกัน
โดยทั่วไปแล้ว คุณสามารถตั้งชื่อหัวข้อ MQTT ได้ตามต้องการ แต่มีข้อยกเว้นคือ
1. หัวข้อที่ขึ้นต้นด้วยเครื่องหมาย $ จะมีวัตถุประสงค์ที่แตกต่างออกไป
2. หัวข้อเหล่านี้จะไม่ถูกรวมอยู่ในการสมัครรับข้อมูลหากคุณสมัครหัวข้อด้วยตัวแทนแบบหลายระดับ (multi-level wildcard) เช่น #
3. หัวข้อที่ขึ้นต้นด้วย $ เป็นหัวข้อพิเศษที่ใช้สำหรับข้อมูลภายในของตัวกลาง MQTT ซึ่งลูกค้า (client) ไม่สามารถส่งข้อความไปยังหัวข้อเหล่านี้ได้
ในปัจจุบันยังไม่มีมาตรฐานอย่างเป็นทางการสำหรับหัวข้อแบบนี้ แต่โดยทั่วไปแล้ว จะใช้ $SYS/ เป็นคำนำหน้าสำหรับข้อมูลต่างๆ เหล่านี้ อย่างไรก็ตาม การใช้งานจริงอาจแตกต่างกันไปตามแต่ละผู้ให้บริการ MQTT broker
คำแนะนำสำหรับหัวข้อที่ขึ้นต้นด้วย $SYS สามารถดูได้จากเอกสารใน GitHub Wiki ของ MQTT/
8. วิธีการเริ่มต้นใช้งาน MQTT แบบง่ายๆ
ถ้าคุณอยากเริ่มต้นใช้งาน MQTT ได้อย่างรวดเร็วและไม่ยุ่งยาก ขอแนะนำให้ใช้ HiveMQ ซึ่งเป็นซอฟต์แวร์ที่ทำหน้าที่เป็น “ตัวกลาง” สำหรับรับส่งข้อมูลระหว่างอุปกรณ์ต่างๆ ผ่านระบบอินเทอร์เน็ต
HiveMQ พัฒนาขึ้นตามมาตรฐานของระบบ IoT และสามารถเชื่อมต่อกับอุปกรณ์หรือซอฟต์แวร์ที่รองรับ MQTT ได้หลากหลาย ทำให้เหมาะมากสำหรับระบบที่ต้องการส่งข้อมูลแบบรวดเร็ว ประหยัดพลังงาน และเชื่อถือได้
MQTT เองเป็นระบบส่งข้อความที่ใช้งานง่าย โดยใช้รูปแบบ “ใครส่งก็ได้ ใครอยากรับก็สมัครไว้” ซึ่งเหมาะกับอุปกรณ์อย่างเช่น เซ็นเซอร์เล็กๆ มือถือ ไมโครคอนโทรลเลอร์ หรือคอมพิวเตอร์ฝังตัวในเครื่องจักร
นอกจากนี้ หากคุณใช้งานร่วมกับ OPC Router (เครื่องมือที่ใช้เชื่อมระบบต่างๆ เข้าด้วยกัน) ก็จะสามารถตั้งค่าการเชื่อมต่อและดูข้อมูลได้ง่ายยิ่งขึ้น สามารถดาวน์โหลด HiveMQ มาทดลองใช้งานได้ ฟรีจากเว็บไซต์ของ HiveMQ แล้วลองเชื่อมต่อกับอุปกรณ์หรือระบบได้เลย
Sorry, the comment form is closed at this time.