MQTT远程配置
设备连接 MQTT 服务器后,可通过下发配置 JSON 修改网络、协议、串口和工作模式参数。配置写入后设备会延迟重启,重启后参数生效。
HTTP接口
| 接口 | 方法 | 描述 |
|---|---|---|
| /mqtt | POST | 配置 MQTT 客户端、Topic、QoS、retain 等参数 |
| /mqtt_info | GET | 读取 MQTT 当前配置 |
所有 POST 请求体为 JSON,成功返回:
{
"code": 200
}MQTT下发配置
设备连接 MQTT 服务器后会订阅配置中的 mqtt_pub_topic。平台向该 Topic 发布配置 JSON 后,设备会写入配置并延迟重启。
标准格式:
{
"action": "config",
"data": {
"use_mqtt": "1",
"mqtt_server": "mqtt.likong-iot.com",
"mqtt_port": "1883",
"mqtt_username": "demo",
"mqtt_password": "demo",
"mqtt_clientid": "client-id"
}
}也支持扁平格式:
{
"action": "config",
"use_mqtt": "1",
"mqtt_server": "mqtt.likong-iot.com",
"mqtt_port": "1883"
}ℹ️
action、cmd、type 任一字段为 config 时触发配置写入。配置内容可放在 data、config 或 nvs 对象中。
配置示例
基础 MQTT 参数
{
"action": "config",
"data": {
"use_mqtt": "1",
"mqtt_server": "mqtt.likong-iot.com",
"mqtt_port": "1883",
"mqtt_username": "demo",
"mqtt_password": "demo",
"mqtt_clientid": "client-id",
"mqtt_sub_topic": "device/resp",
"mqtt_pub_topic": "device/cmd",
"qos": "1",
"retain": "0",
"mqtt_send": "0"
}
}Modbus-RTU 网关模板
{
"action": "config",
"data": {
"work_mode": "modbus_rtu",
"poll_time": "30000",
"modbus_items": [
{
"enabled": true,
"slave_addr": "01",
"function_code": "03",
"register_addr": "0",
"register_num": "2",
"timeout": "1000",
"interval_time": "2000",
"data_format": "HEX",
"report_format": "mqtt",
"baud_rate": "9600",
"data_bit": "8",
"stop_bit": "1",
"check_bit": "None"
}
]
}
}综合配置
{
"action": "config",
"data": {
"netconn": "1",
"is_dhcp": "2",
"static_ip": "192.168.1.50",
"static_netmask": "255.255.255.0",
"static_gateway": "192.168.1.1",
"static_dns1": "8.8.8.8",
"static_dns2": "114.114.114.114",
"use_mqtt": "1",
"mqtt_server": "mqtt.likong-iot.com",
"mqtt_port": "1883",
"mqtt_username": "demo",
"mqtt_password": "demo",
"mqtt_clientid": "client-id",
"mqtt_sub_topic": "device/resp",
"mqtt_pub_topic": "device/cmd",
"qos": "1",
"retain": "0",
"use_tcp": "1",
"tcpconn": "1",
"tcp_server": "192.168.1.100",
"tcp_port": "8888",
"use_http": "0",
"work_mode": "modbus_rtu",
"poll_time": "30000",
"baud_rate": "9600",
"data_bit": "8",
"check_bit": "None",
"stop_bit": "1",
"frame_time": "50",
"frame_len": "512"
}
}下发规则
- 仅处理字符串、数字、布尔字段,值会转成字符串存入 NVS。
- 未列出的字符串、数字、布尔字段也可能被保存,但不一定会被固件使用。
device_sn、mqttconn、mqtt_type、tcp_send通过 MQTT 下发时会被忽略。- 可通过 MQTT 配置
work_mode、poll_time、modbus_items,效果等同 Web 中的工作模式配置。 - 配置消息成功写入后,不会再透传到串口。
- 成功后设备向
mqtt_sub_topic返回{"code":200,"msg":"config updated"}。 - 成功写入后设备会延迟重启,约 500ms。
网络配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| netconn | 网络模式 | 1=以太网,2=Wi-Fi |
| is_dhcp | IP 模式 | 1=DHCP,2=静态 IP |
| static_ip | 静态 IP | IPv4 字符串 |
| static_netmask | 子网掩码 | IPv4 字符串 |
| static_gateway | 网关 | IPv4 字符串 |
| static_dns1 | 主 DNS | IPv4 字符串 |
| static_dns2 | 备 DNS | IPv4 字符串 |
| wifi_ssid | Wi-Fi SSID | 字符串 |
| wifi_password | Wi-Fi 密码 | 字符串 |
| ap_name | AP 名称 | 字符串 |
| ap_password | AP 密码 | 字符串 |
| ap_wait_time | AP 等待时间 | 大于 0 秒 |
MQTT配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| use_mqtt | 是否启用 MQTT | 0/1 |
| mqtt_server | 服务器地址 | 主机名或 IP |
| mqtt_port | 服务器端口 | 1-65535 |
| mqtt_username | 用户名 | 字符串 |
| mqtt_password | 密码 | 字符串 |
| mqtt_clientid | Client ID | 字符串,需唯一 |
| mqtt_sub_topic | 发布/上报 Topic | 字符串,建议不超过 127 字节 |
| mqtt_pub_topic | 订阅/下发 Topic | 字符串,建议不超过 127 字节 |
| qos | QoS | 0/1/2 |
| retain | retain 标志 | 0/1 |
| mqtt_send | 定时上报开关 | 0=关闭,2=开启 |
| mqtt_time | 定时上报周期 | 大于 0 秒 |
TCP配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| use_tcp | 是否启用 TCP | 0/1 |
| tcpconn | TCP 模式 | 0=服务器,1=客户端,2=Modbus,等同服务器 |
| tcp_server | 服务器地址 | 主机名或 IP |
| tcp_port | 端口 | 1-65535 |
| tcp_time | 发送周期 | 大于 0 秒 |
| reg_packet | 注册包内容 | 字符串,空则使用设备 MAC |
| reg_format | 注册包格式 | none/hex/ascii |
| heart_packet | 心跳包内容 | 字符串,空则使用设备 MAC |
| heart_format | 心跳包格式 | none/hex/ascii |
| heart_interval | 心跳间隔 | 大于 0 秒,默认 30 |
UDP配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| use_udp | 是否启用 UDP | 0/1 |
| udpconn | UDP 模式 | 0=服务器,1=客户端 |
HTTP配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| use_http | 是否启用 HTTP | 0/1 |
| http_port | 端口 | 1-65535 |
| httpconn | HTTP 上报开关 | 0/1 |
| http_url | 上报 URL | URL 字符串 |
| http_header | 自定义 Header | 字符串 |
| http_time | 上报周期 | 大于 0 秒 |
工作与串口配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| work_mode | 工作模式 | mqtt_tcp / modbus_tcp / modbus_rtu |
| poll_time | 轮询间隔 | 1000-3600000 毫秒 |
| modbus_items | Modbus 模板数组 | 结构见参数设置页的 COMMAND 定义 |
| baud_rate | 波特率 | 1200/2400/4800/9600/19200/38400/57600/115200 |
| data_bit | 数据位 | 5/6/7/8 |
| check_bit | 校验位 | None/Odd/Even |
| stop_bit | 停止位 | 1/1.5/2 |
| frame_time | 帧间隔 | 正整数,单位毫秒 |
| frame_len | 帧长度 | 正整数,建议不超过 4096 |
系统配置键
| 键 | 说明 | 取值范围 |
|---|---|---|
| host_names | 设备名称 | 字符串 |
| ntp_server | NTP 服务器 | 域名或 IP |
| lgname | 登录用户名 | 字符串 |
| lgpwd | 登录密码 | 字符串 |
| device_type | 设备型号 | 字符串 |