lumingjie1234 发表于 2017-3-8 15:50:14

433超再生模块+Arduino 捕捉并模拟无线门铃发射器

本帖最后由 lumingjie1234 于 2017-3-8 21:12 编辑

本文利用433超再生模块和Arduino捕捉无线门铃信号,并模拟门铃发射相同信号(原生数据信号也可以大致当成示波器)。

本人非专业人士,若有错误之处,还请多多指教[email protected]

工具:433超再生模块一对(某宝5元一对),arduino板一块,uno、nano、micro都行,433M的无线门铃(自己可以拆开门铃看电路板上的晶振,多为银白色,上面有数字433样式)。

库文件下载地址:https://github.com/sui77/rc-switch 或我的网盘:http://pan.baidu.com/s/1jHPJSwu

连线: 433发射模块的信号线连在arduino的10号数据口上,这个可以在代码中自行修改。
             mySwitch.enableTransmit(10);


            接收模块信号线连在2号数据口上,此时为中断0接收信号,确保接收信号的时候不被其它过程打断;也可以连在3号数据口上,此时为中断1,这个也可以在代码中自行修改(接收模块的中间两个针是连接在一起的)。
            mySwitch.enableReceive(0);// Receiver on interrupt 0 => that is pin #2      或
            mySwitch.enableReceive(1);// Receiver on interrupt 1 => that is pin #3

下载库
       将下载的库解压后放在Arduino安装文件夹下的libraries文件夹中
http://image.geek-workshop.com/album/201703/08/203419l3c2sk88xqpv845o.png
打开库文件夹下的示例文件平下的高级接收范例 ReceiveDemo_Advanced.ino ,可以不连接发射模块。http://image.geek-workshop.com/album/201703/08/203421e4qippu99v49ut4c.png
内容如下图所示。http://image.geek-workshop.com/album/201703/08/203421myqdqwtl0yuzyltd.png如果接收端接的2号数据口,就不用修改代码,直接下载程序到Arduino中;如果接收端接的3号数据口,第16行改成mySwitch.enableReceive(1); 下载程序到Arduino中,设置板卡,COM端口的我就不多说了。下载程序完毕后,打开端口监视器,选择波特率9600。然后按下自家门铃,等待奇迹。
我收到的信息如下:http://image.geek-workshop.com/album/201703/08/203422bl7sgnzlalc3kxls.pngDecimal: 11281672 (24Bit) Binary: 101011000010010100001000 Tri-State: not applicable PulseLength: 214 microseconds Protocol: 1 Raw data:
6652,644,956,16,196,652,196,260,448,60,172,692,184,692,180,692,664,116,372,12,88,200,676,188,688,692,184,688,660,256,192,680,196,12,24,196,692,192,676,664,252,696,184,668,204,684,188,692,656,

Decimal: 11281672 (24Bit) Binary: 101011000010010100001000 Tri-State: not applicable PulseLength: 214 microseconds Protocol: 1 Raw data:
6656,672,256,188,696,36,560,28,296,112,156,300,300,44,28,28,16,304,48,716,40,56,20,392,28,476,36,16,148,200,280,32,12,684,188,668,200,688,196,684,192,676,440,224,184,64,440,656,260,

Decimal: 11281672 (24Bit) Binary: 101011000010010100001000 Tri-State: not applicable PulseLength: 215 microseconds Protocol: 1 Raw data:
6676,664,252,184,692,652,260,196,684,656,256,668,252,200,688,184,688,648,264,192,688,188,684,192,688,192,440,24,232,664,248,188,448,188,692,192,688,188,688,188,692,660,256,184,680,200,684,192,252,通过多次按门铃分析,可以获得信号了,可以看到我接收到的信号内容为11281672(Decimal: 11281672),长度为24位(24Bit),用的1号默认协议(Protocol: 1),脉冲宽度为215,不是默认的320(PulseLength: 215)。
模拟发射:打开库文件夹下的示例文件夹下的发射范例SendDemo.ino ,可以不连接接收模块。http://image.geek-workshop.com/album/201703/08/203423p5smszuu5ae7d5dj.png
内容如下:
http://image.geek-workshop.com/album/201703/08/203425bm2i6bo2xi4ggibs.png上面setup中要设置接收到的脉冲长度,我的为215,这个要根据情况确定,loop内容只要关键两行,以24位发射两次上次捕捉的信号,大家也可以试试发射一次信号,因为我按一次接收到的不是一次的信号,所以设置了发射两次就成功了。最后下载程序到Arduino中,下载程序完毕后竖起耳朵,再次等待奇迹。


云中漫步 发表于 2017-3-8 19:37:21

帖子在哪里?

飞火 发表于 2017-3-14 09:33:15

必须顶,有技术内涵的帖子

jasonwang1208 发表于 2017-3-14 09:41:27

3Q for sharing.
页: [1]
查看完整版本: 433超再生模块+Arduino 捕捉并模拟无线门铃发射器