เจาะลึก Eclipse Mosquitto: MQTT Broker สำหรับระบบ IoT

ในยุคของ IoT (Internet of Things) ที่อุปกรณ์ต่าง ๆ เช่น Arduino, Raspberry Pi หรือ ESP32 ต้องสื่อสารกันอยู่ตลอดเวลา “โปรโตคอล MQTT” กลายเป็นหัวใจสำคัญ และหนึ่งในเครื่องมือที่ได้รับความนิยมมากที่สุดก็คือ Eclipse Mosquitto

Eclipse Mosquitto เป็น MQTT Broker แบบโอเพ่นซอร์ส ทำหน้าที่เป็น “ตัวกลาง” สำหรับรับและกระจายข้อมูลระหว่างอุปกรณ์ต่าง ๆ ในระบบ โดยใช้รูปแบบการสื่อสารแบบ Publish/Subscribe ซึ่งช่วยลดความซับซ้อนในการเชื่อมต่อระหว่างอุปกรณ์จำนวนมาก ปัจจุบัน Eclipse Mosquitto รองรับมาตรฐาน MQTT เวอร์ชัน 3.1, 3.1.1 และ 5.0 ซึ่งเวอร์ชัน 5.0 มีฟีเจอร์เพิ่มเติม เช่น Reason Code, User Properties และ Message Expiry

Mosquitto MQTT

หลักการทำงานของ Mosquitto MQTT:

  • Device A → ส่งข้อมูล (Publish) ไปยัง topic เช่น /temperature
  • Mosquitto → รับข้อมูลและจัดการกระจาย
  • Device B → Subscribe topic เดียวกันเพื่อรับข้อมูล

แนวคิดนี้ช่วยให้ระบบ “แยกส่วน (Decoupling)” ทำให้เพิ่ม/ลดอุปกรณ์ได้ง่าย

เหตุผลที่ Mosquitto ได้รับความนิยม

  • ติดตั้งง่าย ใช้งานสะดวก รองรับหลายแพลตฟอร์ม เช่น Linux, Windows และ macOS รวมถึงบอร์ดยอดนิยมอย่าง Raspberry Pi ทำให้เริ่มต้นใช้งานได้เร็วมาก
  • เบาและเร็ว Mosquitto ถูกออกแบบมาให้ใช้ทรัพยากรต่ำ (Low footprint) จึงเหมาะกับอุปกรณ์ embedded หรือ edge device ที่มีข้อจำกัดด้านหน่วยความจำและ CPU
  • รองรับมาตรฐาน MQTT อย่างครบถ้วน รองรับ QoS (Quality of Service) หลายระดับ QoS 0 – ส่งแบบไม่ยืนยัน, QoS 1 – ส่งอย่างน้อย 1 ครั้ง, QoS 2 – ส่งแบบรับประกันไม่ซ้ำ ช่วยให้เลือกความน่าเชื่อถือของข้อมูลได้ตามลักษณะงาน
  • Open-source และปรับแต่งได้ ผู้พัฒนาสามารถแก้ไข ปรับแต่ง หรือรวมเข้ากับระบบอื่นได้อย่างอิสระ อีกทั้งยังมี community รองรับจำนวนมาก
  • รองรับความปลอดภัย (Security) สามารถใช้งานร่วมกับ Username/Password Authentication,  TLS/SSL Encryption และ Access Control (ACL) ทำให้สามารถนำไปใช้ในระบบที่ต้องการความปลอดภัยสูงได้

การตั้งค่า Eclipse Mosquitto เบื้องต้นสามารถเริ่มจากไฟล์ config หลัก:


โดยควรกำหนดระบบยืนยันตัวตน (Authentication) ด้วยการสร้าง password:


แก้ config:


นอกจากนี้ใน Mosquitto เวอร์ชัน 2.x จำเป็นต้องกำหนด listener (เช่น port 1883) :


หากไม่กำหนด จะเชื่อมต่อได้เฉพาะ localhost เท่านั้น

แม้ Mosquitto จะไม่มี GUI ในตัว แต่สามารถใช้งานร่วมกับเครื่องมือภายนอกอย่าง MQTTX, MQTT Explorer หรือ Node-RED Dashboard ได้ อีกทั้งยังรองรับการติดตั้งผ่าน Docker, Linux package (apt, yum) หรือ Cloud platform เช่น Websoft9 ที่ช่วยให้ติดตั้งและจัดการผ่าน Console ได้สะดวก อย่างไรก็ตาม ปัญหาที่พบบ่อย ได้แก่ Docker error “Address not available” ซึ่งมักเกิดจากไม่ได้ตั้ง listener หรือมีการใช้พอร์ตซ้ำ รวมถึงปัญหาการเชื่อมต่อจากภายนอกที่ควรตรวจสอบ firewall, port 1883 และการตั้งค่า authentication ให้ถูกต้อง

Eclipse Mosquitto MQTT

Eclipse Mosquitto ถูกนำไปใช้งานอย่างแพร่หลายในหลายอุตสาหกรรม เนื่องจากรองรับการสื่อสารระหว่างอุปกรณ์จำนวนมากได้อย่างมีประสิทธิภาพ ตั้งแต่โปรเจกต์ขนาดเล็กไปจนถึงระบบองค์กร โดยถูกใช้ใน Smart Home สำหรับควบคุมอุปกรณ์ภายในบ้าน, Smart Agriculture สำหรับตรวจวัดและควบคุมระบบอัตโนมัติ, Industrial IoT (IIoT) สำหรับมอนิเตอร์เครื่องจักรแบบเรียลไทม์ และ Smart City สำหรับโครงสร้างพื้นฐาน เช่น ไฟถนนและเซ็นเซอร์สิ่งแวดล้อม อีกทั้งยังมีการใช้งานจริงในระบบควบคุมผ่านมือถือ ระบบแจ้งเตือน Dashboard IoT ที่ทำงานร่วมกับ Node-RED และ Grafana รวมถึงการติดตามสถานะอุปกรณ์ (Device Monitoring), Data Logging, การอัปเดตเฟิร์มแวร์ระยะไกล (OTA) และการเชื่อมต่อข้อมูลจาก Edge ไปยัง Cloud ซึ่งทั้งหมดนี้แสดงให้เห็นว่า Mosquitto เป็นเครื่องมือสำคัญที่ช่วยให้การพัฒนาระบบ IoT มีความยืดหยุ่น มีประสิทธิภาพ และขยายระบบได้ในอนาคต

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
โฆษณา