这是一份关于将芯步带电源输出的人体存在传感器集成到自己项目中的解决方案。我尽量写得详细且口语化一些,方便你理解和落地。
适用产品:带电源输出的人体存在传感器(如:UNI-CGQ-RT-XD-H 红外版本、雷达吸顶版本等)技术门槛:初级/中级(懂基本的 HTTP 请求即可)核心理念硬件即服务,通过 API 调用传感器状态,并执行通断电动作。
一、 核心逻辑
这套方案的本质其实很简单。你可以把它想象成三个步骤:
硬件感知:传感器探测到环境里有没有人。
数据上报:硬件通过 WiFi 把这个状态(有人/无人)告诉云端或你的服务器。
逻辑触发:你的服务器根据这个状态,下发指令控制传感器自带的电源输出接口(比如开灯/关灯)。
这种模式最大的优势在于,你不用写复杂的嵌入式代码,也不用管 WiFi 连接稳定的问题,只需要调用 HTTP 接口,像访问网站一样去控制硬件。
二、 准备工作
在动手写代码之前,你需要在芯步的后台完成几个简单的配置:
注册与创建:注册一个开发者账号,创建一个“工作台”。
获取密钥:在开发设置中拿到你的 AppID 和 AppSecret。这相当于你调用接口的账号和密码。
设备配网:给传感器接上电,通过配网模式让传感器连上家里的 WiFi。这一步通常在官方 App 或小程序里完成,确保设备在后台显示为“在线”状态。
理解数据:你可以先通过控制台(网页后台)看一眼这个设备的属性。它会包含三个关键字段:
infrared_target(或radar_target): 这里显示是 1(有人)还是 0(无人)。power: 电源输出接口,1 代表通电,0 代表断电。
三、 集成步骤详解
现在进入技术核心部分。我们不需要搞复杂的 MQTT 长连接(虽然它也支持),为了集成简单,我们使用它的 HTTP 接口模式。
1. 如何获取设备状态?—— 轮询 与 回调
要集成到自己项目中,你主要有两种方式来知道“有没有人”。
方案 A:直接查询(适合简单的联动)
如果你只是做一个简单的灯控,或者在 Home Assistant、Node-RED 这类平台里做逻辑,你可以用定时查询的方式。
接口地址: http(s)://api.thingboot.com/{你的AppID}/device/info/?sign={签名}&ts={时间戳}
操作逻辑你写一个定时任务(比如每 2 秒执行一次),发一个 GET/POST 请求到这个地址。
如果返回数据中
infrared_target为 1:说明有人,你记录下状态。如果为 0:说明人走了,你可以准备关灯。
优点:简单,不需要搭建公网服务器接收数据。缺点:有延迟(最多延迟你设定的轮询间隔),且频繁请求可能会占用较多资源。
方案 B:实时接收上报(推荐,适合严肃项目)
芯步的设备支持 “状态变化实时上报” 。也就是说,当传感器从“无人”变成“有人”的那一刻,它会主动给你的服务器发一条消息。
怎么做
搭建一个 HTTP 服务端:你需要一个公网可访问的 URL(例如
http://你的域名/api/sensor_callback)。在控制台配置转发:在芯步的设备管理页面,设置“数据转发”目标为你上面的 URL。
接收数据:当有人进入,你的服务器会收到一条包含
infrared_target=1的 JSON 数据包。
优点:实时、零延迟、资源消耗极低。缺点:需要你有一个公网 IP 或域名,如果在家调试可以用内网穿透(如 frp, ngrok)。
2. 如何控制电源输出?—— 下发命令
这是这套硬件最好用的地方。传感器不仅会看人,它还自带一个继电器,可以直接切断或接通电线(通常是接灯)。
当你检测到“有人”后,你需要让传感器把电送上(灯亮);“无人”后,把电断了(灯灭)。
接口地址http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
请求方式:POST (JSON格式)
关键参数
device: 你的传感器设备 ID。
order: 这是一个 JSON