Cơ bản về giao thức MQTT

  • Th11, T2, 2024
  • IOT
  • 0
  • 0 views
  • 9 minutes Read

Giao thức MQTT (Message Queuing Telemetry Transport) là một giao thức nhẹ dành cho truyền tải tin nhắn trong môi trường IoT (Internet of Things). MQTT được thiết kế để dễ dàng triển khai trong các tình huống mà băng thông hạn chế hoặc độ trễ cao.

Phụ lục nội dung

Giao thức MQTT là gì?

MQTT là một giao thức nhắn tin dựa trên các tiêu chuẩn hoặc một bộ các quy tắc được sử dụng cho việc giao tiếp máy với máy. Cảm biến thông minh, thiết bị đeo trên người và các thiết bị Internet vạn vật (IoT) khác thường phải truyền và nhận dữ liệu qua mạng có tài nguyên và băng thông hạn chế. Các thiết bị IoT này sử dụng MQTT để truyền dữ liệu vì giao thức này dễ triển khai và có thể giao tiếp dữ liệu IoT một cách hiệu quả. MQTT hỗ trợ nhắn tin giữa các thiết bị với đám mây và từ đám mây đến thiết bị.

Giao thức MQTT

Đặc điểm của giao thức MQTT

Chạy trên mô hình Client-Server: MQTT sử dụng mô hình Publisher-Subscriber. Các thiết bị (clients) có thể gửi (publish) hoặc nhận (subscribe) thông điệp từ một máy chủ trung tâm gọi là broker.

Nhẹ và hiệu quả: Giao thức này được thiết kế để tiêu tốn ít băng thông và năng lượng, rất phù hợp cho các thiết bị IoT có tài nguyên hạn chế.

Có thể kết nối nhiều thiết bị trong mạng và môi trường kết nối mạng không ổn định.

Chất lượng dịch vụ (QoS): MQTT hỗ trợ ba cấp độ QoS, cho phép quản lý độ tin cậy trong việc truyền tải tin nhắn:

  • QoS 0: Gửi một lần, không đảm bảo.
  • QoS 1: Gửi ít nhất một lần, đảm bảo tin nhắn đến đích.
  • QoS 2: Gửi đúng một lần, đảm bảo không có tin nhắn trùng lặp.

Thời gian kết nối: MQTT cho phép các client kết nối và ngắt kết nối linh hoạt, giúp tiết kiệm tài nguyên.

Chủ đề (Topics): Tin nhắn được tổ chức theo chủ đề, cho phép client đăng ký để nhận các thông điệp liên quan đến một chủ đề cụ thể.

Nguyên lý hoạt động MQTT

  1. Máy khách MQTT thiết lập kết nối với trình truyền tải MQTT.
  2. Sau khi được kết nối, máy khách có thể xuất bản thông điệp, đăng ký nhận các thông điệp cụ thể hoặc thực hiện cả hai.
  3. Khi trình truyền tải MQTT nhận được một thông điệp, trình truyền tải sẽ chuyển thông điệp đó đến những nơi nhận thông điệp quan tâm.

Chủ đề MQTT

Thuật ngữ “chủ đề” đề cập đến các từ khóa trình truyền tải MQTT sử dụng để lọc các thông điệp cho máy khách MQTT. Các chủ đề được tổ chức theo thứ bậc, tương tự như đường dẫn đến tệp hoặc thư mục. Ví dụ: hãy xem xét một hệ thống nhà ở thông minh hoạt động trong một ngôi nhà nhiều tầng có các thiết bị thông minh khác nhau ở mỗi tầng. Trong trường hợp đó, trình truyền tải MQTT có thể tổ chức các chủ đề như:

nhà của chúng ta/tầng trệt/phòng khách/ánh sáng

nhà của chúng ta/tầng 1/phòng bếp/nhiệt độ

Quá trình xuất bản qua MQTT

Máy khách MQTT xuất bản các thông điệp có chứa chủ đề và dữ liệu dưới định dạng byte. Máy khách xác định định dạng dữ liệu như dữ liệu văn bản, dữ liệu nhị phân, tệp XML hoặc JSON. Ví dụ: một cái đèn trong hệ thống nhà ở thông minh có thể xuất bản thông điệp về chủ đề phòng khách/ánh sáng.

Quá trình đăng ký qua MQTT 

Máy khách MQTT gửi một thông điệp SUBSCRIBE (ĐĂNG KÝ) đến trình truyền tải MQTT để nhận thông điệp về các chủ đề quan tâm. Thông điệp này chứa một mã định danh duy nhất và một danh sách đăng ký. Ví dụ: ứng dụng nhà ở thông minh trên điện thoại của bạn muốn hiển thị số lượng đèn đang bật trong nhà của bạn. Ứng dụng này sẽ đăng ký chủ đề ánh sáng và gia tăng bộ đếm trên tất cả các thông điệp về trạng thái bật

Ứng dụng của MQTT

  • IoT và M2M (Machine to Machine): Kết nối và giao tiếp giữa các thiết bị thông minh.
  • Hệ thống giám sát: Theo dõi dữ liệu từ các cảm biến và thiết bị.
  • Ứng dụng thời gian thực: Gửi thông tin nhanh chóng, như thông báo hoặc cập nhật trạng thái.

Lợi ích của MQTT

  • Tiết kiệm băng thông: Thích hợp cho các môi trường có kết nối mạng không ổn định.
  • Thích ứng với môi trường IoT: Tối ưu hóa cho các thiết bị có tài nguyên hạn chế.
  • Tính mở và linh hoạt: Dễ dàng tích hợp với các ứng dụng và hệ thống khác.