芯步的壁挂式人体传感器(无论是红外版还是雷达版)都开放了标准的 HTTP API 接口。这意味着你可以用自己的服务器接收传感器的“有人/无人”状态变化,然后通过接口指令去控制照明电源的开关,实现人走灯灭的自动化。
下面这套方案会讲清楚从环境部署到核心逻辑实现的完整过程。
1. 概述与系统架构
本方案的目标是利用芯步提供的壁挂式人体存在传感器(支持红外/雷达双模)的开放API接口,进行二次开发,实现对指定照明设备(通过智能插座/继电器控制)的自动供电与断电控制,即实现“人来灯亮、人走灯灭”的智能化管理。
核心逻辑
数据采集:传感器实时监测人体存在状态(
infrared_target或雷达感应数据)。数据上报:状态发生变化时,传感器主动推送数据至用户指定的服务器。
业务处理:服务器接收数据,执行“无人且延迟计时结束”的逻辑判断。
指令下发:服务器调用芯步API接口,向继电器/插座下发开/关命令。
系统拓扑
感知层:壁挂式人体传感器(WiFi连接)。
执行层:智能墙壁插座/通断器(控制照明灯具)。
平台层:用户自建服务器(公网IP或内网穿透)或私有化部署环境。
交互层:HTTP API。
2. 环境准备与硬件配置
在开始编码之前,需要完成硬件设备的安装与云端/本地环境的配置。
2.1 硬件清单
芯步智能人体存在传感器[壁挂]:支持红外或雷达版本。
芯步智能Wi-Fi墙壁开关/插座:用于控制照明电路的通断。
照明设备:受控灯具。
2.2 接口机制理解
芯步的设备支持两种通讯模式,本方案结合两者使用:
设备上报(上行):传感器检测到环境变化(有人/无人)时,通过HTTP POST请求将数据发送到你的服务器。
设备下发(下行):你的服务器通过签名验证方式,向开关设备发送开启或关闭指令。
3. 核心开发指南:接口对接与签名计算
这是二次开发中最关键的环节。你需要通过代码处理设备的“消息推送”接收,并实现“设备控制”指令的封装。
3.1 接收传感器数据(配置消息推送)
为了让服务器能实时知道“有人来了”,需要在芯步控制台中配置“API推送”:
设置服务器地址:在控制台填入你的服务器接收地址(例如
http://yourdomain.com/api/sensor/callback)。数据格式
当人体状态变化时,你的服务器会收到如下的JSON数据包:
注意:如果使用双模传感器,通常需要“红外+雷达”同时判定为无人,才算无人,以减少误报。
3.2 下发控制指令(照明开关)
服务器需要向芯步API发起请求,控制开关设备。所有API请求都需要进行动态签名鉴权。
签名算法(Python示例)
根据官方文档,签名公式为:sign = md5( md5(AppSecret) + ts )。
AppSecret:开发者密钥。ts:当前Unix时间戳(秒)。
4. 照明电源控制的业务逻辑实现
为了避免灯光在人体短暂离开时误关闭(例如人静坐微动较少时),引入防误判机制和延迟逻辑。
4.1 状态机设计
状态A(占用):传感器上报
infrared_target=1-> 立即执行开灯指令。状态B(空闲):传感器上报
infrared_target=0-> 不立即关灯,启动计时器(例如30秒)。若30秒内再次收到“有人”信号:取消计时器。
若30秒后仍为无人:执行关灯指令。
4.2 核心伪代码实现
5. 高级功能配置(可选)
为了提升用户体验,可以利用芯步设备支持的设备配置项功能,将部分逻辑下沉到“边缘端”,以减少云端延迟和服务器压力。
5.1 边缘计算配置
芯步的传感器内部允许你配置“发现无人时线路动作” (relay_change_0)。虽然传感器本身不自带继电器,但这套机制同样适用于其控制的插座。
你可以直接配置传感器的参数,使其在探测到无人时,主动向同一局域网内的开关发送指令(如果支持局域网通讯),或者保持云端控制。
5.2 私有化部署(局域网方案)
对于办公环境或对响应速度要求比较高的场景,若网络环境允许,可将服务器部署在本地。
芯步设备支持私有化模式,数据直接推送到你的局域网服务器,无需经过公有云,延迟可降低至毫秒级。
6. 常见问题与排查
签名失败(401错误)
检查时间戳(
ts)是否为服务器当前时间(误差过大会被拒绝)。确认MD5加密后的字符串是否为32位小写。
人未走灯先灭
原因:红外传感器对静止人体不敏感。
解决:更换为“红外+雷达”双模版本,雷达能探测呼吸等微动;或调整代码中的延时逻辑至60秒以上。
设备离线
芯步产品仅支持2.4G WiFi,请确保信号强度。
数据未推送到服务器
检查控制台配置的
Callback URL是否在外网可访问(如果是本地测试,需使用内网穿透工具如Ngrok)。
通过以上步骤,你可以快速利用芯步的开放接口,将普通的壁挂式传感器改造成一套完整的智能照明节能控制系统。