重新买了个模块终于成功了,链接,真的要给这店大大的好评。

之前买的模块可能有问题,或者客服告诉我的接线不对,╮(╯▽╰)╭,看来硬件这种东西网络上也是很难找到问题所在。


为了给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

开启debugdebug=onmode2之后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