前言:
希望在这个网站慢慢记录自己学习过的东西,做过的东西,回看应该会明白更多。

我去年实习短暂接触了HackRF,做了这个小尝试,目标也很简单,就是实现一个对固定码的监听及发送功能。这篇帖子更多是从工具使用者的角度出发,旨在分享给同我一样的新手一些入门经验吧。

在这个小项目中,我使用到的工具有:

  • RDL2832U(只可接收信号)
  • 树莓派3 Model B+ (使用Arduino也可以), Module RF 433MHz的发射器和接收器
  • HackRF One(准备搭配GNURadio一起研究下,尚未开荒)
  • 开源软件:URH(Universal Radio Hacker),433Utils,rtl_433

URH是一个将监听结果图形化的开源工具,由Johannes Pohl开发提供,

GitHub - jopohl/urh: Universal Radio Hacker: investigate wireless protocols like a boss

我这里是通过RDL2832U监听无线电波,在URH软件里可以查看监听信号的频率,调制后的图像,自定义解码等等。

URH主要提供了四个模块,Interpretation,Analysis,Generator和Simulator,使用前两个模块对于实现我的目标已经足够了,工具使用比较简单,注意选择好正确的Bit length,以及需要的解码器(NRZ,曼彻斯特码等),我需要设置的是摩斯码。

Hack radio【小尝试总结】

433Utils和rtl-433是树莓派上的开源工具库,也是用于实现监听无线电信号,搭配Module RF使用(这里也要用到GPIO接口,所以在树莓派上需要安装WiringPi库及相应设置)。

WiringPi的安装命令行:

git clone git://git.drogon.net/wiringPi

rtl-433由Benjamin Larsson开发提供,呈现出的监听结果是张表格,我没有太明白如何分析显示结果,所以没怎么使用。大家若是感兴趣,可以去了解一下它的使用。

rtl-433的安装命令行:

git clone https://github.com/merbanan/rtl_433

433Utils可以搭配Module RF实现监听和发送功能,用于树莓派和Arduino。通过RFSniffer这个接口实现监听,可以得到一个十进制的数,这与URH上监听该信号,摩斯解码后二进制转十进制的结果相同。然后通过codesend接口发射,至此我们可以不再通过原来的控制器去打开开关。
Hack radio【小尝试总结】
Hack radio【小尝试总结】

433Utils的安装命令行:

git clone - - recursive git://github.com/ninjablocks/433Utils.git

我们可以根据自己的需要在433Utils的底层库等文件里进行修改,如Protocol(包含pulse length, 1,0如何由高电平、低电平呈现,Synch. Bit等信息),但我还是遇到了以下问题:

  • 由于底层库RCSwitch的中断机制,我们不能在同一程序同时实现监听和发送功能
  • 自定义protocol,发射信号,然后通过URH+RDL接收信号,得出图像,并未观察到Synchronisation Bit这部分的呈现
  • 利用433Utils监听、发送信号时,有效信息(我们接收和发送信号时实际是将一段单位信号重复,这里我叫这段单位信息为有效信息)最长不可超过32bits。虽然RCSwitch库的新更新有指出解决该问题,但我按指示来更改底层库后,依旧无法实现。用codesend发送一段代表40bits信号的十进制数时,高于32的bits在调制后体现实为一种补零。

我测试的物件有两个,一个是通过控制器打开转换插头的开关,不管是打开还是关闭按钮,它的有效信息长度都为20bits,所以用433Utils实现目标完全没问题。另一个是将接收器与灯连接,然后控制灯的开关,这里使用的遥控器(好像是个波兰的牌子)发送的信息长度是40bits,且上下键含有两段有效信息(我通过URH记录的信号观察到的),所以433Utils对此不再能发生功效。我选择了用URH监听,然后自己写了个小代码,利用树莓派的GPIO和Module RF发送自己想要的脉冲图像,也实现了自己的目的。
Hack radio【小尝试总结】Hack radio【小尝试总结】

相关文章:

  • 2021-09-22
  • 2022-12-23
  • 2021-08-25
  • 2021-08-17
  • 2022-12-23
  • 2021-10-22
  • 2021-07-20
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-10
  • 2022-02-04
  • 2022-12-23
  • 2022-01-17
  • 2021-12-03
  • 2021-08-29
相关资源
相似解决方案