芯步的传感器采用HTTP API直连方式,无需网关,感应延时需要通过业务逻辑层(即你的服务器)来实现——传感器只负责上报“有人/无人”状态,你的服务端根据业务需求延时处理并下发指令。以下是具体方案。
1. 背景:为什么无法“直接设置”传感器?
首先需要明确一个硬件特性:芯步的壁挂人体存在传感器(无论是红外还是雷达版)主要是数据采集与上报设备。它内部通常不具备复杂的定时逻辑存储功能(非可编程逻辑控制器)。
机制:传感器探测到“有人”或“无人”状态变化时,会实时向你的服务器推送状态数据 。
策略“感应延时” 的逻辑通常不在传感器端执行,而是在云服务器端(或本地服务器)通过代码逻辑实现。
简单来说,你需要扮演“指挥官”的角色:传感器负责“报告情况”(有人/无人),你的服务器负责“下达指令”(延时后执行动作)。
2. 核心原理:服务端逻辑控制
要实现“感应延时设置”(例如:人离开后5分钟才关灯,或人进入后延时2秒才开灯),流程图如下:
sequenceDiagram
participant Sensor as 壁挂传感器
participant Server as 你的应用服务器
participant Device as 执行设备(如开关/灯)
Note over Sensor: 状态变为"有人"
Sensor->>Server: HTTP上报 (Occupancy: 1)
Server->>Server: 执行业务逻辑(如立即触发)
Server->>Device: 下发指令(开灯)
Note over Sensor: 状态变为"无人"
Sensor->>Server: HTTP上报 (Occupancy: 0)
Server->>Server: 启动计时器(延时5分钟)
Note over Server: 等待5分钟...
Server->>Server: 计时结束,检查状态
Server->>Device: 下发指令(关灯)核心思路:利用服务器的计算能力处理延时,而非依赖硬件固件。
3. 详细对接步骤
第一步:准备接口凭证
你需要先在芯步控制台获取以下凭证
AppID:应用唯一标识。
AppSecret:开发者密码(用于签名)。
Device ID:传感器的设备ID(通常贴在设备背面或扫码添加后获得)。
第二步:接收传感器的实时数据(消息推送)
传感器是“主动说话”的设备。你需要搭建一个公网可访问(或在局域网内私有化部署)的HTTP服务器,用于接收传感器的上报数据。
接口示例:你需要实现一个POST接口来接收数据。
关键字段:在接收到的JSON数据中,你需要关注
occupancy或presence字段(具体字段名请参考该传感器的产品手册),通常1代表有人,0代表无人。
第三步:编写延时控制逻辑(Python示例)
这是实现“感应延时”的关键步骤。以下是一段伪代码/示例逻辑,展示如何在服务器端做5分钟延时关灯:
第四步:下发命令给执行设备(联动)
当延时逻辑触发后(如上面代码中的 control_light 函数),你需要调用芯步的设备控制接口,向灯、插座或喇叭下发指令 。
HTTP 控制请求示例:
URL:
https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}Method: POST
Body (JSON)
签名计算:
md5( md5(AppSecret) + ts )
4. 两种具体的“延时”业务场景实现
根据你的实际需求,代码逻辑需要微调:
| 场景 | 需求描述 | 实现方案 |
|---|---|---|
| 第一种场景 | 无人延时关灯(人离开卫生间5分钟后自动关灯) | 收到 occupancy=0 时,不立即执行,而是启动定时器等待5分钟。期间若收到 occupancy=1,则取消定时器。 |
| 第二种场景 | 有人延时开灯(进入黑暗区域立即亮灯,或延时2秒) | 收到 occupancy=1 时,立即执行开灯(一般不需要延时)。 |
| 第三种场景 | 去抖/防误报(防止动物经过或干扰导致误判) | 收到 occupancy=1 后,等待5秒钟,如果5秒后依然是 1,才判定为真有人并执行动作。 |
5. 注意事项(避坑指南)
私有化部署(局域网) :如果你担心数据延迟或隐私问题,芯步支持私有化部署 。你可以将消息服务器地址配置为本地服务器IP,所有数据在内网流转。
频率限制:开放接口有访问频率限制(1次/秒)。在下发命令或处理大量上报时,注意控制请求频率,避免被限流。
时间戳有效期:调用控制接口时,
ts(时间戳)为中国时间,且偏差过大会报错bad ts。占用状态 vs 触发状态:普通红外传感器可能只上报“触发瞬间”,而人体存在传感器(特别是雷达版)的优势在于能持续上报“静态存在”。请一定要确认你使用的传感器型号支持静态存在检测(如型号中的“雷达”版),否则人静止不动时可能误报“无人” 。
6. 总结
要对芯步的壁挂传感器实现“感应延时设置”:
硬件侧:无需设置,只需要配置好WiFi并将消息推送到你的服务器地址。
软件侧在你的服务器上写代码。利用语言(Python/Java/Go/Node.js等)的定时器机制,根据传感器上报的“有人/无人”状态,延时触发相应的设备控制指令。
如果你对代码编写不熟悉,可以联系芯步的技术支持,他们有现成的Java、PHP、Javascript等语言的SDK示例可以参考 。