芯步的壁挂式红外雷达存在感应器支持HTTP接口控制,可以方便地集成到自己的系统里。下面我整理了一份二次开发的解决方案,从准备工作到代码实现都有,希望能帮到你。
解决方案:基于芯步开放接口实现人体感应二次开发
适用产品:芯步壁挂式红外雷达存在感应器(双模/单模)目标:获取设备实时上报的“有人/无人”状态,或在接收到信号后控制其他设备(如继电器、喇叭等)。
第一步:准备工作
在写代码之前,需要先搞定两件事:
拿到设备ID:把传感器通电、配网,然后在芯步的“控制台”->“设备列表”里,找到你要用的那个设备,记下它的 Device ID(通常是数字)。
获取密钥:在“控制台”->“开发设置”里,找到 AppID 和 AppSecret。这两个玩意儿是调接口的身份证,别泄露了。
一个小:开发测试阶段,可以在控制台打开“调试模式”。这样就不用先费劲搞复杂的签名计算,可以直接用 Postman 之类的工具测试接口,等调通了再把签名加上。
第二步:核心方法(两种方案选哪个?)
二次开发主要有两种路子,取决于你是想“被动等通知”还是“主动去问”:
| 方案 | 方向 | 推荐指数 | 适用场景 |
|---|---|---|---|
| 方案 A:HTTP 消息推送 | 设备 → 你的服务器 | ★★★★★ (强烈推荐) | 实时性要求高,比如有人进来立马开灯。 |
| 方案 B:主动查询/控制 | 你的服务器 → 设备 | ★★★☆☆ | 需要远程修改灵敏度,或者定时巡检状态。 |
方案 A:接收实时推送
这是最常规的做法。当感应器检测到“有人变无人”或者“无人变有人”时,它会立刻主动给你的服务器发一条消息。
1. 关键数据字段
根据产品手册,当人体存在状态改变时,设备会触发 infrared_detect 事件并推送数据。推送的 JSON 数据里,最核心的是 infrared_target 这个字段:
"infrared_target": 1表示 有人"infrared_target": 0表示 无人
2. 你需要做的(服务端接口)
在你的服务器上写一个接口来接收这些数据。示例代码逻辑如下:
方案 B:主动下发命令
如果你需要远程关掉传感器,或者想主动问一下现在的状态,就用这个方法。
1. 签名机制
芯步的接口需要动态签名,规则是:sign = md5( md5(AppSecret) + ts )
2. 获取实时状态的代码示例
你可以调用设备控制接口,下发查询命令,或者直接读取设备上报的最近状态。如果你想强制重启它,可以用系统命令。
3. 常用控制指令(order参数)
如果你想让设备执行动作,可以这样写 order
控制继电器开关
{"power":1}(1=通,0=断)。这招可以用来在检测到人时,让传感器去控制接在它上面的灯。软重启设备
{"system":"restart"}开关红外模块
{"infrared_enable":1}(省电时可用0关闭)
第三步:调试小贴士
关于双模逻辑:这款设备有红外和雷达两种探测方式。根据官方介绍,只有当红外和雷达都判定无人时,才会输出“无人”信号。如果你发现“有人”变“无人”反应特别快,但“无人”变“有人”有点延迟,这是双重确认机制在起作用,不是卡了。
网络环境:如果你是在做局域网或私有化部署,芯步的设备也是支持的。这时候需要把上面的
api.thingboot.com换成你私有化部署的服务器地址就行。超时设置:如果你的接口处理逻辑比较复杂(比如涉及视频推流),先异步处理。因为芯步平台等待响应的超时时间较短,如果你没及时返回
200状态码,平台会以为你没收到,从而重复推送消息。
总结
搞定这个开发只需要三步:
去后台抄下 AppID、AppSecret 和 Device ID。
在你的服务器写个接口,解析
infrared_target字段。根据 1(有人)或 0(无人),去触发你要执行的硬件动作。