# autobiu **Repository Path**: bh2ufz/autobiu ## Basic Information - **Project Name**: autobiu - **Description**: autobiu-aprs自动收发 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-20 - **Last Updated**: 2024-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 把你的名字,刻在星星上 —— auto biu~ 提醒:使用无线电台需要遵守国家相关法律法规 ## 前言 国际空间站上有一部专门用于APRS通信用的电台,除宇航员出仓及飞船对接的时间外,基本都是全天开启状态,为全球业余无线电爱好者提供APRS中继服务,每5分钟发送一次信标。在网站的页面上,可以看到最近若干小时内通过这部中继工作的全球台站情况。 ![ariss世界地图](./img/001.png) 目前大部分时间,地图上中国区域的台站都非常稀少,为了能让这张地图上显示更多的中国呼号,我现开源自己编写的一个简单的程序。程序使用direwolf软件的kiss协议网络接口来控制电台,自动向国际空间站中继发送信标。我给它取了一个比较土气的名字:**auto biu~** 虽然通过direwolf软件的信标配置功能,也可以定时发送信号,但长时间短间隔的定时发送,将对珍贵的业余卫星通信频率造成不必要的干扰。《auto biu》工作的基本思路是,平时守听空间站频点,一旦收到空间站APRS信号,程序会自动进入一个最长为几分钟的自动间歇发送状态。此期间如果自己的信号被ISS转发,并被地面网关接收转发至aprsis网络,则本次提前工作结束,等待下一次ISS过境。 ## 使用方法 **本程序只能在linux系统下使用。** 各种Pi、Debian、Ubuntu系统应该都可以,因为大多数火腿的direwolf软件都是安装在linux系统下的,所以系统要求应该很容易满足。代码使用起来还算简单,但因为它是配合direwolf软件使用的,所以先对direwolf软件的安装配置做一些必要的介绍,方便没有用过的朋友参考。如果你的direwolf已经在安装配置完毕,可以正常接收和发射射频信号,那么可以跳过下面这一段。 ### direwolf 安装与配置 direwolf 是美国爱好者 wb2osz 写的一款APRS开源软件,功能强大,软件主页。软件支持iGate、DIGI、Tracker模式,支持多种协议,支持声卡虚拟为TNC,支持多种通信协议,解码率强悍,超越硬件TNC。 国内的火腿一般会把这款软件用于iGate,它支持使用RTL芯片的电视棒直接实现单向iGate功能,在国内爱好者中比较普及。bg9ega有篇文章 [APRS折腾之:IGate网关](https://bg9ega.cn/290.html),在网络上出现得较早,非常有参考价值,我也是通过这篇文章才接触的direwolf这个软件。 direwolf软件的安装和配置过程,上面这篇文章已经基本讲得比较全面了。但上文是单向接收,关于控制发射,在软件文档中有较详细的说明。在direwolf源代码目录下doc文件夹下《User-Guide.pdf》文件的第76页中,推荐了几个链接可以仔细参考。其中这篇文章,专门介绍了使用CM108芯片的外置USB声卡来直接控制电台进行接收和发射的方法。 ### autobiu 的使用 #### 前提 当你的direwolf软件已经连接好电台,能够正常地接收发射ARPS信号(灵敏度和发射效率正常,并且天线的形式和极化方向也已合适),就可以继续往下看了。(有兴趣的朋友也可就此另外讨论,此处不再赘述) #### 安装编译环境 如果是按上面[bg9ega 的文章](https://bg9ega.cn/290.html)来安装的direwolf软件,那么编译本程序所需要的工具其实都已经安装好了。为了避免遗漏,这里重新说明一下编译本软件所需要安装的工具(以下命令即使发生了重复操作也没有不良影响): ```bash sudo apt update sudo apt upgrade sudo apt install git make gcc nano ``` #### 编译 autobiu 输入如下命令: ```bash cd git clone https://gitee.com/bg4uvr/autobiu cd autobiu make ``` #### 配置 autobiu 此时编译工作已经完成,我们来第一次运行程序 ```bash ./autobiu ``` 程序首次运行会因为程序没有找到配置文件,而只显示一些提示消息就退出了,同时它会在当前目录生成一个配置文件模板文件,现在运行如下命令来编辑这个文件: ```bash nano autobiu.conf ``` 文件中,只有6个配置项: * “**server_kiss**”,是指运行direwolf程序电脑的IP地址。当本软件和direwolf是在同一台机器上运行时,那么保持“127.0.0.1”无需改变,否则需要更改成direwolf软件所在电脑的实际IP地址。 * “**port_kiss**”,指direwolf软件的kiss协议端口,如果你没有特意的配置过,那么默认为“8001”。 * “**server_aprs**”,是指aprsis服务器地址,如无特别原因无需改变默认设置。 * “**port_aprs**”,是指aprsis服务器端口号,如无特别原因无需改变默认设置。 * “**mycall**”,你的呼号加ssid,格式形如“BGnXXX-nn”,注意不要输错,因为程序没对输入做合法性判断,如果你错误输入,可能无法正确运行,甚至干扰正常秩序。 * “**msg**”,这是你需要设置的发送消息语句,**此处输入的消息语句内容要严格符合aprs-is的格式规则,否则你的发送数据包可能无法被aprs-is网络正确识别**。如果不清楚详细规则,最简单的办法就是直接照抄自己已经发送上网语句的消息段。注意,需要从冒号后开始(不包括冒号本身),一直到换行结束。 #### 运行 autobiu 以上配置结束后,按```ctrl + x``` 组合键,再按```y```来确定,保存退出。然后运行: ```bash ./autobiu -d ``` 参数```-d```的含义是,以调试模式运行程序。此时电台正在接收的数据可以直接在屏幕上显示出来,如果是接收到空间站的数据,则同时可以显示出相关的工作状态。此时如需中止程序运行,可以按组合键```ctrl+c```。 如果确认程序已能正常工作,无需监看,那么可以直接运行```./autobiu```,程序会在显示少量文字提示后,转入后台模式,此时退出登录或直接关闭ssh窗口不会影响到软件正常运行。 无论是调试模式还是后台模式,程序在工作时都会将详细的工作情况记入日志文件,方便过后查看。日志文件保存目录为当前目录,以当前日期为文件名,每日新建。可以使用```cat```命令或```nano```编辑器来查看,如```cat 2023-02-22.log```或```nano 2023-02-22.log```。 #### 检查和中止进程 查看工作进程情况可以使用```ps -ef |grep autobiu|grep -v grep```命令,后台模式下会看到2个进程,调试模式下1个。**可以使用命令```pkill autobiu```来结束运行中的autobiu软件进程**。 #### 开机自动运行 1. 编辑 /etc/rc.local 文件,运行命令:```sudo nano /etc/rc.local``` 2. 在文件中加入这行命令```/home/你的登录用户名/autobiu/autobiu```,注意如果文件最后一行是```exit 0```,那么需要加在这行之前才行。 3. 按组合键```ctrl + x```,再按```y```,来保存文件。 4. 如果文件打开后是全空没有内容,说明系统原来不存在这个文件,需要再增加一下执行权限:```sudo chmod +x /etc/rc.local``` 5. 如需取消开机自动运行,把刚刚我们加入的那行删除即可。 ## 写在后面 因不是专业编程人员,代码非常粗糙,加之未经长期验证,错误不足难免,尤其是kiss协议编解码部分,为全新编写,有较大概率还存在BUG,如发现问题,还请批评指正,谢谢~