- 优质材料:
- 第1部分:使用SSH和VNC设置Raspberry Pi
- 第2部分:在Raspberry Pi上设置您的Amazon开发人员帐户并配置Alexa语音服务:
- 第3部分:为Alexa Pi家庭自动化设置PubNub和IFTTT :
- 第3-2部分:为Amazon Alexa服务设置IFTTT:
- 第4部分:硬件连接和电路图:
- 第5部分:用于控制灯光的Python代码:
您是否想过可以通过声音控制的扬声器!!!如果我们可以通过这种方式控制家用电器并使这些家用电器更智能,该怎么办?随着我们迈向基于AI和IoT的系统时代,语音助手变得越来越受欢迎。您已经听说过 Google Assistant,Apple Siri和Amazon Alexa 。这些都是基于语音的AI系统,它们彼此之间的不同之处在于其生态系统,而这正是Amazon Alexa最引人注目的地方。谷歌,苹果和亚马逊,所有这些公司都已经推出了他们的智能扬声器,但是亚马逊是第一个引入它们的公司。亚马逊echo,Echo Dot Spot等是市场上出售的智能扬声器。
亚马逊提供了使用其广受欢迎的语音服务Alexa的API 。它是开源的,可在Github上使用。此外,您可以在Raspberry Pi等自定义设备上安装或集成Alexa,并在该设备上获得完整的Amazon Echo功能。
使用Alexa语音服务,我们可以播放音乐,获取有关天气的信息,预订机票等等。你只要问就行啦。在上一教程中,我们已使用Amazon Alexa控制Raspberry Pi GPIO。在本教程中,让我们看看如何使用Amazon Alexa和Raspberry Pi构建语音控制的家庭自动化系统。我们将看到如何使用Raspberry Pi运行Alexa语音服务并控制灯泡。
优质材料:
硬件要求:
- Raspberry Pi 3或Raspberry Pi 2 Model B和SD卡(8GB或更多)
- 带有3.5mm AUX电缆的外部扬声器
- 任何网络摄像头或USB 2.0麦克风
- 继电器模块
- LED / AC灯泡
注意: 网络摄像头具有内置麦克风,因此,我们将使用它代替USB 2.0麦克风。
软件应用程序和Web要求:
- 在Alexa语音服务中注册帐户
- 在PubNub注册帐户
- 在IFTTT注册帐户
我们还假设您的Raspberry pi已经安装了Raspbian操作系统并已连接到Internet。有了这些功能后,我们就可以继续进行本教程。如果您不熟悉Raspberry Pi,请先阅读Raspberry pi入门。
整个教程主要分为五个部分,如下:
- 如果您没有显示器,那么我们必须使用SSH和VNC设置Raspberry Pi,还请检查USB麦克风的连接。
- 设置您的Amazon Developer并在Raspberry Pi上安装Alexa
- 为Alexa家庭自动化设置PubNub和IFTTT
- 硬件连接
- Alexa Pi家庭自动化的Python代码
因此,让我们开始吧!
第1部分:使用SSH和VNC设置Raspberry Pi
首先,我们将Raspberry Pi与SSH和VNC连接。为此,请参考Raspberry Pi官方网站上的教程,下面提供了链接。
对于SSH:SSh链接
对于VNC:VNC链接
如果您有Monitor,则可以离开此步骤,直接转到步骤2,即设置Alexa语音服务(Avs)。在此之前,我们必须检查麦克风的连接。
使用Raspberry Pi检查网络摄像头麦克风:
1.打开Raspberry Pi终端,然后键入arecord -l命令。这将显示连接到Raspberry Pi的硬件设备,如下所示:
卡1是我们将要使用的网络摄像头麦克风。如果未显示,则您的网络摄像头可能有故障。
2.现在,通过运行record audio命令来检查mic是否正常工作:
记录/home/pi/Desktop/test.wav -D sysdefault:CARD = 1
3.要播放录制的音频,请输入以下命令:
omxplayer -p -o本地/ home / pi /桌面/test.wav
如果您已使用HDMI电缆将Raspberry Pi与显示器连接,则默认情况下,音频输出是通过显示器的扬声器(如果其中有内置扬声器)。因此,要将其更改为3.5mm,您必须键入以下命令:
sudo raspi-config并转到高级选项。
从列表中选择音频->选择Force 3.5mm->选择确定,然后重新启动Raspberry Pi。
现在,您应该会听到3.5毫米插孔发出的声音。
注意:如果要增加或减少麦克风的输入语音响度,请在终端中键入 alsamixer 。通过按F6从终端选择声卡。
按F4更改Mic dB增益并根据需要进行设置。
如果您具有USB 2.0麦克风,则检查麦克风的步骤相同。在这里,我们已将Webcam用于USB麦克风。
第2部分:在Raspberry Pi上设置您的Amazon开发人员帐户并配置Alexa语音服务:
我们已经在之前的教程中详细解释了这一点,在该教程中,我们构建了Amazon Echo智能扬声器。这里我们专注于用Alexa控制家用电器,因此我们不再赘述整个过程,因此请阅读上一篇文章,并在Raspberry pi上安装Alexa语音服务以使扬声器做好准备。
要测试Alexa,只需说出她的名字叫醒她!查看本教程末尾给出的演示视频。
您可以向她询问您所在城市的温度,以检查其是否正常工作。
第3部分:为Alexa Pi家庭自动化设置PubNub和IFTTT :
为了使用此Alexa Pi构建家庭自动化系统,我们需要PubNub python SDK和IFTTT的帮助。我们将通过Alexa向IFTTT发送命令,而PubNub向RPi发送信号以打开/关闭灯。因此,我们将首先在Raspberry Pi上安装PubNub。
第3-1部分:安装PubNub Python SDK:
PubNub提供了一个消息传递API,用于在其全球网络上发布/订阅任何消息。在这里,我们使用IFTTT和Alexa在PubNub上发布消息,以打开/关闭中继。Raspberry Pi收到此消息后,Pi将相应地打开或关闭灯光。请按照以下步骤在Raspberry Pi上设置PubNub:
1.打开RPi上的终端,然后运行以下命令来安装SDK:
sudo pip install pubnub == 3.9.0
仅安装3.9.0版本,其他版本将无法与我们将在最后运行的python脚本一起使用。
2.现在,转到 PubNub 并使用您的凭据登录。
3.获取稍后将使用的 发布和订阅密钥 。
第3-2部分:为Amazon Alexa服务设置IFTTT:
IFTTT 是一项免费的基于Web的服务,允许用户创建简单的条件语句链,称为“食谱”,这些条件语句是基于对其他Web服务(如Gmail,Facebook,Instagram和)的更改而触发的。 IFTTT 是“ If This Then That”的缩写。
对于此项目,IFTTT用于根据RPi上运行的Alexa服务接收到的语音命令来触发电灯开/关命令。
请按照以下步骤制作Applet:
步骤1:-使用您的凭据登录IFTTT或如果您没有帐户,请 注册 。
步骤2: 在“我的小程序”上,单击“ 新小程序”
步骤3:- 点击+此
步骤4:- 搜索Amazon Alexa并单击它,并使用您的Amazon开发人员帐户详细信息登录。
步骤5:- 选择触发条件, 说出特定的词组
步骤6:- 提供 “打开灯” 作为短语,单击“ 创建触发器”。
步骤7:- 点击 +
步骤8:- 搜索 Webhooks, 单击 它, 然后选择 “发出Web请求”
步骤9: -Webhooks提供REST WEB请求,使用从PubNub获得的Publish和Subscribe键,并修改以下URL。
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
步骤10:- 将修改后的URL粘贴到URL文本框中。
步骤11:- 将方法设置为GET,将内容设置为application / json,然后单击 保存。
步骤12:- 按照相同的步骤为“ 关闭灯 ”创建触发器,并将URL修改为以下内容。
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
步骤13:- 我们现在已经准备好演示的所有Web组件。
第4部分:硬件连接和电路图:
对于此项目,我们需要继电器模块和交流电灯泡或任何其他交流电组件,或者您可以使用简单的LED进行测试。以下是使用Amazon Alexa控制AC设备的电路图和硬件连接。
我们将在python脚本中使用GPIO18,因此,将继电器连接到GPIO18。您可以在python脚本中更改此设置。
第5部分:用于控制灯光的Python代码:
在本教程的末尾找到完整的Python脚本。
您需要使用python代码中的pubnub键编辑Pub和Sub键。
#初始化Pubnub键 pub_key =“ ***************************” sub_key =“ *********** *************”
现在运行脚本
python alexaRpi.py
现在我们已经准备好进行演示了,请确保继续运行第1部分(三个终端)中的所有三个服务。
要发出任何命令,您需要在每次要发送命令时调用“ Alexa”以唤醒Alexa服务。您会听到哔声。听到哔哔声后,请说“ Alexa触发器打开灯。 您可以在瞬间看到灯亮起。然后,如果您说“ Alexa触发器关闭灯 ”,则灯应关闭。
而已…。您可以通过将它们与RPi的其他GPIO引脚添加在一起,在python脚本中添加更多AC设备,并可以使用智能家居自动化系统控制许多设备。
查看下面的完整代码和演示视频。还要在这里检查我们所有的家庭自动化项目。