使用树莓派红外控制空调和风扇

简介:

使用树莓派红外控制空调和风扇

一. 硬件连接:

红外接收器

vcc 连 pin1 (3.3v)

gnd 连 pin6(ground)

data连 pin12(gpio18)

红外发射器

vcc 连pin2(5v)

gnd连pin25(ground)

data连pin11(gpio17)

如果是2pin的红外发射器,就不用接vcc,为了提高稳定性,需要添加添加三极管和电阻,我们这里就偷懒了,只连接了2pin。

二.软件部分

1. 安装lirc软件组件,

 
  1. sudo apt-get install lirc

2. 加载驱动

 
  1. sudo modprobe lirc_rpi

3. 测试lirc是否正常

 
  1. sudo mode2 -d /dev/lirc0 # 按遥控上的任何键,查看是否有输出类似
  2. space 4960669
  3. pulse 2697
  4. ……
  5. pulse 2697

 4. 修改/etc/lirc/hardware.conf  文件中的 DRIVER和DEVICE

 
  1. pi@raspberrypi ~ $ cat /etc/lirc/hardware.conf
  2. # /etc/lirc/hardware.conf
  3. #
  4. # Arguments which will be used when launching lircd
  5. LIRCD_ARGS=""
  6.  
  7. #Don't start lircmd even if there seems to be a good config file
  8. #START_LIRCMD=false
  9.  
  10. #Don't start irexec, even if a good config file seems to exist.
  11. #START_IREXEC=false
  12.  
  13. #Try to load appropriate kernel modules
  14. LOAD_MODULES=true
  15.  
  16. # Run "lircd --driver=help" for a list of supported drivers.
  17. DRIVER="default"
  18.  
  19. # usually /dev/lirc0 is the correct setting for systems using udev
  20. DEVICE="/dev/lirc0"
  21. MODULES=""
  22.  
  23. # Default configuration files for your hardware if any
  24. LIRCD_CONF=""
  25. LIRCMD_CONF=""

5. 我们发射的红外指令,都是通过先录制,然后发送的方法,录制的情况分2种,  

一种是风扇这种简单的指令,我们使用的办法,可以直接解析出命令,使用lirc的录制功能就可以完成   另一种就是例如空调这种比较复杂带逻辑的命令,这种无法直接录制,我们采用的办法是使用原始的录制方法,后面讲,这里先给大家提醒一下

6.  irrecord --list-namespace | grep -i key_  挑几个你喜欢的键名,后面会用到的

7.先讲讲一般的录制,风扇这种比较简单的设备遥控

sudo irrecord -d /dev/lirc0  ~/fan.conf,在用户自己的目录下生成文件 按两下回车后,进行录制,首先按住一个键等待点一直出现到结束 然后不停得按遥控器上不同的键,重复按也没有关系,反正就是要等到点一直出现到结束 第三步,输入你的键名,一定是前面看到的KEY_XX,回车后,按一下你想要录制的那个键 后面输入键名录制,重复进行,直接回车,录制结束,在目录下就生成了fan.conf,如果过程中出错,删掉文件,重新录制

有兴趣的同学,可以看看文件的具体内容,再结合红外的协议标准研究一下,这里就不细说了,有兴趣可以私下给我留言

8.新建一个目录/etc/lirc/remotes,用来存放我们录制的文件,并将文件放入其中

 
  1. sudo cp ~/fan.conf /etc/lirc/remotes/

并修改文件中name 为好记的字段,这个后面要用的

 
  1. begin remote name fan
  2. bits 16 flags SPACE_ENC|CONST_LENGTH

 9.修改/etc/lirc/lircd.conf,添加如下:  

 
  1. include "/etc/lirc/remotes/fan.conf"

10.重启 sudo /etc/init.d/lirc restart,加载配置文件

11.测试你的风扇吧:

 
  1. sudo irsend SEND_ONCE fan KEY_NEXT

 fan:为第8步骤中提到的名字   KEY_NEXT:你的键值   (这些要是忘记了,可以再remotes下面的配置文件进行查看,如果失败,就看看你的硬件接法,以及元件好坏)

12.下面讲讲空调这种复杂的玩意,这种是无法直接录制的(希望大家在学习下面的内容前先,学习一下红外的协议标准,不然后面的东西,可能不知所以然)
红外协议:http://www.cnblogs.com/yulongchen/archive/2013/04/12/3017409.html

13. 学习了标准后,就明白了载波,以及频率的概念了,后头看看刚才sudo mode2 -d /dev/lirc0 的输出,那个就是我们的协议波形,space表示低电平,pulse表示      高电平,后面跟的是持续的时间,前面风扇用的是解析出来的命令,这里就要用的是这种原始的波形方式

14. 首先在开始录制空调的文件之前,我们需要有一个样板的conf文件,这个文件不能使用前面的文件,我们需要重新录制。

 
  1. irrecord -f -d /dev/lirc0 ~/fanraw.conf

 -f --force : force raw mode 强制使用raw模式,使用前面步骤7的办法进行录制

完成后,大家看看文件内容与前面的有什么不同,并看看与mode2 打出来的信息的关联,估计聪明的孩子已经知道怎么回事了吧

15. raw模式录制的文件其实就是pulse和space的延续时间,然后lirc在按照这个时间进行发送

16.开工:

首先使用sudo mode2 -d /dev/lirc0,找到你的那个键的总行数,多按几次,保证是没有问题的去掉第一行,然后把后面的数字,一次看看之前的raw文件的样子,写进去,会代码的朋友,可以写个工具处理,嗖嗖的,或者使用linux的正则搞定

17.在文件中重复添加其他键的那些数值,还有键名,最后把name也修改了,include到lircd.conf中,重启程序 

18.测试一把,打完收工啦。

19.有问题的同学,可以给我留言进行询问

原文发布时间:2014-09-10

本文来自云栖合作伙伴“linux中国”

目录
相关文章
|
1月前
|
传感器 C语言 智能硬件
基于单片机的温度控制系统
基于单片机的温度控制系统
31 0
|
1月前
|
IDE 开发工具
基于单片机的简易步进电机控制系统
基于单片机的简易步进电机控制系统
20 0
|
3月前
|
传感器 安全
HONEYWELL-05701-A-0145温度传感器
Honeywell 05701-A-0145是一款由霍尼韦尔(Honeywell)公司生产的温度传感器。
|
8月前
|
存储 芯片
人体感应太阳能灯原理图详细讲解
三河凡科科技飞讯教学,人体感应太阳能灯是一种利用太阳能源供电,通过人体红外线感应技术实现智能控制灯源开关的照明设备。其原理是利用太阳能板将太阳能转化为电能,通过对电池的储存和管理,将电能存储在电池中,作为灯源使用时的电力供应。同时,通过人体红外线感应技术,能够实现对灯源的智能控制。
人体感应太阳能灯原理图详细讲解
|
8月前
|
算法 编译器 网络性能优化
基于51单片机的电话拨号报警器(1)
基于51单片机的电话拨号报警器(1)
136 0
|
10月前
|
传感器
基于 51 单片机室内灯光控制系统
基于 51 单片机室内灯光控制系统
270 0
|
11月前
|
传感器 存储 监控
基于51单片机的室内湿度加湿温度声光报警智能自动控制装置设计
在日常生活中加湿器得到了广泛的应用,但是现有的加湿器都需要手工控制开启和关闭并且不具备对室内空气温湿度的监测,人们在使用过程中存在过度加湿和干烧的问题,不仅给室内空气舒适度造成负面影响并且还存在安全隐患。因此开发设计一种价格低廉、功耗低、具有自动控制功能的加湿器显得尤为必要。本设计采用智能控制,以AT89C51单片机为核心,外接辅助电路,通过实现加湿器的防干烧、声光报警、智能开启和关闭以及室内温湿度的显示功能基本实现加湿器的智能化。
136 0
|
11月前
|
传感器 前端开发 机器人
基于单片机的智能循迹避障小车STC89C52红外对管L298N驱动PWM波控制速度
利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。
208 0
|
语音技术 C语言
基于树莓派的智能音响【报时】【放歌】【切歌】【开关灯】
基于树莓派的智能音响【报时】【放歌】【切歌】【开关灯】
130 0
基于树莓派的智能音响【报时】【放歌】【切歌】【开关灯】
|
传感器 存储 IDE
HTU21D温湿度传感器与Arduino连接电路图说明
在本用户指南中,我们将学习如何将 HTU21D 温湿度传感器模块与 Arduino 连接。首先,我们将向您介绍 HTU21D 传感器,包括其引出线、特性以及与 Arduino 的接口。其次,我们将在 Arduino IDE 中安装 Adafruit HTU21D 库以访问传感器数据。最后,我们将看到两个在串行监视器和 SSD1306 OLED 显示器上显示温度和湿度值的示例。
207 0
HTU21D温湿度传感器与Arduino连接电路图说明