PicoMQTT : ไลบรารี MQTT Client/Broker สำหรับ ESP8266 และ ESP32

PicoMQTT เป็นไลบรารี MQTT ที่มีน้ำหนักเบา (lightweight) สำหรับ Arduino/PlatformIO เหมาะสำหรับนำใช้งานกับ ESP8266 และ ESP32, รองรับโหมด MQTT Client และโหมด MQTT Broker ซึ่งทำให้ ESP8266 หรือ ESP32 สามารถเปลี่ยนเป็นเกตเวย์ MQTT แทน Raspberry Pi หรืออุปกรณ์เกตเวย์ IoT

ไลบรารีนี้เป็นไปตามข้อกำหนดของ MQTT 3.1.1 รองรับการ Publish และการใช้ส่งข้อความที่มีขนาดใดก็ได้ สามารถส่งข้อความเป็นพันต่อวินาที และรองรับการใช้งานร่วมกับกับไลบรารี ArduinoJson เพื่อ publish และใช้งานข้อความ JSON

PicoMQTT ESP8266 MQTT Broker

ตัวอย่างโคัด MQTT Broker:


การใช้งานมีข้อจำกัดบางประการเนื่องจากทรัพยากรค่อนข้างจำกัดใน ESP8266 และ ESP32 โดยเฉพาะอย่างยิ่ง:

  • Client รองรับเฉพาะ MQTT QoS ระดับ 0 และ 1
  • Broker รองรับเฉพาะ MQTT QoS ระดับ 0, ไม่รับประกันว่าข้อความจะถูกส่งถึงผู้รับใดๆ เลยหรือไม่, ถ้าไม่มีผู้รับข้อความอาจเก็บข้อความไว้หรือลบทิ้งก็ได้

ข้อเสียอีกอย่างที่นักพัฒนาได้เน้นคือรองรับเฉพาะบอร์ด ESP8266 และ ESP32

นักพัฒนาซอฟต์แวร์ Michał Leśniewski บอกกับ Hackster.ioว่า PicoMQTT ไม่มีฟีเจอร์ทั้งหมดที่ Mosquitto มี และช้ากว่า Raspberry Pi มาก แต่ก็เพียงสำหรับอุปกรณ์ไม่กี่ตัวที่ไม่ได้ส่งข้อความจำนวนมาก เขาพบว่าการตั้งค่าของตัวเองกับบอร์ด ESP สองสามตัวนั้นเสถียรมาก สามารถหา source code, คู่มือการใช้งาน และตัวอย่าง benchmark บน GitHub ทั้งหมดอยู่ภายใต้ License GNU LGPLv3

ESP8266 PicoMQTT Benchmark
PicoMQTT Benchmark กับ ESP8266

การทดสอบ Benchmark ประกอบด้วยบอร์ด ESP ในโหมด Broker และเครื่องคอมพิวเตอร์พีซีส่งข้อความจำนวนมากพร้อมพารามิเตอร์ที่แตกต่างกัน สิ่งที่แปลกจริงๆ คือ ESP8266 สามารถจัดการข้อความจำนวนหลายพันข้อความต่อวินาทีสำหรับ payload ขนาดเล็ก (<=10 ไบต์) โดยใช้ consumer  สูงสุด 5 คน แต่ ESP32 เจอปัญหามากกว่าและสามารถจัดการข้อความได้หลายร้อยข้อความต่อวินาที หรือน้อยกว่านั้น ภายใต้เงื่อนไขเดียวกัน

ESP32 PicoMQTT Benchmark
PicoMQTT Benchmark กับ ESP32

แปลจากบทความภาษาอังกฤษ : PicoMQTT – An MQTT Client/Broker library for ESP8266 and ESP32

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