先看看效果:
完成这项有趣的实验,你所需要的材料有:
1.电烙铁
2.一个8050三极管
3.一个继电器
4.一个路由器
5.一个树莓派
6.一个智能音箱 (我使用的是亚马逊 Echo Dot2)
7.一个普通台灯
我使用的是最基本的开关台灯,所以它只有一个开关按钮,也只有一个功能,那就是开关台灯(废话),现在我们需要让它能够被语音控制。由于我们可以让智能音箱和树莓派通信,所以只需要让台灯连接树莓派就能达成我们的目的,因此我们需要有一个能和这个台灯并联,并且能够接线出来让树莓派控制的器件。那就是继电器。
PS:为什么不能让树莓派像控制风扇一样,直接控制台灯呢?
因为台灯接的是220V电压,树莓派最大电压只有5V,树莓派是较小电流,较小电流要控制大电流则必须用继电器。
加上继电器后,其电路图就如同下面所示。
我们使用的继电器是这个小东西:
但由于我的台灯里的空间不够大(如下图所示),我只好拆出这个继电器的核心,当然如果你的台灯够大,就不需要考虑这一点了。
接下来讲一下继电器的使用(原理可见上方动图),其实是很简单的,把点灯开关的两条线接到COM端(共接点)和NO端(常开端),此外DC+, DC-分别连树莓派的5V电源和接地即可。然后从树莓派任意GPIO引脚中引线接继电器的控制端,这个控制端能控制NO端的开闭,当输入高电平的时候就是闭合,电路连通,灯亮。
不过需要注意的是,树莓派的GPIO口是3.3V的,你需要把它转化成5V才能进行控制,怎么转化呢?那就要使用上我们上一节 语音控制 - 改造普通风扇 讲的三极管了。
接完后如下图所示
这样,硬件方面的工作我们就做完了,接下来是软件方面的工作。
其实也就是让智能音箱识别到一个控制开关的命令,跟 利用智能音箱语音控制电脑开关机 中提到的一样。让树莓派使用fauxmo,模拟成许多智能设备,模拟的配置如下:
这样,智能音箱就会把这个设备的名字识别为 Light. 因此,当你说" turn on the light ", 它就会执行on_cmd命令,(在这个例子中,我们的path指向的文件MyLight.py即只是启动一个cmd命令而已)即执行 python GPIO13.py on . 相应地,"turn off the light"则执行off_cmd命令。
GPIO13.py 内只是控制树莓派的开关而已,如下图所示,它接收两个参数,on或off. 当参数是on的时候,向树莓派的GPIO33口输出高电平,灯亮。Off的时候则输出低电平,灯灭。
重启fauxmo,让智能音箱重新搜索,就能找到这个Light的设备,然后说一句 "turn on the light",就能享受这份折腾的成就感了。
最近我还发现,Amazon Alexa 的手机软件,还支持外网控制这些室内设备,如图。
因此,现在每当我要回到宿舍的时候,在宿舍楼下时,我都会先点击Fan,让它帮我开个风扇,然后根据我是要玩游戏还是要干活,再点击PC或Laptop. 如果是晚上,我还可以点击Light打开点灯。这就是新时代的生活,你得Catch Up。
无论是多么普通的设备,你都可以用一个树莓派把它变得智能。
利用智能音箱语音控制电脑开关机
语音控制 - 改造普通风扇
如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞,有任何问题都可以在下方留言,我们会耐心解答的!
Python实用宝典 (pythondict.com)
不只是一个宝典