CATALOG

针对教学楼里品牌老旧、型号杂乱的空调,芯步的红外遥控器配合开放接口,可以低成本实现远程集中控制。下面是一套相对完整的解决方案,从硬件部署到接口对接都有涉及。

一、这事儿难点在哪?

之前跑过几个学校项目,发现教室空调管理基本处于“放养”状态。后勤老师最头疼的就是:夏天快放学了,某个教室空调没关,得专门跑一趟;冬天上课前,得提前去开空调预热,不然学生冻得直哆嗦。

更麻烦的是,学校里空调品牌五花八门——格力、美的、海尔都有,甚至同一栋楼里型号都不一样。你要说换空调?那预算谁都批不下来。

所以最务实的方案就是:不动原有空调,加装红外遥控器,通过接口统一控制

二、整体思路

用芯步的智能红外遥控器,大概的思路是这样的:

  1. 每个教室放一个红外遥控器,对准空调

  2. 遥控器连上校园WiFi

  3. 你写的后端程序通过芯步的HTTP接口,告诉遥控器该发什么指令

  4. 如果需要课表联动,再加上定时任务或者课表接口对接

一句话概括:遥控器就是个“传话的”,你的项目通过API指挥它,它用红外指挥空调

三、硬件准备与部署

3.1 需要买什么

就是芯步那个智能红外空调遥控器,型号一般是UNI-YKQ-HW。注意几个点:

  • 支持市面上90%以上的空调(格力、美的这些肯定没问题)

  • 走WiFi 2.4G,不需要额外买网关

  • 官方说开放HTTP接口,这个后面会用到

3.2 怎么装

每个教室放一个,位置有讲究:

  • 必须对准空调:红外线是直线传播的,中间不能有遮挡

  • 距离别太远:一般5-8米以内比较稳

  • 避开阳光直射:阳光里有红外线,会干扰信号

安装高度的话,离地2米左右或者直接吸顶都行,关键是红外能“看见”空调。

3.3 配网步骤

这一步稍微有点绕,但照着做就行:

  1. 先去芯步官网注册账号,创建一个“工作台”

  2. 在物联网控制台里,把你教室的WiFi名称和密码登记进去(注意必须是2.4G频段,5G不行)

  3. 给遥控器通电,用手机小程序或者电脑网页给它配网,让它连上刚才登记的WiFi

配网成功后,在控制台能看到设备状态,这时候可以先试一下能不能用网页手动控制空调开关——如果网页能控,说明硬件部署好了。

3.4 一个坑提前说

教室WiFi如果信号不好,遥控器可能会掉线。部署前先测一下每个教室的信号强度,别等装完了才发现连不上。

四、接口对接 —— 代码层面的活儿

这是核心部分。芯步开放了HTTP接口,意味着任何能发HTTP请求的语言都能调——Java、Python、Go、PHP都可以。

4.1 先搞清楚怎么鉴权

调用接口之前需要搞定签名(sign)。官方的规则是这样的

sign = md5( md5(AppSecret) + ts )

其中:

  • AppSecret:你账号的密钥,在控制台能看到

  • ts:当前时间戳(秒)

  • md5():就是MD5加密

“套娃”步骤拆开说的话:

  1. 先把AppSecret做一次MD5,得到字符串A

  2. 把字符串A和时间戳拼接起来,得到字符串B

  3. 再把字符串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断了)

  • 红外被挡住了

  • 命令参数空调不支持(比如模式值写错了)

要确认空调真的执行了,有两种方式:

  1. 靠人眼确认(不太现实)

  2. 接芯步的消息推送,他们会异步推过来一个执行结果

五、做一个简单的管理后台

硬件和接口都有了,但总不能让老师直接调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请求就行。真正需要花心思的,反而是怎么让管理界面好用、定时策略合理。毕竟,让后勤老师觉得“这东西确实帮我省事儿了”,项目才算真成功了。