话题(Topic)命名规范建议
• 门禁系统:/daic/mj/{deviceSN}/command
• 梯控系统:/daic/tk/{deviceSN}/command
• 车牌识别:/daic/cp/{deviceSN}/command
• 状态上报:/daic/{systemType}/{deviceSN}/status
其中{deviceSN}为设备唯一序列号,{systemType}对应"mj"/"tk"/"cp"系统类型。
以下是多奥车牌识别、门禁、梯控系统通过MQTT协议对接服务器平台的详细说明,依据技术文档及行业标准整理:
{
"devInfo": "devIP~192.168.1.2,devSubnet~255.255.0.0,devGateway~192.168.1.1,devMask~0C:F4:05:F0:72:B7,access control Ver~9.4.1.4327,elevator access control Ver~U-Boot2010.06-r1878,License plate recognition parking lot charging management system Ver~REV:1875,linuxVer~4.9.37 #16,firmwareVer~9.2.0.166,deviceType~xxxx"
}
一、通讯架构
-
系统拓扑
{ "cmd": "0x120A", // 命令码(16进制) "deviceID": "设备序列号", // 目标设备标识 "params": {...} // 参数对象(如楼层号) } ```}设备端(车牌识别/门禁/梯控) → MQTT Broker(消息代理) ← 业务服务器平台-
设备端作为MQTT客户端发布/订阅消息
-
服务器平台作为订阅者/发布者双向通信
-
支持 TLS/SSL加密(端口8883)和普通TCP(端口1883)
-
-
关键协议配置
参数 示例值 说明 Broker地址 mqtt.daotech.com支持域名或IP 端口 1883 / 8883 明文传输/加密传输 Client ID DOOR_DEV001设备唯一标识 QoS等级 1 至少送达一次(推荐) 保活间隔 60秒 心跳检测
二、数据格式规范(JSON示例)
|
指令代码 |
功能描述 |
适用系统 |
备注 |
|---|---|---|---|
|
0x120A |
单个楼层权限,自动按键 |
内呼梯控 |
梯控专用 |
|
0x120A |
开启门禁通道 |
门禁系统 |
门禁专用 |
|
0x1211 |
梯外呼梯,自动按键 |
外呼梯控 |
外呼专用 |
|
0x0024 |
读电梯运行状态 |
梯控系统 |
主动推送/查询 |
|
0x0025 |
车牌识别停车场状态 |
车牌识别 |
查询停车场状态 |
-
车牌识别系统上报数据
{ "cmd": "0x0025", "deviceSN": "DEV-CP-2025003", "parkingStatus": { "availableSpaces": 120, "totalSpaces": 300, "gateState": "closed" } }json
{ "msg_id": "LPR_20240520153000", "dev_id": "CAM_ENTRANCE_01", "event_type": "vehicle_in", "plate_num": "粤B12345", "timestamp": 1716197400, "image_url": "http://cdn.daotech.com/lpr/20240520153000.jpg" } -
门禁系统事件上报
{ "cmd": "0x120A", "deviceSN": "DEV-AC-2025001", "timestamp": 1733589600, "accessRight": "open" }json
{ "msg_id": "ACC_20240520153215", "dev_id": "GATE_LOBBY_02", "event_type": "auth_pass", "auth_mode": "face", // 支持face/card/qr "user_id": "EMP1001", "timestamp": 1716197535 } -
梯控系统指令交互
-
平台→梯控(电梯呼叫)
{ "cmd": "0x1211", "deviceSN": "DEV-TK-2025002", "callFloor": 3, "callDirection": "down" }json
{ "cmd_id": "ELEV_CTL_202405201535", "dev_id": "ELEV_B1_01", "command": "call_to_floor", "target_floor": 10, "auth_token": "a1b2c3d4e5" }
-

-
-
梯控→平台(状态反馈)
{ "cmd": "0x120A", "deviceSN": "DEV-TK-2025002", "floor": 15, "direction": "up" }json
{ "status": "exec_success", "cmd_id": "ELEV_CTL_202405201535", "current_floor": 1, "timestamp": 1716197730 }
-
-
{
"cmd": "0x0024",
"deviceSN": "DEV-TK-2025002",
"status": {
"currentFloor": 10,
"direction": "up",
"runningState": "normal",
"load": 45
}
}
三、MQTT主题(Topic)设计
| 系统 | 发布主题(设备→平台) | 订阅主题(平台→设备) |
|---|---|---|
| 车牌识别 | daotech/lpr/{dev_id}/event | daotech/lpr/{dev_id}/command |
| 门禁 | daotech/access/{dev_id}/event | daotech/access/{dev_id}/ctl |
| 梯控 | daotech/elev/{dev_id}/status | daotech/elev/{dev_id}/cmd |
注:
{dev_id}为设备物理编号,需在平台预注册
命令详解
| 命令码 | 用途 | 参数示例 | 适用系统 |
|---|---|---|---|
| 0x120A | 内呼梯控(自动按键)/门禁开门 | {"floor": 5} 或 {"duration": 10} | 梯控/门禁 |
| 0x1211 | 外呼梯控(机器人调度) | {"elevatorID": "E01", "targetFloor": 3} | 梯控 |
| 0x0024 | 读取电梯运行状态 | {"query": "position"} | 梯控 |
| 0x0025 | 车牌识别停车场状态 | {"query": "gateStatus"} | 车牌识别 |
| Custom_IO | 读门禁IO信号(定制) | {"pin": "GPIO17"} | 门禁 |
四、服务器配置步骤
-
Broker部署
-
推荐开源方案:Mosquitto 或 EMQX
-
启用认证:
mosquitto_passwd创建账号密码 -
配置ACL规则(示例):
础配置参数
参数项 说明 默认值/示例 服务器地址 MQTT Broker IP或域名 mqtt.daicserver.com端口 通信端口(明文/TLS) 1883(明文)/8883(TLS)账号与密码 认证凭证(建议定期轮换) 由平台管理员分配 Client ID 设备唯一标识符 设备序列号(如 CP-1001)pattern read daotech/access/+/event pattern write daotech/elev/+/cmd
-
-
平台对接流程
mermaid
graph LR A[设备激活注册] --> B[平台分配dev_id与密钥] B --> C[设备连接MQTT Broker] C --> D[平台下发设备权限主题] D --> E[双向通信验证] -
安全增强
-
启用TLS双向认证(mTLS)
-
通信内容增加AES-256-GCM加密
-
设备端定期轮换MQTT密码(通过HTTPS API)
-
五、调试与故障排查
-
工具建议
-
测试工具:MQTT.fx / MQTT Explorer
-
命令监听:
mosquitto_sub -t "daotech/#" -v
-
-
常见错误码
代码 含义 解决方向 5 认证失败 检查设备密码/证书 16 QoS等级不支持 修改QoS为1 128 订阅主题无权限 检查ACL配置
注:完整协议文档需联系多奥技术支持获取设备型号对应的《MQTT接口规范》,不同设备固件版本可能存在字段差异。




764

被折叠的 条评论
为什么被折叠?



