可以通过 HDMI 激活。该电视项目向您展示如何从 Amazon Alexa 控制您的电视。
这个项目具有控制电视的命令功能。这意味着你可以通过远程遥控而直接使用 Raspberry Pi 控制电视。为了完成这个,我创建了一个 Alexa 智能来控制我的电视。
图形
第 1 步 - 设置树莓派
安装 ces-uTIls:
$ sudo apt-get 安装 cec-uTIls
打开电视:
$ echo 'on 0' | cec-client -s
打开与 CEC 适配器的连接...
调试:[125] 广播 (F):osd 名称设置为“广播”
调试:[126] 打开 - vc_cec 初始化
调试:[126] 逻辑地址更改为免费使用(e)
注意:[126]连接打开
调试:[127]处理器线程启动
调试:[127]<电视(0):轮询
调试:[127]启动器'广播'不是CEC 适配器支持。改用“免费使用”
TRAFFIC: [127] << e0
DEBUG: [187] >> POLL sent
DEBUG: [187] TV (0):
调试:[187] << 请求“TV”(0)的供应商 ID
流量:[187] << e0:8c
流量:[382] >> 0f:87:08:00:46
调试:[382] 电视( 0):供应商=索尼(080046)
调试:[383]>>电视(0)->广播(F):设备供应商ID(87)
......
关闭电视:
$ echo '待机0' | cec-client -s
打开与 CEC 适配器的连接...
调试:[145] 广播 (F):osd 名称设置为“广播”
调试:[146] 打开 - vc_cec 初始化
调试:[146] 逻辑地址更改为免费使用 (e)
注意:[146] 连接已打开
调试:[147] 处理器线程已启动
调试:[147] << 广播 (F) -> 电视 (0): POLL
....
你现在可以打开/关闭电视了。
第 2 步 - AWS IoT
这个示例使用 AWS IoT 设备。只需要设置一套证书和文档。按照 AWS 中的步骤添加 Thing 和。
https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html
不要忘记下载证书。创建东西后,添加设备状态。
{
“期望”:{
“命令”:“tv_off”,
“计数器”:0
}
}
第 3 步 - 设置莓派
将 HDIM 电缆连接到电视。片段树样本源。
$ cd /home/pi
$ git clone https://github.com/sparkgene/alexa-tv-controller.git
$ cd alexa-tv-controller/raspberrypi
将下载证书复制到 Raspberry Pi 并将其存储在 /home/pi/alexa-tv-controller/raspberrypi/certs 中。
将 shadow.js 终端到您的 AWS IoT 节点。
var shadowName = "tv-controller"
var thingShadows = awsIot.thingShadow({
keyPath: "/home/pi/alexa-tv-controller/raspberrypi/certs/private.pem.key",
certPath: "/home/pi/alexa -tv-controller/raspberrypi/certs/certificate.pem.crt”,
caPath:“/home/pi/alexa-tv-controller/raspberrypi/certs/ca.pem”,
clienTId:“tv-controller”,
区域:“ ap-northeast-1”,
主机:“your-endpoint.iot.ap-northeast-1.amazonaws.com”
});
安装客户端库:
$ cd /home/pi/alexa-tv-controller/raspberrypi
$ sh setup.sh
运行客户端:
$ /usr/bin/node shadow_client.js 已
连接
注册
已在电视控制器上接受:{"state":{"desired":{"command":"tv_off","counter":1517043288},"reported":{ "counter":1517043288,"command":"tv_off"}},"metadata":{"desired":{"command":{"TImestamp":1517043289},"counter":{"timestamp":1517043289}} ,"reported":{"counter":{"timestamp":1517043293},"command":{"timestamp":1517043293}}},"version":26,"timestamp":1517046963}
counter:1517043288
没有变化没有什么
测试运行良好。您可以在 AWS IoT 不同的状态更改。
"command": "tv_on" 打开电视。
“命令”:“tv_off”关闭。
第 4 步 创建家居技能
智能家居技能使用 v3 有效: https://developer.amazon.com/docs/smarthome/steps-to-build-a-smart-home-skill.html
使用示例 lambda 函数:https://github.com/sparkgene/alexa-tv-controller/blob/master/lambda_function/lambda_function.py
将friendlyName 更改为“living TV”。
"friendlyName": "直播电视",
Lambda 需要获得使用 AWS IoT 的权限。创建功能如下:
{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“操作”:[
“日志:CreateLogGroup”,
“日志:CreateLogStream”,
“日志:PutLogEvents”
] ,
"资源": "arn:aws:logs:*:*:*"
},
{
"效果": "允许",
"操作": [
"iot:GetThingShadow",
"iot:UpdateThingShadow"
],
"资源" :“*"
}
]
}
第 5 步 - 从 Echo 使用它
现在您可以使用 Echo 的智能技能了。启用该技能家居并说“Alexa,打开电视电视”。
相关文章