CATALOG

芯步的壁挂人体存在传感器采用HTTP接口直连模式,无需网关,数据可直接推送到你的服务器。下面从接口对接原理、签名计算、消息接收方式到代码实战,逐步说明。

一、 背景与设备特性

芯步的壁挂人体存在检测设备(如型号 UNI-CGQ-RT-BG-HL)是一款融合了红外和雷达技术的传感器。与传统的红外传感器只能检测“移动”不同,该设备通过雷达技术能够做到“人体存在”检测,即静止不动的人体也能被探测到

在开始对接前,需要明确该设备的两个核心通信模式,这在开发中至关重要:

  1. 下行指令:你的服务器主动向设备发送指令,例如重启设备、开启/关闭感应灯、调节雷达灵敏度等。

  2. 上行消息:这是核心功能。当设备探测到“有人”或“无人”状态变化时,会主动向你的服务器推送数据。

二、 对接流程详解

1. 准备工作:获取凭证与网络配置

在芯步工作台注册并创建设备后,你需要记录以下信息:

  • AppIdAppSecret:在控制台的“开发设置”中获取,用于生成接口签名。

  • 设备ID:设备详情页查看。

  • 网络要求:设备支持2.4G WiFi,只需配网即可直接与公网或私有化部署的服务器通信,无需网关

2. 核心技术:HTTP签名计算

芯步的开放接口通过签名来做身份验证,你不需要传递复杂的AccessToken,只需动态计算 sign。这是为了防止接口被伪造攻击。

签名生成逻辑(官方标准):

Sign = md5( md5(AppSecret) + ts )
  • ts:当前Unix时间戳(秒)。

  • md5():标准的32位小写MD5加密算法。

开发提示:时间戳 ts 必须与签名计算中的 ts 保持一致,且通常与服务器时间误差不能太大(一般5分钟内有效)。

3. 第一种场景:接收“人体移动/存在”数据(上行)

这是最常见的场景。当有人进入房间并静止不动,或者离开房间时,设备需要通知你的系统。

配置消息推送URL在芯步控制台中,你需要配置一个 “数据接收URL”

  • 当你配置好后,芯步的平台会作为客户端,将设备数据以 POST 表单或 JSON 格式推送到你这个地址。

  • 你需要提供一个公网可访问的HTTP接口地址。

推送的数据内容示例当人体状态发生变化(无人 \rightarrow 有人 或 有人 \rightarrow 无人)时,你的服务器会收到类似下面的请求:

解决方案处理逻辑你的服务器接口接收到这个HTTP请求后,需要做三件事:

  1. 解析 device_id,识别是哪个房间/区域的设备。

  2. 判断 occupancy 状态:若为 true,触发“有人”逻辑(如开灯、开空调);若为 false,触发“无人”逻辑(如关灯、布防)。

  3. 返回HTTP 200 状态码。芯步平台若未收到200响应,会尝试重试推送,以确保数据送达。

4. 第二种场景:控制设备参数(下行)

有时候你需要动态修改传感器的灵敏度,或者重启设备。

接口信息

  • 请求方式:POST

  • Content-Type:application/json

  • URL构造https://api.thingboot.com/{AppId}/device/control/?sign={YourSign}&ts={当前时间戳}

实战步骤假设我们需要让设备关闭探测功能(或者开启某个指示灯),我们可以发下以下指令:

  1. 构造Order命令根据产品手册,若要控制雷达模块的开关,使用 radar_enable 命令

  2. 完整请求体注意 device 参数通常是字符串,order 是一个JSON对象

  3. 请求示例使用 curl 命令模拟(以Python为例思路,签名因时间变化动态生成):

三、 完整的解决方案时序图描述

  1. 配网阶段:设备上电,通过AP配网模式连接WiFi,设备主动连接芯步云端。

  2. 注册阶段:设备上线后,会发送注册包。此时如果你在控制台配置了“设备上线通知”,你的服务器会收到设备上线消息。

  3. 探测阶段

    • 人进入区域 \rightarrow 雷达捕捉到信号 \rightarrow 设备判定为“有人”。

    • 设备向云端上报 {occupancy:1}

    • 云端解析你的应用ID,立即转发JSON数据到你配置的服务器地址。

  4. 业务联动

    • 你的服务器收到数据,写入数据库并在业务层处理,例如通过WebSocket推送给前端大屏显示“xx会议室有人”,或者直接下发指令给智能插座开启电源。

  5. 无人检测

    • 人离开,雷达检测不到任何微动(利用雷达特性检测微动呼吸) \rightarrow 设备维持一段时间(如30秒)确认无人 \rightarrow 上报 {occupancy:0}\rightarrow 你的服务器关闭设备。

四、 开发注意事项与最佳实践

  1. 区分“移动”与“存在”在利用接口数据时,如果仅看“移动”事件,传统红外即可。既然接入了这款设备,利用其“存在”特性。例如:会议室有人但坐在位置上看书不动,雷达依然上报“有人”,千万不要通过“无移动”就判定“无人”,否则会误关灯。

  2. 私有化部署(局域网)如果你的系统与设备处于同一个局域网,且数据不想经过外网,可以利用该设备的私有化特性。在配置时,可以直接将消息推送地址指向你局域网内的服务器IP(如 http://192.168.1.100:8080/receive),实现纯本地闭环,极低延迟且断网也能用

  3. 签名算法复查签名的计算是 md5(md5(AppSecret) + ts)。这里容易出错的是拼接顺序,官方示例中强调是将 md5(AppSecret) 后的字符串直接拼接时间戳(字符串形式),再进行整体MD5

  4. 日志记录在接收数据的代码中,请一定要记录每次HTTP请求的完整Body和Header。由于传感器上报频率较高,日志可用于排查设备是否“风暴式”上报导致服务器压力过大,或是网络波动导致的丢包。

通过以上步骤,你可以顺利地将芯步壁挂人体存在传感器的物理数据转化为业务逻辑的触发源,实现精准的智慧空间管理。