分享在Raspberry Pi项目中添加Siri控制的方案设计

描述

本教程旨在教您如何使用SiriControl开源Python框架在RaspberryPi项目中添加Siri功能和控制功能。

2.概述

在本教程中,我将介绍如何设置和使用SiriControl Python框架。我将利用SiriControl模块和Raspberry Pi 3来点亮和熄灭一个LED。学完本教程之后,您将能够使用SiriControl将Siri语音命令添加到任何Raspberry Pi项目中。开始学习之前,请确保您拥有以下设备和材料,并确保已经安装RaspberryPi且软件能够正常运行。

3.设备

1.   Raspberry Pi 3 – Raspberry Pi链接

2.   HDMI线 –HDMI线链接

3.   LED – LED的Adafruit链接

4.   鼠标+键盘 – 键盘/鼠标的Amazon链接

5.   显示器/TV – 任何带HDMI接口的TV或显示器

6.   跳线 – 跳线的Amazon链接

7.   Micro USB电缆 – Micro USB 电缆的Amazon链接

8.   面包板 – 面包板的Amazon链接

4.目录

1.    为SiriControl创建一个Gmail帐户

2.    iOS设备设置

3.    SiriControl

1.    设置SiriControl

2.    创建自己的模块

4.    电路接线

5.    上传并运行程序

程  序  

1.0 为SiriControl创建一个Gmail帐户

SiriControl模块需要一个Gmail帐户才能工作。我创建了一个新的Gmail帐户,仅供SiriControl使用。我建议您也这样做。这是一个好主意,因为Python脚本可以包含该帐户的用户名和密码。

创建帐户后,我们需要允许不太安全的应用程序访问Gmail。这是因为Gmail服务器将Python脚本视为不太安全的应用程序。我们可以在Sign-in & Security(登录和安全)部分进行设置。

互联网

图1:应用程序访问(关闭)

互联网

图2:应用程序访问(开启)

设置Gmail帐户的最后一步是启用IMAP协议。设置路径如下:Gmail->Settings->Gear Part->Settings->Forwarding and POP/IMAP->IMAP Access。

互联网

图3:IMAP(禁用)

互联网

图4:IMAP(启用)

2.0 iOS设备设置

将iOS设备上的“Notes”连至已经设置好与SiriControl配合使用的Gmail帐户。选择Settings->Accounts & Passwords->Add Account(设置->帐户和密码->添加帐户),添加刚才设置好的Gmail帐户。添加该帐户后,选择它并启用Notes(图6:Gmail帐户下的Notes)。接下来,选择Settings->Notes,并启用“On My iPhone” Account(我iPhone上的帐户)。然后,将Default Account(默认帐户)改为Gmail帐户。现在,我的iOS设备设置完毕。  

互联网

图5:帐户和密码

互联网

图6:Gmail帐户下的Notes

互联网

图7:默认帐户-Notes

3.0 Siri控制

3.1 设置SiriControl

要使用SiriControl,我们需要将模块的资源库克隆到RaspberryPi。要做到这一点,请打开终端窗口并输入以下命令:

1. sudo apt-get update

2. sudo apt-get install git-core

3. git clone https://github.com/theraspberryguy/SiriControl-System

互联网

图8:克隆资源库

克隆资源库之后,打开脚本siricontrol.py。在脚本中输入Gmail帐户的用户名和密码,然后保存脚本。

3.2 创建自己的模块

Siricontrol.py运行时,会从模块(modules)文件夹中加载模块脚本。执行不同的任务时,按照模板编写新的模块脚本很重要。因为我想控制一个LED,所以我写了一个脚本来打开LED(LED_on.py)和一个脚本来关闭LED(LED_off.py)。

要制作自己的模块,请在模板脚本中执行以下步骤:

1.在“moduleName”中命名该模块

2.为模块提供“commandWords”,以便让Siri执行命令。

3.在execute(command) 函数下写入想要执行的功能。

4.确保将脚本保存在模块文件夹中。

4.0 连接电路

为了让SiriControl执行命令,我搭建了一个简单的LED电路。我总是喜欢用Fritzing绘制接线图。Fritzing是一款开源原理图设计和PCB布线软件。Fritzing的下载地址(可选)如下:http://fritzing.org/home/

互联网

图9:Raspberry Pi LED原理图

LED和电阻应串联在引脚11(GPIO17)和引脚25(地)之间。电阻的作用是限制流过LED的电流,并应根据您的LED进行相应调整,以防止电流过大将LED烧坏。请记住,LED较长的引线是正极,应连接到引脚11。

5.0 上传并运行程序

完成上述步骤后,我使用以下命令运行SiriControl脚本:

python siricontrol.py

该脚本开始运行,并使用模块文件夹中的所有模块进行初始化。

互联网

图10:执行LED点亮

互联网

图11:执行LED熄灭

现在我命令Siri,“Note: Turn on LED(注意:打开LED)”,LED灯亮起,同时脚本会告诉我它执行了我的命令并且正在倾听另一个命令。我现在说,“Note: Turn off LED(注意:关闭LED)”,LED熄灭。只要符合以下条件,该脚本就会执行我(不管在任何地方)对Siri发出的命令:

1.Raspberry Pi正在运行该脚本。

2.Raspberry Pi已连至互联网,以便可以轮询Gmail帐户。

现在,您可以为任意Raspberry Pi项目添加任何SiriControl控制模块。虽然我在这个项目中使用了Pi,但是该教程在安装了Python的其他Linux开发板上同样可以工作。

6.0 附件:脚本

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分