语音控制 - 改造普通台灯

发表于 技术原理, 教程—智能化普通家居, 神经网络及深度学习 2018-09-21 阅读数: 76

阅读这篇文章前,这两篇文章可能对你会有所帮助:

利用智能音箱语音控制电脑开关机

语音控制 - 改造普通风扇

先看看效果:

完成这项有趣的实验,你所需要的材料有:

1.电烙铁

2.一个8050三极管

3.一个继电器

4.一个路由器

5.一个树莓派

6.一个智能音箱 (我使用的是亚马逊 Echo Dot2)

7.一个普通台灯

我使用的是最基本的开关台灯,所以它只有一个开关按钮,也只有一个功能,那就是开关台灯(废话),现在我们需要让它能够被语音控制。由于我们可以让智能音箱和树莓派通信,所以只需要让台灯连接树莓派就能达成我们的目的,因此我们需要有一个能和这个台灯并联,并且能够接线出来让树莓派控制的器件。那就是继电器。

PS:为什么不能让树莓派像控制风扇一样,直接控制台灯呢?

因为台灯接的是220V电压,树莓派最大电压只有5V,树莓派是较小电流,较小电流要控制大电流则必须用继电器。

加上继电器后,其电路图就如同下面所示。

语音控制 - 改造普通台灯

我们使用的继电器是这个小东西:

语音控制 - 改造普通台灯

但由于我的台灯里的空间不够大(如下图所示,我还打了个孔,方便接出线),我只好拆出这个继电器的核心,当然如果你的台灯够大,就不需要考虑这一点了。

语音控制 - 改造普通台灯

接下来讲一下继电器的使用(原理可见上方动图),其实是很简单的,把点灯开关的两条线接到COM端(共接点)和NO端(常开端),此外DC+, DC-分别连树莓派的5V电源和接地即可。然后从树莓派任意GPIO引脚中引线接继电器的控制端,这个控制端能控制NO端的开闭,当输入1的时候就是闭合,电路连通,灯亮。

不过需要注意的是,树莓派的GPIO口是3.3V的,你需要把它转化成5V才能进行控制,怎么转化呢?那就要使用上我们上一节 语音控制 - 改造普通风扇 讲的三极管了。

接完后如下图所示

语音控制 - 改造普通台灯

这样,硬件方面的工作我们就做完了,接下来是软件方面的工作。

其实也就是让智能音箱识别到一个控制开关的命令,跟 利用智能音箱语音控制电脑开关机 中提到的一样。让树莓派使用fauxmo,模拟成许多智能设备,模拟的配置如下:

"MyLight": {

            "path": "/home/pi/Documents/fauxmo/src/fauxmo/plugins/MyLight.py",

            "DEVICES": [

              {

                  "name": "Light",

                  "port": 49919,

                  "on_cmd": "python2 /home/pi/Documents/Automatic/GPIO13.py on",

                  "off_cmd": "python /home/pi/Documents/Automatic/GPIO13.py off",

                  "state_cmd": ""

              }

            ]

        }

这样,智能音箱就会把这个设备的名字识别为 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的时候则输出低电平,灯灭。

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO

import time

import sys

# BOARD编号方式,基于插座引脚编号

GPIO.setmode(GPIO.BOARD)

# 输出模式

GPIO.setup(33, GPIO.OUT)

def turnOn():

    GPIO.output(33, GPIO.HIGH)

def turnOff():

    GPIO.output(33, GPIO.LOW)

if sys.argv[1] == 'on':

    turnOn()

elif sys.argv[1] == 'off':

    turnOff()

重启fauxmo,让智能音箱重新搜索,就能找到这个Light的设备,然后说一句 "turn on the light",就能享受这份折腾的成就感了。

最近我还发现,Amazon Alexa 的手机软件,还支持外网控制这些室内设备,如图。

语音控制 - 改造普通台灯

因此,现在每当我要回到宿舍的时候,在宿舍楼下时,我都会先点击Fan,让它帮我开个风扇,然后根据我是要玩游戏还是要干活,再点击PC或Laptop. 如果是晚上,我还可以点击Light打开点灯。这就是新时代的生活,你得Catch Up。

无论是多么普通的设备,你都可以用一个树莓派把它变得智能。

幻象客 二维码