你的位置:首页 > 技术支持 > 常见问题

无线温振传感器采集转议说明

协议说明
支持多传感器同步采集,多传感器数据缓存并分批发送功能。按照传感器分包进行数据传输。 传感器编号说明每个传感器具有一个编号(SID)。编号由组号和组内号组成。每个传感器归入一个组别(GID),例如传感器编号 101,表明传感器组号是 1, 组内号为 01;传感器编号 112 表明组号是 1,组内号 12。 即传感器通过编号计算组号公式为:组号 = 编号/100 组内编号 = 编号%100
组内编号范围从 1 到 99。 传感器通讯协议传感器跟我司网关通过私有 lora 协议通讯。网关通过网线接入 TCP/IP 网络。协议
通过 mqtt 协议进行数据传输与命令控制。 下行命令若需要发送一个控制命令到某个传感器,通过发送特定 JSON 格式字符串到主题:
hjvibra/1/tx
1 是网关的编号,不同的网关有不同的编号。不同编号网关使用不同频段,这样在同一个区域内可以多个网关同时部署互相不冲突。下行命令基本格式:
{"adr":sensorid,"cmd":"command"}
命令有地址部分 adr 和 具体命令 cmd 两部分组成。
adr - 指明需要执行该命令的传感器
目前对外开放的几个个命令如下:
唤醒命令
{"adr":202,"cmd":"wakeup"}
该命令将 202 号传感器唤醒。其他命令执行之前需要先执行该命令。一般命令顺序为:
1. {"adr":202,"cmd":"wakeup"}
2. 延时 500 毫秒
3. {"adr":202,"cmd":"start 2 1000 9"}
注意,下面的其他命令都需要先调用唤醒命令,之后才能执行对应命令。
在唤醒命令下达之后,传感器会等待 2 秒时间等待接收其他正式命令。如果在 2 秒内没有任何有效命令,则传感器重新进入低功耗等待状态。上位机就需要重新发送唤醒命令来执行其他指令。为了降低功耗,推荐唤醒命令之后延时 500ms 即进行其他命令操作。 开始数据采集命令
命令格式为:
start groupid samples sid
groupid - 组号,这个组号必须同传感器配置的组号一致,传感器才会接受命令。
samples - 一个 16 进制数值,代表本次采样的数据量
sid - 本次采集的采集号,这个采集号在后续数据上传命令中会有用到。可以使用 1-9。
举例 1:
请求 202 号传感器开始采集 4096 个点数据,采集号为 9
{"adr":202,"cmd":"start 2 1000 9"}
2 为组号,必须一致。1000 为 16 进制,即 4096,9 为采集号
举例 2:
请求 1 组内的所有传感器同步开始采集,采集号为 3
{"adr":65535,"cmd":"start 1 2000 3"}
该命令要求所有组别为 1 的传感器开始采集数据,采集的数据量为 0x2000(即 10 进制
的 8192 采样点,对于一个 4000HZ 的采样率而言,接近是 2 秒数据)
65535(0xffff)是个特殊的编号,代表这该命令是广播命令,发给所有的组内成员。
这里 3 为本次采集的采集号,数据上传时候该采集号会上传。
如果传感器配置有指示灯,采集命令过程中指示灯会常亮