Example-MQTT

Research and application protocol MQTT for systems and MCUs

View on GitHub

Example MQTT for MCUs

note : tổng hợp tài liệu và code ví dụ phát triển MQTT trên vi điều khiển .

alt text

Khái niệm cơ bản về MQTT

note : đọc lại tài liệu và nắm rõ về giao thức mạng TCP/IP .

Kiến trúc bậc cao của MQTT gồm BrokerClient .

Cơ chế hoạt động cụ thể của Publisher và Subscribe

Qos ( Qualities of service ) .

note : QoS levels càng cao thì càng tin cậy hơn , nhưng delay sẽ lâu hơn và có yêu cầu băng thông cao hơn.

  1. QoS0 : Broker / client sẽ gửi dữ liệu đúng 1 lần . quá trình gửi đc sác nhận bởi giao thức TCP/IP
  2. QoS1 : Broker / client sẽ gửi dữ liệu với ít nhất 1 lần sác nhận từ đầu kia
  3. Qos2 : Broker / client đảm bảo khi gửi dữ liệu thì phía nhận đc đúng 1 lần , quá trình này phải trải qua 4 bước bắt tay .

alt text

alt text

Một gói tin data có thể đc client gửi ở bất kì levels QoS nào . các client có thể đăng ký nhận data ở bất kỳ levels QoS , ví dụ A gửi data bằng phương thức QoS2 vào kênh , thì B có thể nhận data bằng QoS0 hoặc bất kỳ .

alt text

alt text

Retained Messages (Flag)

note : tất cả các messages có thể thiết lập đc giữ lại , điều này có nghĩa là broker sẽ giữ lại messages ngay cả khi nó đã đc gửi cho các client

MQTT Bridge

note : MQTT Bridge là một tính năng của MQTT cho phép các MQTT Broker có thể tạo cầu nối (bridge) kết nối với nhau để chao đổi dữ liệu , cần 2 broker để tạo cầu nối , trong đó một broker bất kỳ đc cấy hình thành Bridge , cần những thông số sau :

Tài liệu tham khảo

  1. https://www.eclipse.org/community/eclipse_newsletter/2014/february/article2.php
  2. https://arduino.esp8266.vn/network/mqtt.html
  3. https://github.com/mqtt/mqtt.github.io/wiki
  4. http://www.steves-internet-guide.com/mqtt/

Project MQTT for Esp8266

  1. https://iotdesignpro.com/projects/how-to-connect-esp8266-with-mqtt
  2. https://pubsubclient.knolleary.net/index.html
  3. https://medium.com/@flespi/how-to-connect-esp8266-to-secure-mqtt-broker-know-it-all-and-get-it-done-approach-c33b94f37d88