培训教室这种场景,最烦的就是人走了空调还开着、灯还亮着——电费哗哗地跑。普通的那种几块钱的PIR红外传感器,人坐着不动它就以为“没人了”,直接给你关灯,学员在下面记笔记突然一片黑,体验很差。
芯步这款吸顶式红外传感器(型号UNI-CGQ-RT-XD-H)有个核心优势:它检测的是“人体存在”而非“人体移动”。哪怕学员安静地坐在那儿看书,它也能感知到。而且它开放HTTP接口,不用折腾网关,直接通过WiFi跟你服务器通信。
下面说说怎么把它集成到你现有的项目里。
一、先搞明白硬件怎么装
这玩意儿长得像个小圆饼,直径61mm,装在天花板上。强烈让电工来装,因为它是220V直接供电的,不是插USB的。你可能会问:为啥不装墙上?因为教室里桌椅多,天花板360度探测无死角,不会被前排学员的后脑勺挡住。
安装高度2.5-5米之间,它能覆盖直径大概5-6米的圆形区域。一个标准的30人教室,中间装一个基本够了。
它还有个“隐藏技能”——自带一路继电器输出(就是两根线,可以控制220V的通断)。你可以直接把教室的灯或空调的接触器串在这上面。这样就算你的服务器宕机了、网络断了,只要传感器检测到没人,它自己就能把设备电源切掉,做个“物理兜底”。
二、核心玩法:HTTP接口对接
这是重点。芯步的设备不依赖他们的云,你可以让它直接把数据往你自己的服务器IP上推。
1. 先告诉设备:数据发到哪
设备默认是广播模式,你得先告诉它你的服务器地址。
方法有两种:
懒人法:在芯步后台,找到这台设备,把“数据上报URL”改成
http://你的服务器IP:端口/api/sensor/callback。极客法:通过API接口下发配置,告诉它目标地址(适合批量操作)。
2. 数据的格式长啥样
设备一旦检测到“没人”变成“有人”,或者“有人”变成“没人”,立马给你的服务器发POST请求,数据格式是JSON。下面是一个示例(我模拟了一下):
这时候你后端要干啥?
收到这个请求后,至少得做三件事:
存数据库:记录一条日志,比如
2024-01-01 10:00:00 教室A 变成有人。逻辑判断:如果是“无人”状态,去查一下数据库,比如连续10分钟都是无人,再执行关设备动作(留个缓冲时间,防止出去上厕所误关)。
触发联动:调用你们自己的API去关空调、或者发钉钉消息给保洁阿姨说这间教室空了。
3. 反控:远程强行开/关灯
有时候需要远程干预,比如保安在监控室看到教室没人但灯还亮着(可能传感器没触发),可以手动关。
你可以从你的后端发起一个HTTP请求去控制它。根据芯步的文档,控制命令大概长这样
请求地址
http(s)://api.thingboot.com/{你的AppId}/device/control/请求体
需要加签名,不过他们SDK里通常封装好了,把AppId和AppSecret填进去就行,不用自己算。
三、消除误报的几个小细节(血泪经验)
装红外传感器最怕误报,你可以调几个参数让体验更丝滑
延时触发:设置
infrared_change_0(无人持续时间)为“30s”或“1m”。意思是检测到没人后,等30秒再上报“无人”,避免学员翻了个身或者找笔的动作导致频繁开关。搞个“二选一”逻辑:如果教室里有摄像头或者毫米波雷达,可以把两者的信号做个“与”判断——两个都说有人才真算有人,一个说没有就再等等看。
关于WiFi干扰:这个设备是2.4G WiFi的。注意如果教室路由器开了“双频合一”,有时候2.4G信号会不稳。在路由器里给这个设备单独分一个2.4G频段,或者把双频合一关掉,会稳很多。
四、总结一下集成的代码逻辑
如果你不想看上面原理,只想看伪代码怎么写,大概是这样:
用芯步这套方案,基本上就是把传感器当成一个“触发源”,你只需要在自己的服务器上写接口接收它发来的有人/无人信号就行。他们帮你搞定了硬件连接和数据上云,你需要操心的是业务逻辑——比如“无人多久才算真的无人”、“有人时要不要自动开灯开空调”。
先把设备通上电配好网,写个简单的print打印一下收到的数据,看到数据推过来了,后续就好办了。