CATALOG

这是一个比较实际的需求——把“检测到人”和“执行动作”之间的链条用代码串起来。芯步的壁挂式雷达传感器本身不支持直接对外发HTTP命令,但它的开放接口可以作为“触发器”,配合后端服务来实现远程控制。下面这套方案的核心思路是:传感器上报数据 → 你的服务器接收 → 你的服务器调用控制器接口

一、咱们先捋一捋:这东西能干啥?

首先,咱们得搞清楚这个“壁挂式微波雷达探测器”是个啥玩意儿。

简单说,它就是个会吐数据的传感器。它不像插座或者开关那样,你发个指令过去它就能“咔哒”一下断开电。它的本职工作是:感知有没有人

  • 探测范围:官方参数说,6米内能感应到人的走动(运动),4米内能探测到人坐着抖腿、打字这种微小的动作(微动/存在)

  • 它会上报啥:只要人体状态变了(比如从“有人”变成“无人”,或者反过来),它就会给你的服务器发一条HTTP请求。

核心难点攻克既然它只是一个“传感器”,那怎么实现“远程控制”呢?思路:你需要一个中间人(你自己的服务器) 。雷达把数据报给你,你做判断,然后你再调用芯步其他执行类设备(比如控制器、插座)的接口去断电。

通俗点说:雷达是眼睛,你的服务器是大脑,控制器是手。眼睛看到人走了(上报无人),大脑一想“该关灯了”,就命令手去关开关。

二、准备工作:需要拿到的三把钥匙

动手之前,先把这几样东西备齐,不然没法调接口:

  1. 硬件设备

    • 壁挂式微波雷达传感器 (型号一般是 UNI-CGQ-RT-L-BG2)

    • (可选)执行设备,比如“智能控制器4路”或者“智能插座”,用来真的断电。

  2. 平台凭证

    • 去芯步控制台注册,拿到 AppIDAppSecret。这就好比是你的账号密码。

    • 拿到设备的 Device ID(在控制台后台能看到)。

  3. 一个公网服务器

    • 你需要一个能接收HTTP请求的地址。雷达发现状态变化后,是要往这个地址“撞”数据的。

三、核心玩法:两种实现“远程控制”的姿势

既然说到了“远程控制”,我们需要分两种情况看,看你到底是想让雷达“触发”动作,还是想“查询”雷达状态。

第一种场景:自动化联动(最常见玩法)

需求:房间无人超过1分钟,自动关灯关空调。

原理:雷达探测到无人 -> 上报数据给你的服务器 -> 你的服务器判断无人 -> 你的服务器调用断电接口

Step 1:配置雷达上报地址(回调接口)你要在雷达设备的后台设置,或者在代码里配置,告诉雷达:“哥们,你要是检测到状态变了,就往 http://你的服务器IP:端口/radar/callback 这个地址发数据”。

Step 2:写一个接收雷达数据的接口(代码示例 - Python Flask)这个接口是用来等雷达主动找你的。芯步上报的数据格式一般是JSON。

Step 3:如何实现“远程控制”?如果你想在手机上点一下按钮就把雷达关了(或者说让雷达失效),其实你控制的是逻辑开关你可以在你的服务器里加一层判断:如果用户在App点了“关闭探测”,你就往 redis 里写一个标志位,雷达上报数据时,检查到标志位是关,就不去触发断电。

第二种场景:主动查询(实时状态获取)

需求:我想在手机App上看一眼,现在办公室里到底有没有人。

原理:你的App发请求 -> 你的服务器 -> 芯步平台 -> 雷达设备(或者查上一次上报的缓存)。

这里需要澄清一点:雷达设备通常是主动上报的,它没有公网IP,你很难直接从App穿透网络去“问”它现在有没有人。正确的做法

  1. 缓存法:你看上面写的 /radar/callback 接口,每当雷达上报数据,你就把当前的人体状态存到数据库或者缓存里。

  2. 查询接口:当你在手机App上点击“查询”时,你的后台直接去数据库里取最后一次存的状态返回给App。

  3. 直接下发命令(不推荐) :虽然芯步的设备支持HTTP接口下发命令,但雷达主要任务是检测。如果你想“远程控制雷达开关”,可以用下面的命令。

四、进阶:直接给雷达下发指令(比如关掉探测)

虽然雷达是传感器,但它既然是联网的,其实也是可以接收命令的。根据芯步的开放接口规范,你可以主动给雷达发命令。

接口地址POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

请求参数示例如果你想远程把雷达的探测功能关掉(省电或者避免干扰),可以试试发这个json:

注:具体命令名要看产品文档,有些设备是 radar_enable 或者类似参数

五、几点实战小贴士(避坑指南)

  1. 关于时间戳和签名芯步的接口为了安全,一般要求带上 signts。这个 sign 是把你的 AppSecret 和参数拼在一起算出来的。这个东西比较容易踩坑,直接用官方SDK或者仔细核对签名算法

  2. 心跳和离线雷达是WiFi设备。如果它断网了,你就收不到数据了。在你的业务逻辑里加一个心跳超时判断。比如如果雷达超过5分钟没发数据过来(没数据可能代表设备离线),你可以默认判定为“无人”或者发送告警。

  3. 去抖/防误判雷达有时候会有误报(比如窗帘飘动)。不要雷达一发“无人”你就立马关灯。可以在你的代码里加个延时收到“无人”状态后,等待 30 秒或 1 分钟,再去请求一次雷达的当前状态(或者看这1分钟内有没有连续的“无人”上报),确认真的是无人了,再执行断电操作。

  4. 纯局域网部署如果你比较注重隐私或者没有公网,芯步这套是支持私有化部署。你可以把整个流程跑在局域网里,只要你的服务器和雷达在同一个网段,通信非常快。

六、总结一下这个方案

搞定这件事,其实就三步:

  1. 雷达配置:把雷达的HTTP上报地址指向你的服务器。

  2. 中转服务:写一个接口(就像上面Python写的那个),等着收数据,收了数据就按逻辑去调芯步的控制接口

  3. 执行动作:你的服务器去调用4路控制器或者智能插座的断电接口。

雷达本身不干活,它只是个情报员。等你用HTTP接口把这条路跑通了,你就能实现人走灯灭、人留灯亮,甚至还能在手机App上看到哪个摸鱼的同事躲在角落里——这才是物联网的乐趣所在。