1. 项目概述
APRS(Automatic Packet Reporting System)是业余无线电爱好者广泛使用的一种数字通信协议,它能够将位置信息、气象数据、短消息等内容通过无线电波传输并显示在地图上。这个项目使用移远通信的QuecPython开发板和GPS模块,构建了一个便携式的APRS信息收发装置。
作为一名玩了十多年业余无线电的老HAM,我一直想做一个体积小巧、功耗低、功能完备的APRS终端。传统的APRS设备要么价格昂贵,要么体积庞大。而使用QuecPython开发板,配合GPS模块和射频模块,可以轻松实现这个需求。
这个APRS盒子可以实现以下功能:
- 自动获取GPS位置信息
- 通过射频模块发送APRS数据包
- 接收并解码其他电台发送的APRS信息
- 通过串口或网络接口与电脑连接,实现更多扩展功能
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件选型与搭建
2.1 核心硬件组件
这个项目需要以下几个关键硬件组件:
-
移远QuecPython开发板:
- 我选用的是EC600S-CN模组,它内置了QuecPython运行环境
- 支持MicroPython编程,开发效率高
- 集成了4G LTE通信能力(虽然本项目主要用其GPIO和串口功能)
- 工作电压3.3V-4.3V,适合电池供电场景
-
GPS模块:
- 选用UBLOX NEO-6M模块,性价比高
- 支持标准的NMEA协议输出
- 定位精度约2.5米,完全满足APRS需求
- 通过串口与QuecPython开发板通信
-
射频模块:
- 使用HopeRF的RFM98PW模块
- 支持FSK调制,工作频率434MHz(业余频段)
- 发射功率最大20dBm,接收灵敏度-148dBm
- 通过SPI接口与主控通信
-
电源系统:
- 18650锂电池供电
- 配有TP4056充电管理芯片
- 3.3V LDO稳压器为各模块供电
2.2 硬件连接示意图
code复制[18650电池] -> [TP4056充电] -> [3.3V LDO]
|
v
[QuecPython开发板] <- SPI -> [RFM98PW射频模块]
|
UART
|
v
[NEO-6M GPS模块]
注意:射频模块的天线接口需要使用50Ω的同轴电缆连接合适的天线,天线长度应根据工作频率计算(434MHz对应约16.5cm的1/4波长天线)。
2.3 硬件组装要点
-
电源处理:
- 所有模块统一使用3.3V供电
- 在电源输入端加入100μF电解电容和0.1μF陶瓷电容滤波
- 射频模块电源单独增加LC滤波网络
-
信号线处理:
- SPI时钟线长度尽量短,必要时加33Ω串联电阻
- GPS模块的UART线需要远离射频模块的天线
- 所有数字地线单点接地,避免地环路干扰
-
结构设计:
- 使用3D打印外壳,将射频模块和GPS模块分开放置
- GPS模块需要保证天空视野
- 射频天线垂直安装效果最佳
3. 软件设计与实现
3.1 QuecPython开发环境搭建
-
工具链准备:
- 下载QuecPython IDE(基于VS Code)
- 安装CH340 USB转串口驱动
- 准备MicroUSB数据线(带数据传输功能)
-
固件烧录:
bash复制# 使用QPYcom工具烧录固件 qpycom -p COM3 -f EC600S_CN_01.001.01.001.bin -
基础测试:
python复制# 测试GPIO控制LED
