使用LIRC为Raspberry PI(RPi)设置IR远程控制

use*_*233 3 python lirc raspberry-pi

经过大量搜索之后,我对如何为RPi项目设置IR远程控制方面的冲突信息感到惊讶和沮丧。我以为这很容易,但是设置Linux InfraRed Control(LIRC)长期以来一直存在问题

但是随着Raspbian的Buster版本的发布,2019年6月发生了许多变化,使其中的许多教程毫无用处。许多教程都创建了hardware.conf文件,但是LIRC不需要也不需要它,并且lirc-rpi模块已被gpio-ir模块替换。

那么,如何使用Raspbian(Buster)在RPi上设置LIRC?

use*_*233 6

该答案假设RPi正在运行raspbian(版本Buster Jun 2019)。还假定了终端的工作知识,来自命令提示符的基本命令以及编辑文本文件。

步骤1:安装lirc

1)打开终端窗口并安装LIRC。请注意,这可能会引发错误“无法启动灵活的红外远程输入/输出应用程序支持”,因为现在已安装的文件已附加.dist,并且必须删除后缀,如下所述。不难但令人沮丧。

$ sudo apt-get update
$ sudo apt-get install lirc
Run Code Online (Sandbox Code Playgroud)

----别担心!因为需要从lirc_options.conf中删除.dist后缀,所以这可能会引发错误“无法启动灵活的IR远程输入/输出应用程序支持”。只需如图所示复制文件。

$ sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
Run Code Online (Sandbox Code Playgroud)

2)现在,已将lirc_options.conf文件重命名,重新安装lirc

$ sudo apt-get install lirc
Run Code Online (Sandbox Code Playgroud)

步骤2:编辑lirc_options.conf

通过更改这两行,如下所示编辑/etc/lirc/lirc_options.conf:

:
:
driver = default
device = /dev/lirc0
:
:
Run Code Online (Sandbox Code Playgroud)

步骤3:执行复制操作以从lircd.conf.dist中删除.dist后缀

从/etc/lirc/lircd.conf.dist中删除后缀.dist

$ sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf
Run Code Online (Sandbox Code Playgroud)

步骤4:编辑config.txt

通过在lirc-rpi模块部分中添加以下一行来编辑/boot/config.txt,如下所示。此示例假定RPi在BCM引脚17上正在“监听” IR接收器,但可以使用任何RPi IO引脚。我还没有尝试过,但是如果您想从RPi发送命令,请添加并取消注释第四行,如下所示,以便在BCM引脚18上发送IR命令

:
:
:
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
:
:
:
Run Code Online (Sandbox Code Playgroud)

步骤5:检查状态并重新启动

1)停止,启动并检查lircd的状态,以确保没有错误!

$ sudo systemctl stop lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl status lircd.service
Run Code Online (Sandbox Code Playgroud)

2)重新启动

$ sudo reboot
Run Code Online (Sandbox Code Playgroud)

步骤6:测试遥控器

此步骤假定您已经将IR接收器连接到config.txt中指定的引脚上的RPi。

1)停止LIRCD服务并使用mode2命令测试远程

$ sudo systemctl stop lircd.service
$ sudo mode2 -d /dev/lirc0
Run Code Online (Sandbox Code Playgroud)

3)将遥控器对准接收器,然后按一些按钮。您应该看到类似以下内容:

:
:
space
pulse
:
:
Run Code Online (Sandbox Code Playgroud)

4)按Ctrl-C退出

5)您的IR接收器已设置好,可以继续进行第2部分,并可以在python中进行访问。