使用树莓派制作遥控器

  • 拉普拉斯
  • LV2工程师
  • |      2017-05-28 12:28:35
  • 浏览量 2065
  • 回复:1
夏天到了,热死人不偿命呀,为了避免每次回家都要遭受半个小时的高温烘烤,可以用树莓派做一个遥控,可以实现通过网络对寝室空调进行远程控制,具体的实现是通过lirc驱动实现。 1. 硬件配置: 要实现遥控控制,首先需要有个一940nm波长的二极管和一个集成的38K的红外接收模块,以及一个遥控器,关于遥控接收,有很多资料可以参考,而红外发射则相对较少,因此这里着重写一下红外发射的,940nm的红外二极管很便宜,两毛一个吧,我用的是3mm的两毛一个的二极管,因为树莓派IO驱动能力十分有限,因此有必要搭一个简单地放大电路,电路很简单,需要两个NPN的三极管。 2. 软件设计 软件部分是这次设计中比较麻烦的,因为空调遥控器属于带逻辑控制的,每次发射的都是含有温度、模式、制冷制热等一连串的指令,如果按照传统的通过irrecord指令生成conf文件,实际试验下来是不行的,因此必须进行raw_code的发射,就是直接记录空调遥控器的发射码型,然后修改conf文件,最后通过irsend命令直接发送raw码,恩,基本流程就是这样,下面对详细流程进行说明。 a.安装lircb.配置模块,在/etc/modules文件里添加,18是红外接收管的引脚,23是红外发射管对应的引脚c.修改硬件配置文件hardware.conf,文件位置/etc/lirc/hardware.conf修改完以上几个模块之后就可以重启lirc模块,进行测试了,重启命令sudo /etc/init.d/lirc restart 需要说明一下,lirc会用到网络本地回环进行数据传递,因为我用的是固定IP,在进行IP配置的时候一不小心把lo给禁止掉了,结果反复多次都出现irw指令无法运行的现象,后面再搭建服务器的时候查看log时突然发现这个问题,然后lirc也就顺便解决了,当然,这个对于经常使用dchp的人是不必考虑的。 3. 测试红外模块运行mode2 –d /dev/lirc0,然后按遥控器,就会出现一长串的数据,说明接收器正常运行,这里还要提一下,红外这东西,看不见摸不着,调试起来着实有点麻烦,可能是因为单位做光学的人比较多吧,总是会出现莫名的红外干扰,在我最开始进行测试的时候,并不时出现看不到序列的现象,而是运行命令后,还没等我拿起遥控器,就看到一串串的数据,刚开始以为是干扰的问题,屁颠屁颠的把只有20cm的杜邦线给剪成2cm的了,结果还是不行,又来听说加个上拉电阻会好一点,想想也不无道理,应该会稳定点。 4. 记录码型 码型记录是个比较关键的步骤,前面说了,空调遥控器这种带逻辑控制的着实麻烦,只能使用raw的原始码,记录也是通过mode2 命令实现,前提是在一个没有环境干扰的情况下进行。。。,运行mode2 –d /dev/lirc0 >> temp.code然后按一下空调遥控器的开机键,再按ctrl+C结束,用vi打开temp.code,将它改成可以被irsend识别的格式可以通过。 5. 发送码型剩下的就是关键的发送码型了,可以先用irsend LIST /home/pi/lircdac.conf ""命令查看是否会出现相应的命令,/home/pi/lircdac.conf 是配置文件中的名字,可以修改。 6. 然后就可以通过 irsend SEND_ONCE /home/pi/lircdac.conf KEY_POWER发送开机指令了,如果你听到滴滴的声音,那么恭喜你,如果没有听到,那么还是去看看硬件电路是不是有问题吧。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
17855343529 2017-12-24
顶顶:lol
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子