Amazon Alexa 控制 Chromecast
[过时] 拥有 Amazon Alexa,通过 Amazon Echo,通过运行 Python 脚本的 Raspberry Pi 控制 Google Chromecast。
故事
我> 做不可能的事:谷歌 Chromecast 和亚马逊 Alexa
自从 Amazon Echo 发布以来,人们一直在要求一件事。
——这已经过时了,请查看新的说明 Github —
有什么办法可以用 Echo 控制 Chromecast?
询问 reddit 用户 MichaelFR85
功能请求:chromecast 支持
推荐的 reddit 用户 phasefx
但是现在,不要再等了!
Chromecast 和 Alexa 现在协同工作,跨平台尝试使用 Raspberry Pi 和一些 Python 控制 Chromecast。在 http://www.lovemyecho.com 上的“AlexaDev 周二:创新 Alexa 技能聚焦”上进行了讨论,并被尊为
[之一] Alexa 开发人员创造的最具创新性的 Alexa 技能。从这些开发人员解决编码和技术挑战以构建非凡事物的方式中可以学到很多东西。
使用带有 Echo Support 的 Raspbian、Python 和 Chromecast,让我们开始加入这禁忌之爱的旅程。
为什么是树莓派?
简单的答案是“不仅仅是树莓派”。你可以在任何有能力的硬件上运行这个脚本,结果是一样的。但是,我选择 Raspberry Pi 是因为它的兼容性、尺寸和便携性。
制作方法:
所有这些都是用 Python 编写的。但是,我使用该模块帮助我连接到 Chromecast,并使用该模块帮助连接到数据库。我使用“Alexa Color Expert”示例作为技能的基础,从头开始编写所有功能。剩下的就是从头开始。
工作原理:
- 用户通过询问 Alexa“启动/询问/运行 Chromecast”来启动会话
- 用户告诉 Alexa 命令(默认响应是搜索 YouTube)
- 请求被解析,然后发送到托管在树莓派上的 MySQL 数据库
- Python 脚本(也托管在 Rasp. Pi 上),然后读取数据库,并运行相应的命令
- 命令完成后删除行
- 完成!
第 1 步:设置 Raspberry Pi 以进行端口转发
开始之前:
- 确保您的 Raspberry Pi 已打开并连接到互联网
- 查找您的 Raspberry Pi 的 IP 地址
在您的 Raspberry Pi 或其他 PC 上:
- 启动您的首选终端(cmd 或终端)
- 使用 ifconfig (Linux) 或 ipconfig (Windows) 查找您的默认网关
ipconfig 命令的输出示例
访问您的默认网关以访问您的路由器。
路由器登录页面示例
有关端口转发特定路由器的更多信息,请查看此处:http://portforward.com/
在这种情况下,我们将同时转发端口 3306(MySQL 的默认端口)、端口 80(对于 PHPMyAdmin)和端口 22(对于 SSH)
请注意:这会打开您的网络和 Raspberry Pi 以供其他人访问,并且确实会给您的信息带来风险。
第二步:设置mysql
资源:教程:安装 MySQL 服务器或 Raspberry Pi
sudo apt-get install mysql-server –fix-missing
第 3 步:设置 PhpMyAdmin
您可以在此处查看有关设置 PHPMyAdmin 的教程
使用包含的 build.sql 创建所需的数据库。
注意:确保您的用户可以从其他位置访问,您可以查看操作方法
第 4 步:编辑您的文件
首先,让我们定义一些我们将要替换的术语:
- RASP_PI_DNS – 指的是我们将使用的 MySQL 服务器 URL。
- MYSQL_USER – 指的是您的 MySQL 用户名
- MYSQL_PASS – 指的是您的 MySQL 密码
- DB_NAME – 指的是您的 MySQL 数据库名称
- CHROMECAST_NAME – 您的 Chromecast(或您要连接的 chromecast)的名称
用相应的值替换 index.py 和 raspberry.py 中所有出现的这些字符串。
第 5 步:上传到 Lambda
压缩所有文件和文件夹除了 SpeechAssets 和 raspberry.py,然后登录到您的 AWS 仪表板。
AWS 仪表板部分示例
单击 Lambda。
Lambda 部分示例
在 Lambda 中,单击“创建新的 Lambda 函数”。
点击“跳过”进行蓝图选择。
对于您的函数名称,请输入“alexaChromecast”,对于运行时,请确保选择了“Python 2.7”。
对于代码条目类型,选择“上传 Zip 文件”。
单击上传按钮,然后上传您的 Zip 文件。
Lambda 函数设置示例
将处理程序设置为 index.lambda_handler,将角色设置为基本执行,并将超时设置为 30 秒。
第 6 步:在 Amazon Developer Console 中设置技能
在 developer.amazon.com 上登录亚马逊开发者控制台
点击“Alexa”标签。
点击 Alexa Skills Kit 的“Get Started”。
点击“添加新技能按钮”添加新技能。
保持技能类型不变。应用程序名称输入“Alexa Chromecast”,调用名称输入“Chromecast”
点击页面右下角的下一步按钮。
对于 Intent Schema,使用位于存储库的 SpeechAssets 文件夹中的 intentSchema.json,并粘贴其内容。使用 sample-utterances.txt 对示例话语执行相同操作。
点击下一步按钮。
在“端点”框中,粘贴您的“Lambda ARN”,Lambda ARN 位于右上角的函数页面上。
选择“否”进行帐户关联。
第 7 步:设置 raspberry.py
通过将文件复制到闪存驱动器或通过此处提供的 WinSCP 复制,将 raspberry.py 移动到您的 Raspberry Pi 上。
运行 raspberry.py
我> 第 8 步:(可选)设置 Cron 作业
创建一个将运行 raspberry.py 的 bash 文件,并将其保存为“launcher.sh”。
将以下代码放入launcher.sh中,替换为raspberry.py的位置
须藤 python3 /location/to/raspberry.py
要了解如何设置 cronjob 以在启动时运行 launcher.sh,您可以按照此处的说明进行操作。
现在,使用测试选项卡来尝试您的新技能!如果一切顺利,您应该能够使用 Amazon Alexa 控制您的 Chromecast!
视频:
VUI 界面图:
阅读更多细节:亚马逊 Alexa 控制 Chromecast
制造工艺