html5红外遥控,做了个小的红外遥控装置

目的:早晨定时打开显示屏(电视),树莓派虽然省电,可以常开,但显示屏是耗电的。

材料:红外接收头(原来玩51开发板上带的,好久不用不知坏没坏)、红外发射管(曾买过一个红外避障器上有个红外发射管)、树莓派、电视及遥控器。

制做:

1、录制遥控器开机信号。接收头只是临时用,差不多就行,这个接收头在试验过程中出现问题很多,耽误很长时间,之前3.3V好使,后来不好使了,过程重试了N次,结果换在5V上好使了,这个过程网上很多,最麻烦的莫过于,那个点那个,现在也是莫名其妙,好在我只是要个结果文件,弄出来就使,反正到现在irw和LIST那个命令还是不好使。

过程:

安装sudo apt-get install lirc

sudo nano /boot/config.txt

dtoverlay=lirc-rpi

gpio_in_pin=18

gpio_out_pin=17

sudo nano /etc/lirc/hardware.conf

#Chosen Remote Control

REMOTE="None"

REMOTE_MODULES="lirc_rpi"

REMOTE_DRIVER="default"

REMOTE_DEVICE="/dev/lirc0"

REMOTE_SOCKET=""

REMOTE_LIRCD_CONF=""

REMOTE_LIRCD_ARGS="--uinput-listen"

#Chosen IR Transmitter

TRANSMITTER="None"

TRANSMITTER_MODULES="lirc_rpi"

TRANSMITTER_DRIVER="default"

TRANSMITTER_DEVICE="/dev/lirc0"

TRANSMITTER_SOCKET=""

TRANSMITTER_LIRCD_CONF=""

TRANSMITTER_LIRCD_ARGS="--uinput-listen"

(不知道用不用非这么复杂,反正成了,我就没再探究)

************以下两行是后加的,在新版本得用:

sudo nano /etc/lirc/lirc_options.conf

改两行:

driver=default

device=/dev/lirc0

**********************

重启一下,重新载入配置:(这里我的是用的lircd,用lirc不好使,网上大部分是lirc)

sudo /etc/init.d/lircd stop

sudo /etc/init.d/lircd start

以上改动完成之后,下面进入重要步骤:

首先说一下硬件:正着拿接收头,左为数据,中间地,右边vcc,网上有图可查看。vcc开始我接3.3也好使,但后来就只能接5了,不知为何,网上有说千万不能接5的。地线不用说,数据线接GIOP18,这个是BCM编码(缺省)也就是5v那边数第6个。3.3这边数第6个就是接的发射管的正极(这个也是在网上查了半天,因为我的红外发射管是在板上的,没有长短脚,我也不知红外发射管有没有长短脚,反正对比我手里的二极管也是这么猜着接的,一次成功!)红外发射管的另一极是接的地线。我是先录制,然后拆下接收头,只用发射管。

说完硬件,还是回来先说接收头。

mode2 -d /dev/lirc0

提示:

Using driver default on device /dev/lirc0

Trying device: /dev/lirc0

Using device: /dev/lirc0

按遥控器,屏幕打印一堆space、pulse的内容,这说明接收头好使。我在后边试时,用3.3这里就不出东西了,原因不明。

接下来就可以录制按键了

看这个吧,比较详细:http://tieba.baidu.com/p/5430954730

sudo /etc/init.d/lircd stop

irrecord --list-namespace 会出一堆键名儿

我本来只想用电源,但也录了一下up,down,结果把音量也顺便做了,以后也许会用上。

KEY_POWER

KEY_VOLUMEUP(我用的KEY_UP)

KEY_VOLUMEDOWN(KEY_DOWN)

irrecord -d /dev/lirc0  (这往下要注意操作)

先是显示一堆,回一下车,又显示一堆,(这时不要按键,稍等一下,会接着显示提示信息)

这个信息是要求你输入一个名字,用简单的英文吧,这里有个重要问题,你输入的名字,一会儿会用到,要记住,为此我耽误了一天!后来我输入的是a

之后会提示:下面的操作很重要。如果你英语不错,你可以快速读一下。

再回一下车,就开始按随意遥控器了,说是随意,按说明点不能一次按过10个..反正你得按两趟点,一趟点后会提示你:类似这个 Got gap

(97849 us)}

两趟后会提示你:请输入你要学习的名字,就是前面KEY_POWER那些,我先输入了KEY_POWER,回车,会要求你按住这个遥控器键,这里我也弄不明白,是一直按还是连按两下,反正按完,就会提示你继续输入名字,比如KEY_UP,再按键,如果不想继续学了,就回车,这里我没弄明白,怎么退出,反正回车后也得按一下遥控器上刚才学过的键,反正,只要出现这个就赢了:Successfully

written config file a.lircd.conf

这时,你可以用nano打开现在所在文件夹中这个文件a.lircd.conf

如果像这样:

begin

codes

KEY_POWER 0x00FDB04F 0x7EBCED6C

KEY_UP 0x00FD22DD

0x7EBCED6C

KEY_DOWN 0x00FDC23D 0x7EBCED6C

end

codes

就说明你录下来了,祝贺已完成一大半!接收头可以暂时收起来了。

接上发射管。

------把刚生成的文件改名为lirc.conf

-------sudo cp lirc.conf /etc/lirc/lirc.conf

上两句不对了,改成下面这句,主要就是现在是lircd.conf 不是lird.conf

sudo cp tv.lircd.conf /etc/lirc/lircd.conf

重启(这里我试了irw,LIST都不好使)(后来发现是后边的十进制数没删除,必须在/etc/lirc/lircd.conf中删除)

sudo /etc/init.d/lircd stop

sudo /etc/init.d/lircd restart

irsend SEND_ONCE a KEY_POWER

竟一试而成,接着试了一下声音的两个键,也都没问题。

(问题的关键就是这个a,之前在这里耽误了一天,就是说没找到远程的什么,原来是起的这个名要写在这里,之前在网上只有一个教程里看到这里边打了个pi,估计也是这个意思,但没有说明)

至此这东西就这么完成了。(输入上面一行代码,电视(树莓的显示器)就开了。)

a4c26d1e5885305701be709a3d33442f.png

接续:这次先上图

a4c26d1e5885305701be709a3d33442f.png

对,这次把接收头也安上了,不知怎么弄的,这次试了几下,3.3V也好使了,为安全起见,就接在3.3V上试验。

进入pi目录,就是Desktop的上一级,我一般不习惯在这里操作,都是在Desktop中,这回按网上教程来吧,

先编辑一个.lircrc文件,前面的点是个隐藏文件,为什么我也不知,先这么弄着,再在这里编辑一个yaokong.py文件:

1、sudo nano .lircrc

begin

prog = irexec

button =

KEY_VOLUMEUP

config = sudo python

/home/pi/Desktop/yaokong.py

end

2、sudo nano /home/pi/Desktop/yaokong.py(这个文件只是个测试)

import os

print("aaa")

重启lirc软件并执行"irexec"命令

sudo /etc/init.d/lircd restart

irexec

按遥控器的增加音量键,会在执行irexec的控制台,打印出“aaa”,完工。具体以后再改善吧。

至此,遥控器控制树莓派,以及树莓派当红外遥控器都实现了,同样,irw仍然无效,原因未知。

同时又学了个命令:irsend list "" ""  会把你录制遥控器按键时用的名字显示出来,比如:tv

原来那个命令不是不好使么?用这个:irsend LIST tv "" 后面的双引号很重要,前面的tv同样,否则你就是显示不出来.....

2020重做进又发现问题:其实最重要的文件就是

/etc/lirc/lircd.conf

这是你录好后再转存到系统中的文件,irw运行时用的是这个,所以在这里要把录制时的第二个没用的编码去掉,这又浪费了我一天时间,真TMD

------关于输入irw:没有任何反应---------------------------------------------------------------------

树莓派安装红外接收,irw无输出:https://www.hachina.io/dwqa-question/10554.html

also, i have faced a problem where everything seemed to work fine,

but i didn’t get any output running irw command. in case someone’s

stuck there: the problem is lircd.conf file which you’ve just

generated. take a look at it – you probably will get two hex codes

for each button, where the second one is always the same. simply

delete this value from each line and everything should work

now.

另外,我也遇到过这样一个问题:一切看起来都很好,但是我没有得到任何运行irw命令的输出。万一有人被困在那里:问题是您刚刚生成的lircd.conf文件。看看它-你可能会得到两个十六进制代码为每个按钮,其中第二个总是相同的。只需从每一行中删除这个值,现在一切都应该正常了

XXX.lircd.conf文件如下:删除每行的第二个十六进制的数,就可以使用irw输出了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值