Giao thức cho thiết bị cảnh báo cơ bản
Cấu Trúc MQTT Topics (Topics Structure)
Cấu trúc topic dạng: base_topic/device_id/danh_muc/thong_tin.
Trong đó:
-
base_topic: Tiền tố chung cho tất cả các thiết bị (ví dụ:smarthome,industrial_control). -
device_id: Mã nhận dạng duy nhất của thiết bị ESP32 (ví dụ:esp32_001,gateway_A).
MQTT topics được thiết kế lại, sử dụng tên thiết bị cụ thể là notice_device_esp32, cùng với cấu trúc tổng thể và các cơ chế giao tiếp.
Chúng ta sẽ sử dụng cấu trúc topic cơ bản: smart/notice_device_esp32/danh_muc/thong_tin.
1. Cấu Trúc MQTT Topics cho thiết bị esp32_ID
A. Topics để Thiết bị Gửi Dữ Liệu Lên Server (PUBLISH)
Thiết bị esp32_ID sẽ gửi (Publish) dữ liệu lên các topic này.
B. Topics để Server Gửi Lệnh Xuống Thiết bị (SUBSCRIBE)
Thiết bị esp32_ID sẽ đăng ký nhận (Subscribe) các topic này.
2. Các Cơ Chế Giao Tiếp (Phần 4 & 5)
Giao Tiếp Hai Chiều và Định Kỳ (Yêu cầu 5)
Giao tiếp hai chiều được thực hiện thông qua việc thiết lập các topic PUBLISH (cho trạng thái) và SUBSCRIBE (cho lệnh điều khiển).
-
Thiết bị Gửi (Telemetry): ESP32 định kỳ hoặc khi có sự kiện (như nút nhấn thay đổi) sẽ PUBLISH lên các topic
.../status/...và.../input/.... -
Server Gửi Lệnh (Command): Server muốn điều khiển hoặc cấu hình, sẽ PUBLISH xuống các topic
.../control/...và.../config/.... ESP32 đã SUBSCRIBE các topic này nên sẽ nhận được lệnh ngay lập tức (giao tiếp thời gian thực).
1. Cơ chế Gửi Định kỳ (Heartbeat)
2. Cài đặt Chu kỳ từ Server
Truyền Dữ Liệu Hình Ảnh (Yêu cầu 4)
Việc truyền ảnh qua MQTT cần lưu ý đến kích thước payload tối đa của MQTT (thường giới hạn, ví dụ: 256MB, nhưng thực tế nên giữ dưới vài trăm KB).
Cơ Chế Gửi Dữ Liệu Định Kỳ và Cấu Hình Từ Server
Đây là cơ chế quan trọng cho việc giám sát trạng thái thiết bị (Keep-Alive/Heartbeat).
-
Gửi Định Kỳ (Thiết bị lên Server):
-
Thiết bị ESP32 sử dụng một timer (bộ đếm thời gian) nội bộ.
-
Cứ sau một khoảng thời gian
T(ví dụ: 3 phút hoặc 5 phút), thiết bị sẽ PUBLISH một bản tin trạng thái đầy đủ lên topicsmart/notice_device_esp32/status/device. -
Đây là cơ chế "Heartbeat" giúp server luôn biết được thiết bị vẫn đang hoạt động và cập nhật trạng thái mới nhất.
-
-
Cài đặt Chu kỳ từ Server (Server xuống Thiết bị):
-
Ban đầu, ESP32 có thể cài đặt sẵn một chu kỳ mặc định (ví dụ: 300 giây).
-
Server có thể gửi một lệnh PUBLISH xuống topic
smart/notice_device_esp32/config/intervalvới payload là{"interval_sec": 180}(180 giây = 3 phút). -
ESP32 SUBSCRIBE topic này, nhận lệnh, và cập nhật giá trị biến
Tnội bộ của nó thành 180 giây. Kể từ đó, chu kỳ gửi dữ liệu mới là 3 phút.
-
No Comments