这是一篇关于如何将芯步壁挂式人体存在传感器接入酒店管理项目的解决方案。我尽量写得详细、口语化一点,像个技术方案,但不是那种死板的说明书。
一、 痛点与目标:为什么要接入“存在感应”?
在酒店项目中,普通的红外传感器有个硬伤:你坐在马桶上不动,它以为没人,啪,灯灭了。这体验太糟糕了。
我们要接入的是 “人体存在感应雷达” 。它通过毫米波技术,能检测到呼吸引起的胸腔起伏微动。哪怕客人睡着了不动,它也知道房间里“有人”。
目标:把芯步的这款壁挂雷达(UNI-CGQ-RT-H-BG 这类型号)通过 HTTP 接口,接入到你自己的酒店管理后台或 PMS 系统,实现真正的“无感控电”。
二、 硬件准备:我们手头有什么?
根据官方参数,这款壁挂传感器有几个特点,对接前你要心里有数:
联网方式Wi-Fi 2.4G 直连,不需要网关。这省事儿了,酒店客房有 Wi-Fi 就能用。
通信协议HTTP 和 MQTT。如果你是想集成到自己项目里,最方便的就是 HTTP 接口,任何后端语言都能调。
供电:一般是 DC 5V 或 12V,工程安装时记得预留零线。
三、 核心对接流程:手把手教你调接口
芯步的接口设计得比较规整,核心就是“签名(鉴权)”+“指令下发”。
第一步:拿到钥匙(AppID & AppSecret)
你要先登录芯步的控制台。
找到“开发设置”。
你会看到两个字符串:
AppID和AppSecret。AppID就像你的“账号名”,接口知道是谁在调。AppSecret就像你的“密码”,千万别写死在网页前端代码里,一定放在后端。
第二步:学会算签名(Sign)
这是很多新手觉得头大的地方,其实芯步的算简单的。官方给的规则是:
Sign = md5( md5(AppSecret) + ts )
白话解释
把你刚才的
AppSecret做一次 MD5 加密,得到一串字符串。把当前的时间戳(比如
1715678900)拼接到这串字符串的后面。再把拼接好的这个新字符串,整体做一次 MD5 加密。
为什么要这么麻烦? 为了安全,防止别人抓包伪造请求。因为时间戳 ts 一直在变,签名也一直在变。
第三步:获取设备状态(看看传感器“看”到了啥)
你要想知道房间里到底有没有人,不能去门口敲,得去问服务器。
请求地址
https://api.thingboot.com/{你的AppID}/device/list/方法:GET 或 POST
核心逻辑调用这个接口,你会拿到一个 JSON 数据包。重点关注 state 字段。如果是人体存在传感器,它通常会返回类似 {"presence": 1} 或 {"occupied": 0} 的字段。
1或true代表 有人。0或false代表 无人。
你可以写一个定时任务(比如每 30 秒轮询一次),或者用 MQTT 订阅(如果支持),把“有人/无人”这个状态实时同步到你的数据库里。
第四步:下发控制指令(联动执行)
拿到状态后,你要做联动。比如:检测到 30 分钟无人 -> 关空调。
请求示例
URL
https://api.thingboot.com/{AppID}/device/control/?sign={你的签名}&ts={时间戳}Body (JSON)
注意:order 里的参数要看具体产品手册。如果是控制空调面板,可能传的是 {"mode": "off"},如果是控制插座,传 {"power": 0}。
四、 实战场景逻辑伪代码
假设你用 Python 写酒店的后台服务,逻辑大概是这样的:
五、 几个你可能会踩的“坑” (Tips)
信号干扰问题壁挂雷达虽然是毫米波,但如果你装在浴室,它可能会被浴霸或者排风扇的震动干扰,导致一直判断为“有人”。官方文档提到要注意安装位置,避免直面出风口或震动设备。
关于“离线”状态如果传感器连不上 Wi-Fi(比如客人拔了总闸),你的接口会报错(code 502 或 50xx)。你的代码里必须处理这个异常