1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文转载自 亚博智能论坛 前言dingdang-robot (以下简称“叮当”),是我在今年5月20号开源的一个基于树莓派的中文智能音箱项目。 起初,我只是抱着一个好玩的心态做这个项目,并不期望这个项目能得到多少关注。然而,随着 QQ 用户群人数的不断壮大,越来越多的朋友安装了叮当,并且真正将它投入在了日常的使用上。很多朋友也提出了各种好玩的建议、想法,甚至为叮当贡献了插件或者捐赠了这个项目,让我觉得这个项目是很有价值的,也让我知道,我能做的还有很多东西。因此,我并不是开源了叮当之后就撒手不管了,而是利用业余时间不断完善叮当,又陆续发布了 8 个小版本,使得叮当在响应速度和功能丰富程度上都有了很大提升:
除了完善已有的功能,我也正试图让叮当往智能家电控制中心的方向上发展。 如今很多智能音箱除了用来听歌对话之外,还扮演了家庭中的一个控制中心的角色。不过,由于各家采用的接入协议有所区别,A 家的智能家电并不见得能得到 B 家的智能音箱的支持。而由于叮当是开源的项目,对其进行定制,接入控制家电所需的协议,从而实现声控大部分的智能家电是完全可能的。今天我就分享一下如何用叮当控制智米电风扇。 智米风扇声控插件先上视频。这个视频演示了使用叮当实现对智米风扇的电源开关、摇头开关、自然风开关、风量调节、预约关机的声控: 安装插件 先安装 python2-miio :
[size=1em]
完成后重启叮当即可使用本插件。 指令列表指令 相同指令 用途 打开风扇启动风扇打开风扇 关闭风扇–关闭风扇 开启自然风启动自然风切换到自然风模式 关闭自然风关闭自然风切换到普通模式 开始摇头开启摇头开始摇头 停止摇头结束摇头,关闭摇头结束摇头 加大风速加快风速,加大风量,加大风力加大风扇转速 减少风速减慢风速,减少风量,减小风力降低风扇转速 $num $unit 后关闭风扇$num 是数字,$unit 可以是秒/分钟/小时预约关机 开发心得 下面说说开发心得。小米的智能家电使用的是 miio 协议。在编写这个插件之前,我先试用了 @homeassistantchina 提供的 HomeAssistant 的智米风扇插件 smart_mi_fan.py,这个插件在 HomeAssistant 里头的体验非常不错: 通过阅读这个插件,我发现这个插件依赖了一个封装了 miio 协议的 Python 3 的库 python-miio 。再阅读 python-miio 的源码,可以发现这个库就是通过 socket 来实现和家电的通讯的。整个发送消息的逻辑写成了一个 send 函数:
使用这个函数非常简单,只需要传入要发送的指令即可。 通过阅读 smart_mi_fan.py 的源码,不难发现 miio 的指令主要是两个类型:
了解了这个套路后,我只需要照着写一个叮当的插件,即可实现让叮当声控智米风扇的目标。 不过,在完成这个目标前,我还遇到了一个问题:python-miio 只能在 Python 3 环境中使用,而叮当是使用 Python 2 编写的。于是我对 python-miio 进行了 Python 2 版本的移植,发布为 python2-miio 。为了避免两个版本的 miio 命令行工具冲突,我把 python 2 版本的 miio 更名为 miio2 。 插件的编写过程也很轻松,和写其他的叮当插件一样的套路,所以整个插件我只用了一个晚上的时间就写好了。如果你看过我之前写的一篇编写叮当插件的教程《手把手教你编写叮当机器人插件》,那么阅读风扇声控插件的源码也不会很困难,这里就只放上源码链接:https://github.com/wzpan/dingdang-smart-mi-fan/blob/master/SmartMiFan.py。 最后就是插件的发布问题。考虑到这个插件比较私人——大部分用户并没有智米风扇,因此我并没有把它丢进 dingdang-contrib 中,而是单独创建了一个仓库来托管。对于需要使用这个插件的人,只需要将它放到个人的插件目录 /home/pi/.dingdang/custom 中,即可让该插件生效[1]。这样的好处是无需改动 contrib 目录,也不会影响 contrib 目录的更新。
原文 hahack.com 如需转载请注明出处! |
|
相关推荐
4 个讨论
|
|
mark !
|
|
|
|
|
|
1128 浏览 0 评论
359 浏览 0 评论
679 浏览 0 评论
开源项目!打造一款FPV头部追踪相机,让你仿佛置身遥控车之中!
1089 浏览 0 评论
1066 浏览 0 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:58 , Processed in 0.540177 second(s), Total 45, Slave 35 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号