跳到主要内容

用树莓派和RTL-SDR搭建一个APRS网关

·122 字·1 分钟

如果您的手上有一块闲置的树莓派,一个SDR接收器,那么为了不吃灰,来搭建一个 APRS 网关玩玩吧。

这里所用到的软件是一个开源的Go编写的程序。

https://github.com/cceremuga/ionosphere

安装 #

一键安装脚本 #

有人写了个一键安装脚本:

https://github.com/g7gpr/rpiionosphereinstaller

可以直接通过树莓派的终端运行以下命令:

sudo apt-get install git -y
git clone https://github.com/g7gpr/rpiionosphereinstaller 
cd rpiionosphereinstaller
./ionosphereinstaller.sh

脚本会自动安装所需要的库,并编译 ionosphere

配置 #

配置文件解释,未注释的参数无需修改
vi ~/aprs/ionosphere/config/config.yml
rtl:
  path: "rtl_fm"
  frequency: "144.640M" #接收APRS的频率,国内基本都为144.640
  gain: "49.6"
  ppm-error: "44" #SDR的ppm值,校对频率的
  squelch-level: "0"
  sample-rate: "22050"
  additional-flags: ""

multimon:
  path: "multimon-ng"
  additional-flags: ""

beacon:
  enabled: true
  call-sign: "呼号" #此处填写你的业余无线电呼号,将会显示在地图上
  interval: "10m" #转发数据包的频率,只能大于等于10分钟,最低10分钟一次
  comment: "!DDMM.hhN/DDDMM.hhW&iGate on RPI-SDR @144.640Mhz" #APRS信标

handlers:
- id: "4967ade5-7a97-416f-86bf-6e2ae8a5e581"
  name: "stdout"
- id: "b67ac5d5-3612-4618-88a9-a63d36a1777c"
  name: "aprsis"
  options:
    enabled: true #开启上传到服务器功能
    server: "china.aprs2.net:14580" #信标发往的服务器地址
    call-sign: "呼号" #您的业余无线电呼号
    passcode: "*****" #您的认证密码
    filter: ""

如何获取RTL.SDR设备的ppm值 #

如果设备的晶振精确度不是很高,那么在收听指定频率的时候一般都会有些许的误差,误差过大的话会导致指定的频率无法接收到正确的信号,所以需要设置ppm进行校正。设备通电后建议等待几分钟再进行校对,因为设备芯片温度上升后,晶振的频率可能会有变化。

频率越高误差越大,所以尽量使用较高的频率来进行校对。

提示! 对讲机发射需要合法取得执照,尽量使用最小功率!

简单的方法是使用对讲机来校对,在电脑上打开SDR接收软件,比如SDR#,调整到 440Mhz,对讲机也是用440Mhz来发射(请合法使用),在SDR#中调整ppm数值,使信号波形图对到正确的位置,此时的ppm数值就可以填写到配置文件中了。

APRS信标格式 #

示例

!DDMM.hhN/DDDMM.hhW&iGate on RPI-SDR @144.640Mhz

DDMM.hhN 表示GPS坐标的纬度,N表示北纬

/ 表示图标表格中对应的列,参考 图标表格

DDDMM.hhW 表示GPS坐标的经度,W表示西经,E表示东经

& 表示图标表格中对应的行

&字符后边是短语,也会在地图上显示

信标详细规范请参阅 http://www.aprs.net/vm/DOS/PROTOCOL.HTM

信标测试地址https://aprs.tv 生成信标

提示!百度、高德等获取到的坐标可能是火星坐标系,需要转换方可正确!坐标的转换请自行查询。

获取APRS网关密码 #

APRS数据上传到服务器的时候需要验证您的呼号和密码,密码是根据您的呼号计算出来的。这里 是一个在线计算密码的网站。