使用 Raspberry Pi 配置业余无线电网关

通过维护基于互联网的 packet radio 主干网的一部分,帮助共享本地信息。
503 位读者喜欢这篇文章。
open source button on keyboard

Opensource.com

APRS(自动分组报告系统)是面向业余无线电的全球数字通信网络,提供一个单一的国家频道,人们可以在其中监控周围区域正在发生的事情。

APRS 使用 packet radio (AX.25),Tom Karpiniec 在其出色的 Opensource.com 文章“Packet radio 通过开源软件延续生命”中将其描述为传输层。

APRS 的基本思想是在业余无线电操作员的位置上下文中传递信息,例如其他电台的位置信息(无论是移动的还是固定的)、中继器系统、天气信息或事件。业余无线电操作员还可以通过网络向其他业余爱好者发送直接消息。当数据包发送时,它们包含可以在地图上显示的位置信息。这提供了区域内活动的即时视图。

APRS activity map

opensource.com

得益于互联网,APRS 不再局限于仅通过无线电传输流量。APRS-IS(自动分组报告系统 - 互联网服务)是一个基于互联网的全球网络,它将世界各地(以及太空,通过业余无线电卫星和国际空间站)的各种 APRS 无线电网络互连起来。APRS-IS 由志愿者业余无线电操作员维护和运营,为业余无线电 APRS 射频网络提供全球主干网。

基于 Raspberry Pi 的 APRS-IS 网关

在世界各地,业余爱好者操作互联网网关 (IGate) 系统,以将从基于 packet radio 的网络接收到的数据包路由到基于互联网的 APRS-IS 服务,然后再返回;这些网关可以是仅接收的,也可以具有发送功能。

本文介绍如何配置 Raspberry Pi 2 或 3 和一个 终端节点控制器 (TNC) 作为仅接收的 IGate,以将无线电流量中继到 APRS-IS 服务,世界各地的业余爱好者都可以在那里访问它。

接收业余无线电流量没有许可要求,只有发射才有。我们可以使用基本的 Raspbian 操作系统,该操作系统可直接从 Raspberry Pi 基金会网站以预配置镜像的形式获得。

TNC 是一种设备,其基本功能是无线电调制解调器,并提供 AX.25 协议功能。通过使用专用硬件,在本例中为 TNC Pi,您不必依赖 Raspberry Pi 的处理能力来同时处理音频信号和无线电控制。TNC Pi 是一个 Raspberry Pi HAT(即,一个附加板),它通过串行端口或 I2C 总线与 Pi 连接。

TNC Pi

opensource.com

TNC Pi 可以购买完全组装好的版本,也可以购买精美的 DIY 套件,您可以在其中拿出烙铁进行焊接。TNC Pi 连接到无线电,使 Rpi 能够发送和接收数据包。

配置硬件

第一步是配置 TNC 及其与 Raspberry Pi 的通信。由于您将通过串行端口将 Raspberry Pi 连接到 TNC,请确保串行端口可用。(Raspberry Pi 默认配置为使用内部串行端口作为控制台端口。)

如果存在,请删除 /boot/cmdline.txt 中的以下行

console=ttyAMA0,115200 kgdboc=ttyAMA0, 115200

将以下行添加到 /boot/config.txt

enable_uart=1

如果您使用的是 Raspberry Pi 3,请将以下行添加到 /boot/config.txt

dtoverlay=pi3-miniuart-bt
core_freq=250

需要将以下行添加到/lib/systemd/system/hciattach.service 以配置通用异步收发器 (UART) 以与 TNC Pi 通信。(如果该文件在最新版本的发行版中不存在,您可能需要创建它)。

[Unit]
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service
After=dev-ttyS0.device
[Service]
Type=forking
ExecStart=/usr/bin/hciattach /dev/ttyS0 bcm43xx 921600 noflow -
[Install]
WantedBy=multi-user.target

完成这些更改后,重新启动 Raspberry Pi 以确保它会在重启期间自动拾取它们。

配置软件

现在硬件方面已设置完成,请将注意力集中在 APRS 中继软件 Aprx 上,该软件将接收到的数据包中继到 APRS-IS 系统。

所需的软件包是默认存储库的一部分,可以通过运行以下命令安装:sudo apt-get install aprx -y.

Aprx 的配置文件位于 /etc/aprx.conf。使用您最喜欢的文本编辑器打开该文件,并根据您的需要进行以下更改。文件的每个部分配置软件的不同行为。

呼号和位置

	mycall  K5TRI-1
	myloc lat 4737.52N lon 12206.05W

上面的第一行通过 mycall 关键字定义您的呼号,第二行根据纬度和经度定义您的位置。

Aprx / APRS-IS 通信

<aprsis>
	login     $mycall
	passcode **** 
	server   rotate.aprs2.net
	heartbeat-timeout   1m   
	filter "m/100"	     
</aprsis>

aprsis 部分配置 Aprx 以与 APRS-IS 服务通信。passcode 是根据您的呼号生成的哈希值。APRS Passcode Generator 可以自动生成一个。此 filter 定义了您位置周围 100 英里的半径。(当然,可以设置得更小。)这意味着在与 APRS-IS 进行门控时,它只会关注此半径内的流量。如果您位于纽约市,那么查看来自意大利罗马电台的流量就没有多大意义。

日志记录

<logging>
	pidfile /var/run/aprx.pid
	rflog /var/log/aprx/aprx-rf.log
	aprxlog /var/log/aprx/aprx.log
	erlangfile /var/run/aprx.state
	erlang-loglevel LOG_DAEMON
	erlanglog /var/log/erlang.log
	erlang-log1min
</logging>

logging 部分定义了 Aprx 将日志和 PID 文件写入的位置。aprx.log 文件用于程序特定的输出,而 aprx-rf.log 写入所有接收和发送的数据包。

TNC 接口

<interface>
   serial-device   /dev/ttyAMA0  19200 8n1    KISS
   alias         RELAY,WIDE,TRACE
   callsign $mycall
   tx-ok false #set to false for RX only igate
   telem-to-is true 
</interface>

interface 部分定义了 TNC 参数,如串行端口、波特率、此接口上使用的呼号(可以使用具有不同呼号的多个接口),以及是否允许此接口发送数据包。

信标

<beacon>
	beaconmode APRSIS
	cycle-size  60m
	beacon symbol "I&" $myloc comment "RX iGate on Raspberry Pi"
</beacon>

配置 beacon 以告知 APRS 网络您的存在。在定义的时间间隔,信标会将包含您的信息的消息发送到 APRS-IS 服务。这也会将您的 IGate 放置在地图上。

APRS IGate 的优势

APRS 服务已发展成为业余无线电非常强大的通信通道,具有众多的应用和用途。最普遍的用途是跟踪车辆位置,例如在公共服务或紧急通信场景中。其他应用可能是遥测数据的传输和收集,例如天气数据。无论如何使用,操作 IGate 都为当地业余无线电社区提供了出色的服务。

标签
Profile picture of Michael Schulz
Michael 最早于 1993 年开始接触 Linux,当时需要一个真正的多任务操作系统来运行他的 BBS(Waffle BBS)。在过去 20 年中,他曾在 Compaq、HP、IBM 和 Microsoft 等公司担任过各种职务,这让他有机会帮助许多企业和政府组织了解开源软件的价值和优势,并参与其中

4 条评论

APRS 是“安全”的吗?还是它正在向全世界广播我的位置?

APRS 以及事实上所有的业余无线电传输都是公开的。在美国,根据 FCC 法规,除空间站(例如业余无线电卫星)的控制信号外,不允许任何形式的加密。这意味着,是的,如果您通过 APRS 传输您的位置,那么所有在您的信号范围内的人都可以接收到您的传输,从而知道您的位置。这就是其背后的想法,以便业余无线电爱好者可以找到其他业余无线电爱好者并接收其他与位置相关的数据。

73 Michael K5TRI

回复 ,作者 MasterC

关于 TNC 接口,如果在美国,RELAY 和 TRACE 是旧范式(2004 年之前)。WIDE 现在通常是 WIDE1 或 WIDE2。
参考:http://aprs.org/fix14439.html

因此,与其
alias RELAY,WIDE,TRACE
使用
alias WIDE1,WIDE2

另一方面,仅配置 I-Gate 时,别名并不重要。除非明确要求不这样做,否则 I-Gate 会将听到的一切传递到 APRS 互联网服务器 (APRS-IS)。

当进行数字中继时,别名很重要。它决定了什么被数字中继或重新发送回无线电波中。

无论如何,文章都很棒!

73

发现得好。这是我原始配置中遗留下来的,我没有删除。感谢指正。

73 Mike K5TRI

回复 ,作者 Fred Hillhouse (未验证)

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.