CATALOG

智能人体存在传感器通常以上报数据为主(检测到有人/无人),但若需主动查询状态或远程控制其负载输出,可通过HTTP接口实现。以下是完整的接入方案。

解决方案:接入智能人体存在传感器[吸顶][雷达版] 实现HTTP远程控制

1. 准备工作

在开始开发前,请确保完成以下硬件与平台配置:

  1. 硬件上电与配网

    • 该传感器支持 WiFi 2.4GHz 网络,无需网关

    • 设备通电后,根据官方指南将其连接至您的本地路由器 Wi-Fi。

  2. 获取凭证

    • 登录芯步官方控制台。

    • 在“开发设置”中获取三个关键参数:AppID(应用ID)、AppSecret(应用密钥/开发者密码)以及目标设备ID (Device ID)

2. 接口鉴权机制

为了防止接口被滥用,芯步的开放接口使用动态签名验证。每次请求都需要在URL中携带计算出的签名。

核心公式

YourSign = MD5( MD5(AppSecret) + ts )

参数说明

  • AppSecret:您的开发者密码。

  • ts:当前Unix时间戳(秒级)。

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

计算步骤

  1. AppSecret 进行第一次MD5加密,得到字符串 S1

  2. S1 与时间戳 ts 进行字符串拼接,得到 S2

  3. S2 进行第二次MD5加密,得到最终的 sign

3. 业务场景:远程控制

该传感器除了感应人体外,通常带有一路交流电输出(AC Output),可用于控制照明灯、排风扇或插座 。接口调用的目标是控制这路输出的“开”与“关”。

1. 接口定义

  • 请求地址http(s)://api.thingboot.com/{AppId}/device/control/

  • 请求方法POST

  • Content-Typeapplication/json

2. 请求参数示例

假设我们需要控制设备ID为 820720 的传感器,让其开启所连接的照明灯。

  • URL 构造将AppId填写在路径中,并附上动态生成的签名和时间戳。https://api.thingboot.com/Your_AppId/device/control/?sign=计算出的签名&ts=当前时间戳

  • Body 数据

    说明:order 中的 power 是控制线路通断的标准指令。1 代表接通(开),0 代表断开(关)

3. 代码实现示例 (使用cURL)

以下为完整的Shell脚本示例,展示了从生成签名到发送命令的全过程:

4. 关键特性:数据上报与状态同步

仅发送控制命令是不够的,系统需要知道当前是否“有人”才能决定是否自动触发。该传感器采用“上行消息”机制

您需要搭建一个公网可访问的HTTP服务端作为接收消息的地址,配置在芯步控制台中。当环境变化时,平台会自动推送数据:

  • 触发时机:当雷达检测到“有人”或“无人”状态变化时。

  • 推送数据:平台会向您的服务器发送包含设备ID、当前时间、以及人体存在状态(如 is_presence: 1)的JSON数据包。

  • 业务联动示例

    1. 服务器收到“有人”状态。

    2. 服务器检查当前光照传感器数据或时间段。

    3. 服务器主动调用上述 第3节 的HTTP接口,向该设备发送 {"power":1} 命令,打开照明。

5. 高级功能:雷达模块开关控制

除了控制连接的电器(power),该传感器允许您远程控制雷达探测器本身的开关,这在需要定时关闭检测功能(如午休时间或下班后)时非常有用。

  • 关闭雷达检测{"radar_enable": 0}

  • 开启雷达检测{"radar_enable": 1}

注意:如果关闭雷达检测,传感器将无法识别人体存在状态,直到重新开启。

6. 常见问题与排查

  1. 签名错误 (401 Unauthorized)

    • 检查时间戳 ts 是否为服务器当前时间(误差一般不超过5分钟)。

    • 确认MD5加密结果为32位小写

    • 核对 AppSecret 是否与控制台一致。

  2. 命令下发成功但设备无反应

    • 检查设备是否在线。设备断电或WiFi断开时无法接收命令。

    • 确认 DeviceId 是整数格式还是字符串格式,参考API文档。

  3. 局域网内网控制(私有化部署)

    • 该系列产品支持私有化部署 。如果您有纯局域网环境的需求,可以联系芯步技术团队获取本地API SDK,设备将不再经过公网API,而是直接向您局域网内的服务器上报数据并接收指令。