串口服务器
SP501LW

产品描述

SP501LW 系列为工业级串口服务器,支持 RJ45/Wi-Fi 接入与多协议透传,适合长时间稳定运行的现场采集与上云场景。

功能特点

  • 支持RJ45有线和WIFI无线网络连接
  • 支持MQTT、TCP、HTTP等常用协议
  • 支持TCP Server、TCP Client多种工作模式
  • 支持DC9-30V宽电压供电
  • 供电端口具有过压、过流、反接保护功能
  • 防水外壳、防水RJ45接口
sp501

命名规则

集线器设备接口文档

MQTT 部分

MQTT HTTP 接口

接口方法描述
/mqtt / /mqtt_infoPOST / 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_dhcpIP 模式1=DHCP,2=静态IP
static_ip静态 IPIPv4 字符串
static_netmask子网掩码IPv4 字符串
static_gateway网关IPv4 字符串
static_dns1主 DNSIPv4 字符串
static_dns2备 DNSIPv4 字符串
wifi_ssidWiFi SSID字符串
wifi_passwordWiFi 密码字符串
ap_nameAP 名称字符串
ap_passwordAP 密码字符串
ap_wait_timeAP 等待时间> 0

通信协议配置键:

MQTT:

说明取值范围
use_mqtt是否启用 MQTT0/1
mqtt_server服务器地址主机名或 IP
mqtt_port服务器端口1 ~ 65535
mqtt_username用户名字符串
mqtt_password密码字符串
mqtt_clientidClient ID字符串
mqtt_sub_topic发布/上报 Topic字符串,建议 <= 127 字节
mqtt_pub_topic订阅/下发 Topic字符串,建议 <= 127 字节
qosQoS0/1/2
retainretain 标志0/1
mqtt_send定时上报开关0=关闭,2=开启(触发 mqtt_time
mqtt_time定时上报周期> 0

TCP:

说明取值范围
use_tcp是否启用 TCP0/1
tcpconnTCP 模式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是否启用 UDP0/1
udpconnUDP 模式0=服务器,1=客户端

HTTP:

说明取值范围
use_http是否启用 HTTP0/1
http_port端口1 ~ 65535
httpconnHTTP 上报开关0/1
http_url上报 URLURL 字符串
http_header自定义 Header字符串
http_time上报周期> 0

工作配置键(含串口参数):

说明取值范围
work_mode工作模式mqtt_tcp / modbus_tcp / modbus_rtu
poll_time轮询间隔1000 ~ 3600000 毫秒
modbus_itemsModbus 模板数组结构见 /work_mode_setmodbus_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_serverNTP 服务器域名或 IP
lgname登录用户名字符串
lgpwd登录密码字符串
device_type设备型号字符串