产品描述
SP501LW 系列为工业级串口服务器,支持 RJ45/Wi-Fi 接入与多协议透传,适合长时间稳定运行的现场采集与上云场景。
功能特点
- 支持RJ45有线和WIFI无线网络连接
- 支持MQTT、TCP、HTTP等常用协议
- 支持TCP Server、TCP Client多种工作模式
- 支持DC9-30V宽电压供电
- 供电端口具有过压、过流、反接保护功能
- 防水外壳、防水RJ45接口

命名规则
集线器设备接口文档
MQTT 部分
MQTT HTTP 接口
| 接口 | 方法 | 描述 |
|---|---|---|
/mqtt / /mqtt_info | POST / GET | 配置 MQTT 客户端、Topic、QoS、retain 等 |
所有 POST 体为 JSON;成功 { "code": 200 }。
MQTT 下发配置
设备在连接后会订阅 mqtt_pub_topic;向该 Topic 发布配置 JSON 即可写入 NVS(仅 nvs_namespace)。
MQTT 下发 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" 且无 data/config/nvs 时):
{
"action": "config",
"use_mqtt": "1",
"mqtt_server": "mqtt.likong-iot.com",
"mqtt_port": "1883"
}工作模式与模板配置示例:
{
"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": "12",
"timeout": "1000",
"interval_time": "2000",
"data_format": "HEX",
"report_format": "mqtt",
"baud_rate": "9600",
"data_bit": "8",
"stop_bit": "1",
"check_bit": "None"
}
]
}
}MQTT 配置示例模板:
示例 1:基础 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"
}
}示例 2: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"
}
]
}
}示例 3:综合配置(有线 + 通信协议 + 工作模式 + 串口参数)
{
"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"
}
}说明:
action/cmd/type任一字段为"config"时触发配置写入;配置内容放在data(或config/nvs)对象内。- 仅处理字符串/数字/布尔字段,值会转成字符串存入 NVS。
- 下表列出固件当前实际使用的配置键;未列出但为字符串/数字/布尔的字段仍会被保存,但可能不会生效。
device_sn/mqttconn/mqtt_type/tcp_send通过 MQTT 下发会被忽略。- 可通过 MQTT 配置
work_mode/poll_time/modbus_items(等同/work_mode_set)。 - 成功后不会再把该消息透传到串口。
- 成功写入后设备会向
mqtt_sub_topic返回{"code":200,"msg":"config updated"}。 - 成功写入后设备会延迟重启(约 500ms)。
MQTT 下发可配置键与取值范围(按类别)
网络配置键(有线/Wi-Fi/AP):
| 键 | 说明 | 取值范围 |
|---|---|---|
netconn | 网络模式 | 1=以太网,2=WiFi |
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 | WiFi SSID | 字符串 |
wifi_password | WiFi 密码 | 字符串 |
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) |
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 模板数组 | 结构见 /work_mode_set 中 modbus_items 定义 |
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 | 设备型号 | 字符串 |