针对教学楼里品牌老旧、型号杂乱的空调,芯步的红外遥控器配合开放接口,可以低成本实现远程集中控制。下面是一套相对完整的解决方案,从硬件部署到接口对接都有涉及。
一、这事儿难点在哪?
之前跑过几个学校项目,发现教室空调管理基本处于“放养”状态。后勤老师最头疼的就是:夏天快放学了,某个教室空调没关,得专门跑一趟;冬天上课前,得提前去开空调预热,不然学生冻得直哆嗦。
更麻烦的是,学校里空调品牌五花八门——格力、美的、海尔都有,甚至同一栋楼里型号都不一样。你要说换空调?那预算谁都批不下来。
所以最务实的方案就是:不动原有空调,加装红外遥控器,通过接口统一控制。
二、整体思路
用芯步的智能红外遥控器,大概的思路是这样的:
每个教室放一个红外遥控器,对准空调
遥控器连上校园WiFi
你写的后端程序通过芯步的HTTP接口,告诉遥控器该发什么指令
如果需要课表联动,再加上定时任务或者课表接口对接
一句话概括:遥控器就是个“传话的”,你的项目通过API指挥它,它用红外指挥空调。
三、硬件准备与部署
3.1 需要买什么
就是芯步那个智能红外空调遥控器,型号一般是UNI-YKQ-HW。注意几个点:
支持市面上90%以上的空调(格力、美的这些肯定没问题)
走WiFi 2.4G,不需要额外买网关
官方说开放HTTP接口,这个后面会用到
3.2 怎么装
每个教室放一个,位置有讲究:
必须对准空调:红外线是直线传播的,中间不能有遮挡
距离别太远:一般5-8米以内比较稳
避开阳光直射:阳光里有红外线,会干扰信号
安装高度的话,离地2米左右或者直接吸顶都行,关键是红外能“看见”空调。
3.3 配网步骤
这一步稍微有点绕,但照着做就行:
先去芯步官网注册账号,创建一个“工作台”
在物联网控制台里,把你教室的WiFi名称和密码登记进去(注意必须是2.4G频段,5G不行)
给遥控器通电,用手机小程序或者电脑网页给它配网,让它连上刚才登记的WiFi
配网成功后,在控制台能看到设备状态,这时候可以先试一下能不能用网页手动控制空调开关——如果网页能控,说明硬件部署好了。
3.4 一个坑提前说
教室WiFi如果信号不好,遥控器可能会掉线。部署前先测一下每个教室的信号强度,别等装完了才发现连不上。
四、接口对接 —— 代码层面的活儿
这是核心部分。芯步开放了HTTP接口,意味着任何能发HTTP请求的语言都能调——Java、Python、Go、PHP都可以。
4.1 先搞清楚怎么鉴权
调用接口之前需要搞定签名(sign)。官方的规则是这样的
sign = md5( md5(AppSecret) + ts )
其中:
AppSecret:你账号的密钥,在控制台能看到
ts:当前时间戳(秒)
md5():就是MD5加密
“套娃”步骤拆开说的话:
先把AppSecret做一次MD5,得到字符串A
把字符串A和时间戳拼接起来,得到字符串B
再把字符串B做一次MD5,得到最终的sign
另外每个请求还要带上你的AppID(直接在URL路径里写)和ts参数。
4.2 控制一台空调的API长什么样
接口地址
请求方式:POST(参数多的时候推荐用JSON格式)
核心参数
device:遥控器的设备ID(在你控制台能看到,一般是数字)order:要下发的命令,比如{"power":1}是开机,{"power":0}是关机
完整请求示例(JSON格式)
参数解释:power:1 开机,mode:2 制冷模式,temp:24 24度,speed:2 中风速。
4.3 顺手把常用命令整理出来
方便查,自己在代码里定义常量或者枚举:
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 开机 | {"power":1} | - |
| 关机 | {"power":0} | - |
| 制冷模式 | {"mode":2} | 0自动、1制热、2制冷、3抽湿、4送风 |
| 温度设置 | {"temp":26} | 范围16-30度 |
| 风速设置 | {"speed":2} | 0自动、1低、2中、3高 |
不同空调型号可能参数范围略有差异,最好先用控制台手动测试一下,确认命令有效再写代码。
4.4 写个封装函数
以Python为例,可以封装成这样:
其他语言类似,核心就是拼好URL,带上签名,POST一个JSON过去。
4.5 一个返回值陷阱
接口返回200不代表空调真的动了,只表示平台成功把指令发出去了。如果空调没反应,可能是:
遥控器离线了(WiFi断了)
红外被挡住了
命令参数空调不支持(比如模式值写错了)
要确认空调真的执行了,有两种方式:
靠人眼确认(不太现实)
接芯步的消息推送,他们会异步推过来一个执行结果
五、做一个简单的管理后台
硬件和接口都有了,但总不能让老师直接调API吧。所以需要一个简单的管理界面,功能不用多复杂:
5.1 设备管理
哪个遥控器装在哪个教室,得有个对应关系
最好存个教室-设备ID的映射表
5.2 单控功能
选中某个教室,点一下开机/关机/调温度
其实就是把上面那个API调用包装成按钮
5.3 批量控制
“整栋楼关机”、“所有教室设26度”
后端循环调用接口就行(注意芯步限制一次最多100台设备)
5.4 定时任务
早上8点提前开空调
晚上9点统一关机
这个可以自己写个定时脚本(cron job),到点调API
5.5 权限分级(如果学校要求)
普通老师:只能控制自己班的
后勤主任:能控制全楼
这在前端或者后端做权限校验就行,和空调接口没关系
六、进阶:和课表系统联动
如果学校有课表系统(或者你愿意自己维护一个),可以做更智能的控制:
上课前15分钟:自动开启对应教室空调
下课/放学:自动关闭
没人上课的教室:保持关闭,不浪费电
实现方式就是写一个定时任务,每隔几分钟跑一次,查一下当前时间段哪些教室有课,然后调用API控制对应的遥控器。
之前看到一个实际案例,某学校用类似方案做到了“三位一体”管控:远程手动控制、现场授权后控制、程序定时控制。效果很明显,电费省了不少。
七、几个踩坑经验
7.1 红外信号可能串
如果两个教室离得很近,A教室发指令可能把B教室的空调也开了。解决方案:
物理隔离:装的时候调角度,让红外覆盖范围刚好在这个教室里
不行的话就加装红外屏蔽罩
7.2 夏令时/冬令时
学校的作息时间会变,定时任务的配置要支持分时段设置,别放暑假了空调还在每天自动开。
7.3 设备离线告警
写个监控脚本,定时查询遥控器在线状态(芯步接口应该支持)。如果哪个教室的遥控器掉线了,给管理员发个告警,别等到要用的时候才发现控不了。
7.4 先小范围试
别上来就把全校教室都装了。先装一栋楼或者几个教室跑一周,确认稳定再推广。
八、写在最后
说实话,这套方案的核心思路就是:用红外遥控器当中间人,用HTTP接口把控制权交给你。对于学校这种空调品牌杂、又不想花大钱换新设备的场景,算是比较务实的选择。
实现起来技术门槛不高——会发HTTP请求就行。真正需要花心思的,反而是怎么让管理界面好用、定时策略合理。毕竟,让后勤老师觉得“这东西确实帮我省事儿了”,项目才算真成功了。