智能人体存在传感器通常以上报数据为主(检测到有人/无人),但若需主动查询状态或远程控制其负载输出,可通过HTTP接口实现。以下是完整的接入方案。
解决方案:接入智能人体存在传感器[吸顶][雷达版] 实现HTTP远程控制
1. 准备工作
在开始开发前,请确保完成以下硬件与平台配置:
硬件上电与配网
该传感器支持 WiFi 2.4GHz 网络,无需网关 。
设备通电后,根据官方指南将其连接至您的本地路由器 Wi-Fi。
获取凭证
登录芯步官方控制台。
在“开发设置”中获取三个关键参数:AppID(应用ID)、AppSecret(应用密钥/开发者密码)以及目标设备ID (Device ID) 。
2. 接口鉴权机制
为了防止接口被滥用,芯步的开放接口使用动态签名验证。每次请求都需要在URL中携带计算出的签名。
核心公式
YourSign = MD5( MD5(AppSecret) + ts )
参数说明
AppSecret:您的开发者密码。
ts:当前Unix时间戳(秒级)。
MD5:标准的32位小写MD5加密算法。
计算步骤
将
AppSecret进行第一次MD5加密,得到字符串S1。将
S1与时间戳ts进行字符串拼接,得到S2。将
S2进行第二次MD5加密,得到最终的sign。
3. 业务场景:远程控制
该传感器除了感应人体外,通常带有一路交流电输出(AC Output),可用于控制照明灯、排风扇或插座 。接口调用的目标是控制这路输出的“开”与“关”。
1. 接口定义
请求地址:
http(s)://api.thingboot.com/{AppId}/device/control/请求方法:
POSTContent-Type:
application/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数据包。业务联动示例
服务器收到“有人”状态。
服务器检查当前光照传感器数据或时间段。
服务器主动调用上述 第3节 的HTTP接口,向该设备发送
{"power":1}命令,打开照明。
5. 高级功能:雷达模块开关控制
除了控制连接的电器(power),该传感器允许您远程控制雷达探测器本身的开关,这在需要定时关闭检测功能(如午休时间或下班后)时非常有用。
关闭雷达检测:
{"radar_enable": 0}开启雷达检测:
{"radar_enable": 1}
注意:如果关闭雷达检测,传感器将无法识别人体存在状态,直到重新开启。
6. 常见问题与排查
签名错误 (401 Unauthorized)
检查时间戳
ts是否为服务器当前时间(误差一般不超过5分钟)。确认MD5加密结果为32位小写。
核对
AppSecret是否与控制台一致。
命令下发成功但设备无反应
检查设备是否在线。设备断电或WiFi断开时无法接收命令。
确认
DeviceId是整数格式还是字符串格式,参考API文档。
局域网内网控制(私有化部署)
该系列产品支持私有化部署 。如果您有纯局域网环境的需求,可以联系芯步技术团队获取本地API SDK,设备将不再经过公网API,而是直接向您局域网内的服务器上报数据并接收指令。