TCP Server模式(设备作为服务器)
⚠️
TCP Server 模式建议在测试和内网环境下使用。说明书标注 TCP Server 模式最多支持 4 个客户端连接。
支持指令
| 模式 | 支持的 type | 说明 |
|---|---|---|
| TCP Server | info、customize、custom、compensate、ota、restart、reset | 设备作为服务器,客户端主动连接设备 |
| TCP Client | info、customize、custom、compensate、ota、restart、reset | 设备作为客户端,主动连接指定服务器 |
获取设备信息
客户端发送:
{
"messageid": "3FBD8A5D-9824-D355-EF7A-B31A609522CC",
"param": {
"type": "info"
}
}| 字段 | 类型 | 长度 | 备注 |
|---|---|---|---|
| messageid | String | 48 | 消息ID,用于标识消息,设备返回时原样返回 |
| type | String | 32 | 消息类型,info 表示获取设备信息 |
服务端(设备)回传信息
指令正常时设备返回:
{
"messageid": "3FBD8A5D-9824-D355-EF7A-B31A609522CC",
"code": 200,
"type": "ST100TH",
"device_name": "WIFI温湿度变送器",
"data": {
"temperature": 26.95,
"humidity": 49.78,
"pressure": 948.38,
"altitude": 554.68
},
"compensate": {
"t_compensate": 0,
"h_compensate": 0,
"p_compensate": 0
},
"set": {
"mqtt_timed_report": 1,
"mqtt_interval_time": 5,
"tcp_timed_report": 1,
"tcp_interval_time": 5,
"http_timed_report": 0,
"http_interval_time": 5
},
"net": {
"connmethed": "wifi",
"ssid": "LIKONG-IOT",
"dhcp": 1,
"ip": "192.168.31.213"
},
"sys": {
"version": "HW:1.0.0_SDK:1.1.0",
"runtime": 90,
"eth_mac": "",
"sta_mac": "E8:6B:EA:C2:32:8C"
},
"protocol": {
"mqtt": 1,
"http": 0,
"tcpserver": 1,
"tcpclient": 0
}
}OTA升级
{
"messageid": "3FBD8A5D-9824-D355-EF7A-B31A609522CC",
"param": {
"type": "ota",
"uri": "http://10.0.0.50/likong-iot/st100_v1.1.0.bin"
}
}TCP Client模式(设备作为客户端)
获取设备信息
服务器向已连接的设备发送:
{
"messageid": "3FBD8A5D-9824-D355-EF7A-B31A609522CC",
"param": {
"type": "info"
}
}客户端(设备)回传信息
设备回传信息格式与 TCP Server 模式一致。启用定时上报后,设备会按照 tcp_interval_time 间隔主动发送设备信息。
参数配置
TCP Client 模式下支持和 MQTT 相同的 custom、customize、compensate、restart、reset、ota、info 指令。通过 JSON 配置 TCP 参数时使用:
{
"messageid": "3FBD8A5D-9824-D355-EF7A-B31A609522CC",
"param": {
"type": "custom",
"protocol": "tcp",
"enable": 1,
"tcp_server": "192.168.1.100",
"tcp_port": 8080,
"timed_report": 1,
"interval_time": 5
}
}Modbus-TCP协议
ST100TH 支持 Modbus-TCP,常用功能码如下:
| 功能码 | 定义 | 操作 |
|---|---|---|
| 0x03 | 读保持寄存器数据 | 读取一个或多个寄存器数据 |
| 0x04 | 读输入寄存器数据 | 读取一个或多个寄存器数据 |
| 0x06 | 写单个寄存器 | 把一组十六进制数据写入单个寄存器 |
| 0x10 | 写多个寄存器 | 把多组十六进制数据写入多个寄存器 |
保持寄存器(0x03)
| 寄存器地址 | 描述 | 格式 | 支持功能码 | 备注 |
|---|---|---|---|---|
| 0x0000-0x0007 | 设备型号 | ASCII | 0x03 | |
| 0x0008-0x000F | 硬件版本号 | ASCII | 0x03 | |
| 0x0010-0x0017 | 固件版本号 | ASCII | 0x03 | |
| 0x0018-0x001F | MAC | HEX | 0x03 | 高位在前低位在后,无冒号 |
输入寄存器(0x04)
| 寄存器地址 | 描述 | 格式 | 支持功能码 | 备注 |
|---|---|---|---|---|
| 0x0000-0x0001 | 温度 | 单精度浮点 | 0x04 | 单位:℃ |
| 0x0002-0x0003 | 湿度 | 单精度浮点 | 0x04 | 单位:%RH |
| 0x0004-0x0005 | 气压 | 单精度浮点 | 0x04 | 单位:hPa |
| 0x0006-0x0007 | 高度 | 单精度浮点 | 0x04 | 单位:米 |
| 0x0008-0x0009 | 温度补偿 | 单精度浮点 | 0x04、0x10 | 范围:-20~20℃ |
| 0x000A-0x000B | 湿度补偿 | 单精度浮点 | 0x04、0x10 | 范围:-20~20%RH |
| 0x000C-0x000D | 气压补偿 | 单精度浮点 | 0x04、0x10 | 范围:-500~500hPa |