树莓派raspbian红外线接收

夏至已过,中国著名火炉重庆,还没有热。
但是没有热,并不代表不会热,一定先要未雨绸缪呀。
想到起夏天要用空调,都在想智能家居应该是还没到家,空调就已经开了。想到这里,树莓派又开始派上用场了。好了,废话就说到这里了

需要的东西:
树莓派板子
红外接收头
遥控板

红外接收头是通用的,arduino的也可以拿来用,如果没有淘宝上搜 “红外接收”,一大把,可以顺便买红外发射头,都不贵。使用过后,我的确感觉这是性价比最高的配件了。

硬件方面说完,下面该梳理软件了。

#安装lirc
sudo apt-get install lirc

#绑定模块
#这里注意下,执行 sudo modprobe lirc_rpi, 默认会加上 gpio_in_pin=18 gpio_out_pin=17 绑定 gpio18口为输入,gpio17口为输入
#gpio的绑定根据自己怎么接的线决定
#我绑定的是 23和24
sudo modprobe lirc_rpi gpio_in_pin=23 gpio_out_pin=24

修改 /etc/lirc/hardware.conf 文件:

########################################################
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# 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"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
########################################################

添加文件 /etc/modules ,自动绑定到正确的gpio口 :

lirc_dev
lirc_rpi gpio_in_pin=23 gpio_out_pin=24

重启一下,重新载入配置:

sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start

到这里基本上算成功了一半了,遥控器应该可以用了

#测试,随便按遥控器,如果出现一堆的pluse和space,表示工作正常
mode2 -d /dev/lirc0

接下来就可以录制按键了:

#查看可以使用的key列表,随后输入key必须在这列表里
irrecord --list-namespace
#录制前需要关闭lirc
sudo /etc/init.d/lirc stop
#开始录制,开始后需要随便按键通过2*80的调试
#按后会出现...,第一排长按,第二排点按
irrecord -n -d /dev/lirc0 lircd.conf
#当前路径就生成了 lircd.conf 文件,复制到 /etc/lirc/ 下
sudo cp lircd.conf /etc/lirc/lircd.conf

启动并调试:

sudo /etc/init.d/lirc start
#使用irw命令测试
sudo irw

输出类似这样,说明正确
0000000032a6807f 00 KEY_1 tv
0000000032a640bf 00 KEY_2 tv
0000000032a6c03f 00 KEY_3 tv

接下来就是 最后一步,接受红外线信号,并执行相关命令
lircrc出场

sudo vi /etc/lirc/lircrc

#/etc/lirc/lircrc 内容
begin
    prog = irexec  #这个可随意
    button = KEY_1 #按钮的名称
    config = sudo reboot #执行的命令
end
begin
    prog = irexec
    button = KEY_2
    config = echo "hello lirc one!"
end

这样就基本搞定了,先到这里了。空了在写红外线发射相关的。。。