用树莓派和RTL-SDR搭建一个APRS网关
目录
如果您的手上有一块闲置的树莓派,一个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数据上传到服务器的时候需要验证您的呼号和密码,密码是根据您的呼号计算出来的。这里 是一个在线计算密码的网站。