这个方案围绕壁挂式智能感应控制器(雷达+红外“双模”)与软件平台的集成展开,核心是两种数据流模式:主动推送(Webhook)适合实时状态更新,被动查询(HTTP拉取)适合批量巡检。以下是详细的实操流程和关键配置。
解决方案:图书馆自习室人体存在感应——壁挂式智能感应控制器接入软件项目
1. 项目概述与选型依据
在图书馆自习室场景中,精准的人体存在检测是实现灯光节能、座位释放状态更新和空间利用分析的关键。不同于普通的红外传感器(PIR)只能检测移动,毫米波雷达传感器能通过微动感知检测“静坐”状态,防止用户在灯下学习时系统误判为无人而导致关灯或销座。
设备选型:推荐采用芯步 UNI-CGQ-RT-BG-HL (或同系列智能人体存在传感器)。该设备具备以下特征:
“双模”技术:红外 + 雷达,支持静态人体存在检测。
网络直连:支持 2.4G WiFi 直连,无需额外网关,降低部署成本。
开放接口:提供标准的 HTTP 接口与 MQTT 协议支持,可无缝对接 Web、App 及本地服务器。
2. 技术设计
为了实现从物理设备到业务数据库的数据流转,采用 “设备主动推送 + 业务系统回调” 的非对称架构。
感知层:壁挂式设备通过 WiFi 连接至现场无线网络。
传输层
上行(数据上报):设备检测到有人/无人状态变化后,主动向业务服务器(或芯步云平台)推送状态。
下行(指令下发):软件项目通过调用 OpenAPI 向设备下发重启或配置指令。
应用层:Java/Go/Node.js 后端服务,负责验签、解析 JSON 数据,并更新数据库中的座位状态。
3. 设备接入与初始化配置
在编写代码前,首先需要完成硬件的网络配置及平台注册,这是接口调用的前置条件。
设备配网
通过“芯步小程序”或“物联网控制台”对设备进行配网。
操作要点:由于图书馆 WiFi 通常需要认证或存在多 AP 信号,需将设备的 MAC 地址加入路由器白名单,并引导设备连接信号最强的 2.4G WiFi。
获取凭证
在 ThingBoot 控制台获取
AppID和AppSecret,以及设备的唯一标识Device ID(MAC 地址或设备 SN)。
配置推送地址
在控制台设置“消息推送 URL”为你后端服务器的公网地址(例如:
https://api.yourdomain.com/yoyo/callback)。这是接收“有人/无人”事件的核心步骤。
4. 接入:数据接收与解析
这是软件项目最核心的部分。设备检测到状态变化时,会将数据打包发送至配置好的服务器地址。
4.1 数据接收端点实现你需要开发一个 POST 接口(即之前配置的 Callback URL)。该接口需具备处理 JSON 体并验证签名安全性的能力。
4.2 核心字段解析(物模型)根据产品手册,重点关注 infrared_target (红外感应) 以及雷达感应数据。对于人体存在传感器,核心载荷主要包含以下字段
| 字段名 (Key) | 类型 | 说明与业务处理逻辑 |
|---|---|---|
device_id | String | 设备唯一ID,用于关联数据库中的具体座位编号。 |
infrared_target | Int | 红外感应值。 1 为“有人”, 0 为“无人”。 |
radar_target (如有) | Int | 雷达感应值,常用于辅助确认微动。 |
timestamp | Int | 事件触发时间戳(Unix秒级),用于防止重放攻击。 |
power | Int | 设备通断状态。 |
4.3 防误判与业务逻辑优化针对自习室场景,用户可能会趴在桌子上小憩,导致动作幅度极小。为了避免系统误判为“无人”,在后端实现“状态延迟确认机制”
逻辑示例:当收到
infrared_target= 0 的信号时,不要立即释放座位。处理策略:启动一个 30秒 - 1分钟 的定时器。若在此时间段内未再次收到“有人”信号,再将数据库状态更新为“空闲”。若中途收到“有人”信号,则取消定时器。
5. 反向控制:查询与维护
除了被动接收事件,软件项目还需要主动查询设备状态(例如管理员在后台刷新设备在线情况)。
5.1 鉴权方式芯步的开放接口采用 sign 签名验证,所有 HTTP 请求均需携带签名。签名生成逻辑(以伪代码为例)sign = md5 ( md5 ( AppSecret ) + ts )
| 参数 | 示例值 | 说明 |
|---|---|---|
AppSecret | abc123 | 开发者密码 |
ts | 1713400000 | 当前 Unix 时间戳 |
| 计算过程 | md5 ( md5(‘abc123’) + ‘1713400000’ ) | 先对 Secret 进行 MD5,再拼接时间戳,整体再 MD5 一次。 |
5.2 主动查询设备状态API 端点示例GET https://api.thingboot.com/{AppID}/device/query/
请求参数
device_id:需要查询的设备 ID。sign&ts:按上述规则拼接。
返回处理:接口会返回设备当前是否在线、最新的红外感应值。这适用于系统重启后同步所有座位的初始状态。
6. 特殊场景:私有化部署(局域网模式)
图书馆对于数据安全和外网依赖性通常有较高要求。芯步的硬件支持私有化部署。你可以将设备配置为连接本地 MQTT Broker 或自建服务器:
适用情况:图书馆内网无法访问公网,或对数据出校门有严格管控。
实施步骤:刷写私有化固件,在配置中将设备的
Broker Address指向你部署在图书馆机房内的 Mosquitto 或 EMQX 服务器。软件改动:后端服务不再调用公网 API,而是直接订阅本地 MQTT 主题,实现数据的内网闭环流转,延迟更低、更稳定。
7. 接入流程总结
硬件部署:安装壁挂设备通电,小程序配网绑定。
环境准备:获取 AppID 与 Secret,配置服务器回调 URL(或部署本地 Broker)。
后端开发
编写
signature生成工具类。编写
Callback接口接收数据,实现座位状态机逻辑。(可选)编写主动查询接口用于运维。
联调测试:人为遮挡传感器,观察数据库状态变化。
通过上述步骤,你可以将壁挂式人体存在传感器完整地融入到图书馆管理系统中,实现即便用户在座位上看书不动,也能保证不断电、不释放座位的智能化管理效果。