树莓派Lirc红外控制空调

目录

经过满长的爬坑,终于成功用lirc控制空调,用于HomeAssistant。


准备

用到的硬件就下面这些。

  • 树莓派Zero W (RASPBIAN STRETCH)
  • 红外接收模块(HX1838)
  • 红外发射模块
  • 若干杜邦线
  • 顺便把马老板家红外模块链接放上,买电子元件什么的也是要看运气。
    http://dwz.cn/hEALZbR1
    http://dwz.cn/kZu5T03F

    安装Lirc sudo apt install lirc ,这里用的是STRETCH版的系统,lirc版本应该是0.94c+,旧版不太一样,本文仅针对新版。

    修改启动配置 sudo vim /boot/config.txt ,修改 #dtoverlay=lirc-rpi 这行为

    dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17

    重启系统,lirc模块就被加载了

    接线

    安装gpiozero库,使用 pinout 查看树莓派管脚。

    sudo apt install python3-gpiozero
    pinout

    将接收模块的数据口接到GPIO18(注意不是管脚号),将VCC接到5V,GND接地。
    这个模块上没有标记,最好问一下客服,我买的两家的相同的模块,客服告诉我的都不一样。。。

    发送模块数据口接GPIO17,VCC接5V,GND接地。

    录制和发射

    本来写了很多,发现 这篇文章 讲的很详细,简单说一下。

    接收器是为了读取红外码,之后就不需要了,将红外码和键对应,生成Lirc配置文件,Lirc使用这个配置文件来发送相同的红外码,进而控制空调。
    这里需要注意的是空调的红外码和其他设备不太一样,电视机这种'0’这个数字就对应一个代表'0’的码;而空调'27度’,对应的其实是当前的所有设置,包括风向、风速、制冷、温度这些,相当于给一个关闭的空调发送'27度’,就同时打开了空调,设置好了所有这些对应参数。因为它的特殊性,不能用lirc自带的工具录制,需要手动将复制到配置文件里面。

    第一次发射的时候,空调没有反应,拖着排插按到空调上才成功,后面发现对准的话一两米也没有问题,最后固定在书架上对着空调的接收口。

    发射的操作很简单,就是一条命令,通过其他程序调用,就产生了很多应用方案了,下一篇会说明如何整合到HomeAssistant。

    参考

    https://segmentfault.com/a/1190000014135418
    http://jeffssss.github.io/%E6%A0%91%E8%8E%93%E6%B4%BE/2017/07/23/re-use-siri-turn-on-air-condition.html