重新买了个模块终于成功了, 链接 ,真的要给这店大大的好评。
之前买的模块可能有问题,或者客服告诉我的接线不对,╮(╯▽╰)╭,看来硬件这种东西网络上也是很难找到问题所在。 — 为了给HomeAssistant添加控制空调的功能,买了红外接收模块(KY-022)和发射模块,然而接收红外信号搞了两天也没有成功,简单记录一下。
LIRC版本问题
网上很多文章都是基于旧版本lirc来写的,一些配置文件,如
/etc/lirc/hardware.conf
在新版本上是不存在的,包管理器默认安装的0.94c版本。
执行文件和服务名也不一样,旧版是
lirc
,新版是
lircd
。
树莓派GPIO问题
网上给的图居然是错的,安装gpiozero库可以查看本机的GPIO。sudo apt install python3-gpiozero
pinout
电压问题
模块说的是接5V,教程说的3.3V, 这篇文章 提到,测到io口电压不够,加了电压后有输出,试了下仍然没输出。
lirc配置文件的键值重复问题
正常安装lirc后,查看服务状态,提示
/etc/lirc/lircd.conf.d/devinput.lircd.conf
这个文件里面相同的16进制对应多个键,然而修改后仍然没有成功,可能这个也并没影响吧。
gpio_in_pull
开启debug
debug=on
,
mode2
之后
dmesg |grep lirc
可以看到
[ 66.455224] lirc_rpi: in init_timing_params, freq=38000 pulse=13157, space=13158
[ 74.757991] lirc_rpi: 6lirc_rpi: freed IRQ 178
[ 84.855023] lirc_rpi: Interrupt 178 obtained
[ 84.855046] lirc_rpi: in init_timing_params, freq=38000 pulse=13157, space=13158
[ 92.758824] lirc_rpi: 6lirc_rpi: freed IRQ 178
/boot/config.txt
中添加
gpio_in_pull=up
就可以,确实之前看的很多文章里面也是有这个参数,有的是down,是和模块有关。原因在 这里 有
然而,并不能行。。。
之后在百度(谷歌也不是全能啊)搜到贴吧里也有相同情况,https://tieba.baidu.com/p/4079519080。
有人怀疑是lirc_rpi这个内核模块的问题,楼主自己写了代码读取数据,因为我需要录制红外信号,而不是直接接收使用,所以没有什么帮助。
重装raspbian jessie(旧版)
一通操作过后仍然没有反应,彻底放弃。
直接发射红外
想跳过接收器,找现有的匹配好的代码控制空调。
https://github.com/r45635/HVAC-IR-Control
家里空调试了个遍,都失败了。
有用参考
https://www.raspberrypi.org/forums/viewtopic.php?t=192891#p1209208
https://www.raspberrypi.org/forums/viewtopic.php?t=99085
https://raspberrypi.stackexchange.com/questions/81876/raspberry-pi-3-not-lirc-not-running-working
https://gist.github.com/prasanthj/c15a5298eb682bde34961c322c95378b
https://github.com/josemotta/IoT.Starter.Api/tree/master/gpio-base
http://iaiai.iteye.com/blog/2411532
https://www.cnblogs.com/huanglufei/articles/5562330.html
https://www.raspberrypi.org/forums/viewtopic.php?t=103320
https://tieba.baidu.com/p/4079519080