Amazon Echo 控制红外遥控

Amazon Echo 系统可以用于智能家居的方方面面,但智能插座只能关闭和或打开。许多设备不会通过简单插入而立即打开,需要额外的步骤,例如按遥控器上的按钮或物理设备上电需获取所需设置。

在本指南中,Raspberry Pi Zero W 将被配置为充当由 Amazon Echo 控制的智能家居设备,并在请求打开或关闭电源时将任何所需的 IR 命令发送到设备。

在这种具体情况下,Pi将被配置为学习由红外线石英管 ClassicFlame 23II310GRA 23发送的的远程 IR 命令,然后将使用红外 LED 发出需要的 IR 命令,最后 Pi 配置为可控制 Echo 的 Philips Hue 模拟设备。

enter image description here

步骤一:材料

enter image description here

所需材料:

  • Raspberry Pi Zero Z
  • 4G或者更大的 Micro SDHC Class 10存储卡
  • MicroUSB 线
  • 一个 IR LED
  • MicroUSB接口的电源适配器(推荐2.1A或者更大电流)
  • IR LED
  • IR 接收器 VS1838B
  • 100 Ω电阻
  • 少量导线

推荐:

  • 耳机插孔
  • 1/8英寸耳机/音频线
  • 2N2222 NPN晶体管
  • 1000 Ω电阻
  • Rapsberry Pi Zero Case开发板

要完成Raspberry Pi Zero W的初始配置, 还需要其他几个的外围设备,但不会贯穿于整个完整项目。

  • Mini HDMI 线:用于连接Pi Zero W 和 TV 或显示器,线稍长一些较好。
  • USB OTG 线:用于将微型 USB 转换为全尺寸USB端口,用于连接键盘和/或鼠标
  • HDMI 线:用于连接电视或显示器以及适配器到 mini HDMI。

前两个步骤和一个案例包括各种 Pi Zero 入门套件,例如: MakerSpot Mega Kit

安装 Raspberry Pi

Raspberry Pi 网站关于在 Raspberry Pi 上安装 Raspbian 操作系统有一个很好的指导。 如果您希望将来有更多的操作系统选项,或者更简单的安装,请按照 NOOBS 的说明进行操作。 本指南是基于 Raspbian,它包含在 NOOBS 中,https://www.raspberrypi.org/learning/software-guide/

一旦 Raspbian 开始运行,启用 SSH 允许远程连接到设备,而不需要直接连接到 Pi 的监视器/键盘/鼠标。 如果您希望可以远程访问 GUI,还可以启用VNC访问https://www.raspberrypi.org/documentation/remote-access/ssh/

此外还强烈建议您在无线网络配置上设置静态 IP,以便不随时间改变。 如果新设备未定期连接到无线网络,但将其配置为静态 IP 可能会导致 IP 不会改变,否则将无法确定,http://www.circuitbasics.com/how-to-set-up-a-static-ip-on-the-raspberry-pi/

步骤三:学习 IR 编码

enter image description here enter image description here

以下步骤基于以下优秀指南: http://alexba.in/blog/2013/01/06/setting-up-lirc-o...(链接不可用,可参考国内相关资料)。

Linux 红外遥控器(LIRC)库用于通过接收器模块处理接收到的IR命令,将其保存到文件中,然后通过 IR LED 发送命令。

第一步是使用红外线接收器记录来自现有遥控器的红外信号,并将其保存到文件中。 红外线接收器只需要初始学习 IR 信号,然后可以关掉,因此可以使用临时连接。

将IR接收器连接到 Raspberry Pi。 使用附图标识 VCC,GND 和 Signal 引脚。 使用面包板,连接线,或创意弯曲的插针完成以下连接:

  • VCC 连接到5V引脚
  • GND 连接到地
  • Signal 连接到23号脚

通过打开本地设备上的终端或使用诸如 Putty 的程序创建SSH连接,打开并连接到 Raspberry Pi。 剩下的步骤将用命令行界面执行。

初始化 LIRC。

sudo apt-get install lirc

将需要的信息添加到模块文件中。

sudo nano /etc/modules

将以下内容添加到文件的末尾。

lirc_dev
lirc_rpi gpio_in_pin=23 gpio_out_pin=22

完成之后,按CTRL+X,然后,Y,保存并退出。

将以下代码加入到 hardware.conf 文件。

LIRCD_ARGS="--uinput 
# Run "lircd --driver=help" for a list of supported drivers. 
DRIVER="default" 
# usually /dev/lirc0 is the correct setting for systems using udev 
DEVICE="/dev/lirc0"

MODULES="lirc_rpi"

完成之后,按CTRL+X,然后,Y,保存并退出。

修改 config.txt,以便引导启动时加载LIRC内核模块。添加以下内容到文件末尾。

sudo nano /boot/config.txt
dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=22

完成之后,按CTRL+X,然后,Y,保存并退出。

重启 Raspberry Pi。

sudo shutdown -r now

通过操作一次 LIRC 然后监视输入来测试 IR 接收器,第一次 LIRC 一旦结束,LIRC 设备就能监测到数据。

sudo /etc/init.d/lirc stop 
mode2 -d /dev/lirc0

在接收器上瞄准红外遥控器,然后按一个按钮,确保数据出现在屏幕上。

按CTRL+C停止。

此时,LIRC程序已安装,我们可以查看 IR 信息。 现在,可以从 LIRC 网站下载远程配置文件,也可以使用自己的遥控器创建自定义配置文件。

在此过程中,您将输入要记录的每个红外遥控器的按钮的名称,必须是有效的名称,因此运行以下命令查看所有可用的名称。

irrecord --list-namespace

示例:当我记录遥控器上的 Power 按钮时使用名称 KEY_POWER,记录 Timer 按钮时使用 KEY_TIME 名称。

如果已经记录了几个按键,建议您将记录的名称和按键建立一一对应关系,因为记录的按键可能没有完美的名称。 这将使之更容易参考。

使用以下代码生成远程配置文件。

# Stop lirc to free up /dev/lirc0 
sudo /etc/init.d/lirc stop
# Create a new remote control configuration file (using /dev/lirc0) and save the output to ~/lircd.conf 
irrecord -d /dev/lirc0 ~/lircd.conf

按照屏幕上的说明进行操作。 记录初始化完成后,输入要使用的按键名,然后按遥控器上的按钮并将其指向接收器,直到出现几个点。 对要记录的遥控器上的每个按钮并重复此步骤。

#Rename the remote in the configuration file
sudo nano ~/lircd.conf

将每行的开始修改为能够影射您正在记录的设备名字,本例中,它被重名为 Spectrafire。 结束之后,按CTRL+X退出并保存。

# Make a backup of the original lircd.conf file 
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd_original.conf
# Copy over your new configuration file 
sudo cp ~/lircd.conf /etc/lirc/lircd.conf
# Start up lirc again 
sudo /etc/init.d/lirc start

此时,解码值已经记录在一个文件中。

步骤四:耳机插孔(可选)

enter image description here enter image description here

为确保使用的导线和修改Raspberry Pi更加模块化,我热粘了一个1/8英寸耳机音频插孔到外壳并连接电线到插孔。使用带有匹配插头的耳机线连接红外LED,因此该导线可以连接到任何其他的位置,最后指向我想要连接的红外接收器设备,但是可以很容易地从Pi拔下,而不需要移除所有的电线。

此步骤可省略,但我们已开始使用。

步骤五:连接红外LED(简易)

enter image description here enter image description here enter image description here

将红外发光LED连接到 Raspberry Pi 可以通过多种方式完成。 这一步我使用了快速连接方式,我后来发现可能超出当前 Pi 引脚的的电流门限。到目前为止,我没有遇到任何问题,但更为理想的连接方式将在下一步进行描述。

计算红外LED所需的电阻。 如果您有LED的所有规格,http://ledcalculator.net/可以帮助确定正确的电阻值。 在这种情况下,22号引脚的电压为3.3V,LED压降为1.2V,额定电流为20mA,使用1个LED,因此需要110Ω电阻值。 我使用了一个100Ω的电阻。

注意:后来我注意到,任何时刻所有引脚的最大电流为16mA,所以这种配置可能会超过此门限值。 在下一步中将介绍一种包含晶体管和5V电源的方案,但使用此方案运几周后,我还没有遇到任何问题。

Raspberry Pi 上的22号脚连接到 IR LED 的阳极,阳极是 IR LED 默认较长的一端。

LED的较短的引脚连接电阻,然后接地。 我剪断了电阻上的大部分电线,并将其直接焊接到接地引脚和LED的地线。

步骤六:连接红外LED(正确方法)

enter image description here enter image description here

为了正确连接LED且不超过 Raspberry Pi 的参数门限,请使用合适的电阻将LED连接到5V电源,将阴极引脚连接到2N2222的集电极引脚,将晶体管的发射极引脚连接到地, 并将Pi的22号引脚连接1K欧姆电阻到晶体管的基极引脚。 这使22号引脚非常小的电流流过LED到地,并且不超过Pi的限制。

在我的例子中,我连接了2个红外LED,所以我可以控制环境照明以及电壁炉。

步骤七:测试发送 IR 命令

enter image description here

要发送IR命令,使用程序 irsend。

语法:irsend

例如:irsend SEND_ONCE Spectrafire KEY_POWER

这将从 Spectrafire 远程发送一次电源按钮命令。重复记录文件时使用其他键名。

在这个阶段,您可以发送以前使用连接到 Raspberry Pi的IR LED 记录的任何命令。

步骤八:安装 Ha-bridge

为了让 Echo 能够控制我们的设备,我们将使用 Ha-Hridge 模拟飞利浦灯泡。 一旦配置完成,Echo 将能够检测到该设备并发送电源开/关命令。

Ha-Bridge的网站清楚地概述了当前版本的功能,强烈建议您查看。 https://github.com/bwssytems/ha-bridge 安装 HA-Bridge:

sudo apt-get install oracle-java8-jdk

mkdir /home/pi/habridge

cd /home/pi/habridge

wget https://github.com/bwssytems/ha-bridge/releases/download/v4.3.1/ha-bridge-4.3.1.jar

运行 Ha-Brige:

sudo java -jar /home/pi/habridge/ha-bridge-4.3.1.jar

设置 Ha-Brige 开机启动运行:

cd /etc/systemd/system

sudo nano habridge.service

复制粘贴以下内容:

[Unit]

Description=HA Bridge

Wants=network.target

After=network.target

[Service]

Type=simple

WorkingDirectory=/home/pi/habridge

ExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-4.3.1.jar

[Install]

WantedBy=multi-user.target

CTRL+X,Y保存并退出。

重载系统控制:

sudo systemctl daemon-reload

开启服务:

sudo systemctl start habridge.service

配置服务以开机启动:

sudo systemctl enable habridge.service

步骤九:模拟飞利浦色调灯泡

enter image description here enter image description here

当 ha-bridge 开始运行,打开Web浏览器并输入Raspberry Pi的IP地址,应该会显示ha-bridge的界面。

点击页面顶端的 'Add/Edit' 链接。

Name:输入你想使用的语音命令名。

'On Items' 选项设置类型 'Execute Command/Script/Program' 并在 Target Item 工具箱输入命令,如果需要多个命令,请单击添加按钮保存当前行并输入另一个命令。 也可以设置延迟并重复一个命令一定次数。 在这种情况下,首先按下电源按钮,然后按下定时器按钮3次,将自动关机定时器设置为3小时。

对 'Off Items' 区域重复相同的做法,完成后单击 Add。

在页面顶部,单击 'Add Bridge Device' 将其保存为新主题,或 'Update Bridge Device'(如果修改现有主题)。

将 IR LED 对准设备。 在 'Bridge Devices' 页面上,单击 'Test ON' 或 'Test OFF' 按钮,以验证其是否符合要求。

步骤十:连接到 Amazon Echo

enter image description here

最后一步是让 Amazon Echo 与该设备进行通信。 注意:两台设备必须处于相同的网络。

选项1:说:"Alexa, discover smart home devices"。

选项2:打开 Alexa App,选择 Menu > Smart Home 并点击 'Discover Devices' 链接。

几分钟后,设备应该能被识别到。

说: "Alexa, turn the bedroom fireplace on"并确保设备已按设定运行。

在 ha-bridge 中用任意您想要的名字来替换 Bedroom Fireplace (卧室壁炉)。

如果还没有安装红外LED,请找到一个不显眼的地方安装,同时允许它指向设备中红外线接收器的大体方向。 您可能需要移动它来指向不同的区域以找到最佳位置。

尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.