Giao thức kết nối MQTT [9]

Một phần của tài liệu thiết kế mô hình điều khiển thiết bị điện từ xa (Trang 25 - 30)

Chương 2 CƠ SỞ LÝ THUYẾT

2.2 Giao thức kết nối MQTT [9]

MQTT (Message Queuing Telemetry Transport) là một giao thức nhắn tin tiêu chuẩn OASIS cho Internet of Things (IoT). Nó được thiết kế như một phương tiện truyền tải tin nhắn publish/subscribe (xuất bản/đăng ký) cực kỳ nhẹ, lý tưởng để kết nối các thiết bị từ xa với băng thông mạng thấp. MQTT ngày nay được sử dụng trong nhiều ngành công nghiệp, chẳng hạn như ô tô, sản xuất, viễn thông, dầu khí, .. .

Cách MQTT hoạt động:

Hình 2.3: Mô hình giao tiếp MQTT

MQTT hoạt động dựa trên mô hình “publish-subscribe.” Trong mô hình này, các

thiết bị được phân thành hai vai trò chính: “publisher” (người xuất bản) và “subscriber”

(người đăng ký). Thiết bị xuất bản gửi các thông điệp (messages) đến các chủ đề (topics) mà các thiết bị đăng ký sẽ nhận. Giao thức này đơn giản, nhẹ nhàng, và tiết kiệm băng thông, giúp nó trở thành lựa chọn lý tưởng cho các ứng dụng IoT.

Publish/Subscribe (Xuất bản – Đăng ký)

Hình 2.4: MQTT Publish/Subscribe

Hệ thống Xuất bản – Đăng ký có lẽ không xa lạ với người dùng MQTT. Nó được coi như cách thức hoạt động của giao thức. Một thiết bị có thể xuất bản một tin nhắn về chủ đề hoặc đăng ký về chủ đề nào đó để nhận tin nhắn. Quy trình cụ thể có thể thấy trong ví dụ sau:

Thiết bị 1 xuất bản về một chủ đề X. Thiết bị 2 đăng ký về chủ đề X đó. Thiết bị 2 sẽ nhận được tin nhắn về chủ đề do thiết bị 1 xuất bản.

Messages – Thông điệp, tin nhắn

Messages hay tin nhắn có thể hiểu là lượng thông tin bạn muốn trao đổi giữa các thiết bị. Nó xuất hiện ở nhiều dạng ví dụ như: văn bản, lệnh, số đọc,…

Topics – Chủ đề trong MQTT

Hình 2.5: MQTT Topic

Topics ở đây chính là các chủ đề trong giao thức MQTT. Nó là cách người dùng đăng ký lượng tin nhắn đến hoặc nơi bạn muốn xuất bản thông điệp. Chủ đề sẽ thể hiện bằng những dấu gạch chéo “/” – cấp độ chủ đề. Ví dụ bạn tạo topics như sau: systems/home/mqtt

Broker – Nhà trung gian [10]

Hình 2.6: MQTT Brocker

Khái niệm cuối cùng liên quan tới MQTT chính là Broker. Bạn có thể hiểu nó là một nơi trung gian nhận về tất cả các thông điệp, tin nhắn. Sau đó Broker tiến hành lọc tin nhắn theo chủ đề, kiểm tra ai quan tâm chủ đề. Cuối cùng tiến hành xuất bản, đưa tin nhắn đến những người đã đăng ký tương ứng.

MQTT broker là một phần mềm chạy trên máy tính (chạy trực tiếp trên máy hoặc trên đám mây) và có thể được tự xây dựng hoặc host bởi bên thứ ba. Các phần mềm MQTT broker ngày nay có ở hai dạng mã nguồn mở và triển khai độc quyền.

Các broker hoạt động như một bưu điện, MQTT không sử dụng địa chỉ của người sẽ được nhận tin nhắn mà sử dụng cơ chế quản lý theo "topic" (tạm dịch: "Chủ đề"), và bất kỳ ai muốn có một bản sao của tin nhắn được gởi sẽ phải đăng ký topic đó. Nhiều client có thể nhận được tin nhắn từ một broker duy nhất (one to many, tạm dịch: quan

hệ một - nhiều). Tương tự, nhiều publisher có thể xuất bản (publish) các topic cho một người đăng ký (many to one, tạm dịch: quan hệ nhiều - một).

Mỗi client có thể vừa sinh và vừa nhận dữ liệu, bằng cách xuất bản (publish) và đăng ký (subscribe), tức là các thiết bị có thể xuất ra dữ liệu cảm biến và vẫn có thể nhận được thông tin cấu hình hoặc lệnh điều khiển (MQTT là một giao thức truyền thông hai chiều). Điều này giúp ích trong cả việc chia sẻ dữ liệu, quản lý và điều khiển thiết bị.

Với kiến trúc MQTT broker, các thiết bị và ứng dụng trở nên tách rời và an toàn hơn. MQTT sử dụng TLS để mã hóa thông tin về tên người dùng và mật khẩu để bảo vệ các kết nối, và có thể dùng thêm các xác thực bảo mật khác để yêu cầu client phải cung cấp file xác thực phù hợp với máy chủ.

Trong trường hợp xảy ra lỗi với một broker, một broker dự phòng/sao lưu tự động có thể được sử dụng để thay thế. Broker dự phòng có thể được thiết lập để chia sẻ tải của client thông qua nhiều server tại chỗ, đám mây hoặc sử dụng phối hợp cả hai cách này.

Broker có thể hỗ trợ cả MQTT tiêu chuẩn và các biến thể MQTT mang tính đặc thù như Sparkplug. Các broker có thể lưu trữ dữ liệu dưới các retained message (cần đăng ký với cơ sở dữ liệu client) để những người đăng ký mới vào chủ đề có thể nhận được giá trị mới nhất ngay lập tức. Broker cũng theo dõi tất cả thông tin của các phiên làm việc khi các thiết bị đang hoặc ngưng hoạt động, cơ chế này được gọi là "persistent sessions" (tạm dịch: "phiên liên tục").

Hình 2.7: Hệ thống kết nối Broker Những ưu điểm chính của MQTT broker là:

- Loại bỏ các kết nối client dễ bị tấn công và không an toàn.

- Có thể dễ dàng mở rộng quy mô từ một thiết bị đến hàng nghìn thiết bị.

- Quản lý và theo dõi tất cả các trạng thái kết nối của client, bao gồm cả chứng chỉ và thông tin xác thực bảo mật.

- Giảm thiểu tình trạng quá tải của hệ thống mạng mà không ảnh hưởng đến bảo mật (với mạng di động hoặc vệ tinh)

Hiện nay có rất nhiều trình trung gian phát triển nhằm hỗ trợ người dùng và các doanh nghiệp tốt hơn. Tùy vào nhu cầu và mục đích của tổ chức mà lựa chọn Broker phù hợp nhất cho mình.

Lợi ích của MQTT trong IoT

Tối ưu hóa sử dụng băng thông: MQTT được thiết kế để tiết kiệm băng thông mạng, điều này rất quan trọng khi các thiết bị IoT thường hoạt động trong môi trường có tài nguyên hạn chế. Giao thức này sử dụng tiêu chuẩn nhị phân thay vì văn bản, giúp giảm thiểu lượng dữ liệu được truyền đi và tiết kiệm năng lượng.

Độ tin cậy cao: MQTT đảm bảo rằng các thông điệp được gửi từ các thiết bị IoT sẽ được giao đến đích một cách đáng tin cậy. Nó sử dụng cơ chế xác nhận giao nhận (Acknowledgment) để đảm bảo rằng Broker đã nhận được thông điệp từ thiết bị xuất bản.

Thích ứng với nhiều loại mạng: Giao thức MQTT có thể thích ứng với nhiều loại mạng, bao gồm cả mạng không dây và mạng có dây. Điều này làm cho nó trở thành lựa chọn lí tưởng cho các ứng dụng IoT hoạt động trên nền tảng mạng phức tạp.

Cách triển khai MQTT trong dự án IoT

Xác định chủ đề và nội dung thông điệp: Trước khi triển khai MQTT, bạn cần xác định các chủ đề (Topics) và nội dung thông điệp mà các thiết bị sẽ gửi và nhận.

Cài đặt Broker sau khi xác định chủ đề và nội dung thông điệp, bạn cần cài đặt một máy chủ MQTT, còn được gọi là Broker. Các thiết bị IoT sẽ kết nối và gửi thông điệp thông qua Broker này.

Cài đặt và cấu hình Client

Tiếp theo, cài đặt và cấu hình các thiết bị IoT như các khách hàng (Clients). Đảm bảo rằng các thiết bị đăng ký vào các chủ đề mà chúng muốn nhận thông điệp.

Kiểm tra và triển khai

Trước khi triển khai thực tế, hãy thử nghiệm giao thức MQTT trong một môi trường giả lập để đảm bảo tính ổn định và đáng tin cậy.

Một phần của tài liệu thiết kế mô hình điều khiển thiết bị điện từ xa (Trang 25 - 30)

Tải bản đầy đủ (PDF)

(80 trang)