arduino红外遥控接收器插在哪里

3. 常见红外遥控器红外线信号传输協议 7. 基于STM32实现红外信号解码

由于每家电器厂商都可能自定一套按键编码标准因此嗅探重放攻击是最简单的一种攻击方式,且由于遥控器發出的信号为光波信号很容易在空气中截获并保存bit流,通过一定的分析、分类就可以明白对应的指令操作码在指定bit位置进行修改,可鉯很容易制造出对应电器型号的仿真遥控器

7. 基于STM32实现红外信号解码

0x1: 基于状态机机制对PWM(脉宽调试信号)进行解码

红外的信号是一串PWM信号(通过脉沖长度调制信号)我们需要自定义STM32的中断处理函数,基于状态机机制检测、解码接到到的引导码和实际按键信号

通过逐位接收并判断有效性后,通过移位操作逐位保存接收到的红外bit流

通过打印遥控器的某按键的16进制值

发现每次按键发出的bit流都不一样,这可能就需要我们通过黑盒、或者遥控器固件逆向的方式来得到遥控器的编码方式

由于美的空调使用的不是简单的紅外编码信号因此在使用arduino红外遥控库的时候不能直接调用其已有的编码规则,需要先了解美的空调的编码规则再使用IRsend::sendRaw这个函数直接发送原始数据。本文建立在已经对红外发送有了了解并且搜到了美的空调的编码规则的基础上(编码规则在百度即可搜到)

根据美的的编码規则L A A' B B' C C' S L A A' B B' C C' O为最普通的开机码,其中L为引导码A、B、C为决定温度,风速模式的码,A'B',C'分别为AB,C按位取反后的码S为分隔码,O为终止码(均可在上面的链接上查到)

关机码与开机码稍有不同如果想直接关机,可以直接复制下面的数组buf[300]

 
如果要把每一个码都直接存起来就有点浪费内存了其实可变的码也就A,B,C这三个字节,下面的函数实现了输入三个字节A,B,C就把全局数组buf[200]用持续时间填满,之后直接使用sendRaw(buf,200,38)就可以开机並设置温度风速,模式了

我要回帖

更多关于 arduino红外遥控 的文章

 

随机推荐