一、背景
卧室里的空调是蛮久以前买的了,想要开关的话还得翻找遥控器,有时候在床上躺着了,觉得有点冷了又懒得去翻找遥控器了。又或者是准备到家的时候想用手机提前开下空调,这样回家就可以吹上空调了。 在网上找来找去,支持手机控制的红外遥控中心一般都得一两百,而且基本都不提供 API,得自己去扒接口。另外一台可以连 Wifi 的空调也是一样,只能在手机上打开阿里智能操作,很不方便。 自己之前买过和得到过很多板子,所以就想着废物利用,用上自己以前有的板子之类的东西来改造一下。 所以在本篇中造了个轮子来实现这些功能。二、所需硬件
本着废物利用的原则,这些东西基本上都是之前玩的时候买的,新买的只有那个红外收发模块,网上十多块就可以买到了,我买的这个是可以录制四个遥控器按钮的,串口发命令过去就可以录制和重放了(其实买个支持自解码学习的更合适,可以学习更多按键)。三、相关概念和角色说明
事件:用于触发消费者执行相关事件,包含所要触发的事件 ID。 生产者:产生事件的客户端,一般为用户的设备如手机或者电脑等,如在 iOS 上可以使用 workflow 产生事件,在 Mac 上可以用 Alfred。 消费者:消费事件的客户端,一般为智能家居设备等,在本例中为上面的 Wrtnode。 中继服务器:用于对所传来的事件在生产者和消费者进行中继。四、相关项目以及文件
服务器:https://github.com/glzjin/eventbridge-server Spring Boot 的项目,有 Java 运行环境的话用 jar 包直接运行就可以部署使用了。用于中继事件。 消费者客户端:https://github.com/glzjin/eventbridge-client-for-consumer 在 Openwrt/LEDE 上跑的消费者客户端,在本例中接收事件发串口让红外模块发送指令给空调。 iOS Workflow:https://workflow.is/workflows/794a1014c3a84f8cab110f12cf54f6b5 在开头填好生产者Key和服务器的 URL 就可以直接用了。


五、部署方法
1、先按照服务器的 Readme 部署好服务器,记录好生产者 Key 和消费者 Key。然后访问服务器地址,用工具里的 生成 UUID 生成一个消费者 UUID,也记录好,下面要用。 2、然后按照消费者客户端的部署方法在 Wrtnode 上部署好。同时访问服务器地址,在这里发送 event_id 为 5~8 的 事件,来让模块学习遥控器按键。
六、截图及演示视频



3 个评论
lingyu
厉害啊~
EventBridge + NodeMCU 组合–控制空调 – 赵
[…] 上一篇文章 […]
antior
博主很厉害,学习了!