前言
正如我之前文章闲置安卓手机再利用(三)之家庭电器自动化控制所说,不同的家庭智能设备需要不同的APP来控制,这样无疑是不方便的。那么我们可以自己设计一个集中化控制中心,比如设计一个网页、APP、或者接入微信来控制。
对于前面两种方案,我们需要设计后端、前端UI、前端交互、以及考虑不同平台的兼容性等,这无疑是个繁杂的过程,而使用我们日常都在使用的微信来实现那就只涉及到后端这一个步骤了,毕竟微信已经是一个成熟的APP了,我们只需发送特定消息,后端就能据此做出相应的操作。
同时,除了上面所说的设备控制,我们也以通过特定的命令获取相应的信息,比如室内环境状况、实时天气,或者实时股票价格,甚至于各种事项提醒,比如每天早上定时发送路况信息和天气、晚上发送一首帮助睡眠的歌曲等等。
而想要实现这些那就需要准备一个闲置的微信号,用来接受消息、命令和发送消息。那么怎么才能后台获取到微信的消息呢?除了我们常用的手机端微信和电脑微信,腾讯还出过一个web版的微信,就是用网页登陆的微信,而这里面的接口相对容易获取,通过这些接口我们就可以获取和发送我们想要的信息。
准备
构思需要实现的功能:
接入图灵机器人、控制家庭路由器、获取室内外温湿度、AQI环境、获取室内实时图像、控制空气净化器、发送电子邮件等等。
需用到的工具和python库:
闲置的微信号:用于接受发送消息。
wxpy:web微信的python封装。
requests——用于网络爬虫。
python-miio——小米智能设备开放接口的python3封装库,支持各种小米智能设备。
yagmail——电子邮箱的python库。
OpenCV——视频图像处理库,用于获取图像。
其他
开始
wxpy的详细接口请参考官方API。
接入图灵机器人,需要去图灵官网注册获取api_key。
需要注意的是机器人自动回复消息应排除掉公众号,因为公众号不会和瞎聊天的,回复他也是无意义的。
而特定命令消息就需要特定人给他发送才会生效,不然任何加了此微信号的人都可以控制你的家庭设备了,这样将是很可怕的。
部分代码:
部分功能演示:
智能机器人回复:
发送home命令,然后后端通过空气净化器和网络爬虫获取室内外环境数据,并自动回复:
获取家庭实时图像:
通过5g_on和5g_off控制家庭路由器5.8GHZ频段的WIFI信号开启和关闭:
后记
这里只演示了部分命令,理论上控制命令可以无限扩展以实现更多的控制。
另外如果有兴趣的朋友可以添加微信号scncpazl3,试着调戏这个人(ren)工(gong)智(zhi)能(zhang)机器人。同时如果你有相应的需求,需要通过微信命令控制自己的设备或者获取特定的信息,你也可以联系我并接入此微信号。
最后,无意间发现一个好玩的,我的微信号经常背着我和微软小冰各种尬聊,下面是部分聊天截图: