两台设备提前约定频道,一方按下 PTT 讲话,另一方接收并播放;松开按键后,对方可按下 PTT 回复。这就是这套 LoRa 无线双向通信装置的基本使用方式。

这是我本科阶段参与的一项无线通信硬件项目。我主要负责电源转换、音频调理、电池电压采样,以及 PCB 布局、焊接和硬件调试。本文沿着一段声音从输入到输出的路径,记录各个模块如何组成一台能够独立工作的通信终端。

01 项目背景

1.1 项目简介

这是我本科阶段完成的一项无线通信硬件项目——基于 LoRa 的低功耗双向点对点通信装置。

项目希望设计一套区别于手机、对讲机等传统通信终端的便携式语音通信设备。整套系统以 STM32G031F8P6 作为主控制器,以 AP280-78TR4 LoRa 无线音频对讲模块作为无线通信核心,通过两套相同终端建立点对点无线链路,并采用 PTT(Push-To-Talk) 的方式实现双向半双工语音通信。

除了最基本的无线语音传输外,设备还集成了锂电池供电与充电、电池电量检测、低电量声光提醒、频道选择以及麦克风 / 耳机输入、扬声器 / 耳机输出等功能,使其最终形成了一套能够独立工作的完整便携式通信终端。


1.2 为什么要做这个项目?

项目最初关注的是:相比依赖基站、Wi-Fi 或互联网的通信方式,LoRa 具有通信距离较远、功耗较低、无需依赖公共网络基础设施等特点,因此我们希望尝试将 LoRa 从常见的传感器数据传输场景进一步应用到便携式点对点语音通信中。在部分弱公网、无公网,或者不希望依赖公共通信基础设施的场景中,人员之间仍然需要一种简单、直接且能够独立运行的语音通信方式。

例如在工业厂区、仓储区域、户外作业、临时施工以及部分应急场景中,通信设备并不一定需要复杂的应用功能,更重要的是能够在一定距离内快速建立点对点语音链路,同时兼顾便携性、较低功耗以及较简单的操作方式。

基于这一思路,本项目尝试将 LoRa 的远距离、低功耗无线通信能力与音频传输结合,设计一套由两台独立终端组成的双向半双工语音通信装置。设备之间无需依赖 Wi-Fi、蜂窝网络或中心服务器,通过本地无线链路即可直接进行通信。

从工程实践的角度来看,这个项目的重点并不在于创造一种新的消费级通信产品,无线对讲本身并不是一个新的需求,传统对讲机已经能够成熟地完成一定距离内的双向半双工语音通信。因此,这个项目的目标并不是重新发明一种“替代对讲机”的产品,而是尝试采用 LoRa 无线音频方案,从硬件层面完整实现一套能够独立工作的便携式数字对讲终端。 将无线通信、STM32 控制、音频输入输出、电源管理、锂电池供电等多个模块整合到同一套硬件系统中,并最终完成从电路设计到实物调试和通信测试的完整开发流程。

这个项目对我而言更重要的意义并不仅仅是“使用 LoRa 完成一次无线通信”,而是尝试把:

  • 无线通信;
  • STM32 嵌入式控制;
  • 模拟音频电路;
  • DC-DC 电源设计;
  • 锂电池管理;
  • PCB 设计;
  • 硬件焊接与调试;

这些原本相对独立的知识组合成一个能够真正运行的完整硬件系统。


1.3 设计思路

这个项目从一开始就围绕三个核心方向展开:

双向通信、低功耗以及便携化。

在通信方式上,两台设备之间直接建立点对点无线链路,不依赖网关或公网;用户通过 PTT 按键控制设备进入发送或接收状态,实现类似传统对讲机的双向半双工语音通信。

在供电方面,整机采用锂电池供电,并设计独立的充电、电压转换、电量采样以及低电量提醒电路,希望使设备具备独立运行的能力。

在硬件形态上,则尽可能将主控、无线模块、音频输入输出以及电源管理等功能集成到同一块 PCB 上,为后续进一步小型化和便携化留下基础。


1.4 我在项目中的工作

在这个项目中,我主要负责硬件部分的设计、制作与调试。

我的工作主要包括:

  • DC-DC 电源转换电路设计;
  • 音频输入调理与相关滤波电路设计;
  • 锂电池电压采样电路设计;
  • 原理图设计与硬件模块整合;
  • PCB 器件布局与信号路径优化;
  • PCB 焊接及整机硬件调试;
  • 配合完成系统级联调与通信测试。

这一项目也是我第一次比较完整地经历从“需求分析 → 电路设计 → PCB Layout → 打样焊接 → 模块调试 → 整机联调 → 实际测试”的完整硬件开发流程。

02 项目要实现什么

这套系统最终要实现让两个 LoRa 模块能够互相收到数据,并且完成两台能够独立供电、独立操作,并真正进行语音通信的硬件终端

2.1 双向点对点语音通信

系统需要实现两台终端之间的直接语音通信。

通过频道编码器,让两台设备处于相同频道,用户按下 PTT 按键,一台设备进入发送状态,将本地语音通过 LoRa 无线链路发送出去;另一台设备负责接收并播放语音。因此,本装置实现的是一种双向半双工点对点语音通信。


2.2 完整的音频输入与输出

为了适应不同使用场景,系统需要支持多种音频输入和输出方式:

  • 麦克风输入;
  • 耳机输入;
  • 扬声器输出;
  • 耳机输出。

2.3 频道选择与状态提示

为了减少多组设备之间的相互干扰,系统需要支持频道切换。

本项目通过旋转编码器实现频道选择,并利用 LED 和蜂鸣器显示设备当前的工作状态,例如:

  • 当前通信频道;

  • PTT 发送状态;

  • 低电量提醒;

  • 音量和模式切换。


2.4 锂电池独立供电

整机采用锂电池供电,因此需要设计完整的电源管理电路,包括:

  • 锂电池充电;
  • 5V 升压;
  • 3.3V 降压;
  • 电池电压采样;
  • 低电量报警。

2.5 整合为完整 PCB

最终需要将主控、LoRa 通信、音频输入输出、电源管理、频道选择和状态提示等模块整合到同一块 PCB 上。

因此,这个项目最终要完成的是一套:

能够独立供电、完成语音采集与播放、支持频道切换,并能够进行双向无线语音通信的完整硬件终端。

03 整个系统的工作流程

image-20260906181050446

3.1 先区分语音链路与控制链路

理解这套系统,首先要区分两个核心器件的职责:AP280-78TR4 承担语音处理与无线传输,STM32 负责设备控制与状态管理。

语音采集 → 音频处理 → LoRa 无线传输 → 音频恢复 → 扬声器 / 耳机播放

3.2 发送过程

用户按下 PTT 后,终端进入发送状态。麦克风或耳麦采集的语音经输入电路调理后进入无线音频模块,再由模块处理并通过无线链路发送。

3.3 接收过程

另一台终端处于相同频道并保持接收状态,可以接收到发射端的无线语音信号,接收到匹配的无线语音信号后,再根据用户选择送至扬声器或耳机。其中扬声器通道还需要经过音频功率放大电路后再驱动扬声器。

3.4 STM32 如何管理设备

STM32 主要负责整机的控制与状态管理,包括:

  • 读取旋转编码器并设置通信频道;
  • 通过 UART 配置 LoRa 音频模块;
  • 检测 PTT 工作状态;
  • 采集锂电池电压;
  • 控制 RGB LED 和蜂鸣器;
  • 完成低电量提醒等功能。

04 硬件总体设计:从原理图到 PCB

整个硬件系统主要由 STM32 主控、LoRa 音频通信、音频输入输出、电源管理、电池检测、频道选择以及声光提示 等部分组成。

image-20260906183630387

4.1 主控与无线音频模块

STM32G031F8P6 与 AP280-78TR4 构成控制和通信的两个核心。这样的分工让外围设计可以围绕参数配置、音频接口、供电和交互展开。

image-20260906183104664 image-20260906183039690

无线通信部分采用 AP280-78TR4 LoRa 无线音频对讲模块。 该模块负责整个语音无线链路,主要接口包括:

  • MIC_IN:音频输入;
  • LINE_OUT:音频输出;
  • PTT:控制发送 / 接收状态;
  • UART:与 STM32 通信并配置模块参数;
  • ANT:连接 433 MHz 天线。

4.2 音频输入与调理

音频输入部分同时支持板载麦克风和外接耳机输入。 麦克风输入电路通过耦合电容隔离直流分量,并通过电阻网络为麦克风提供合适的偏置,使语音信号能够稳定送入 LoRa 音频模块。

image-20260906195954324

4.3 音频输出与功率驱动

接收模块输出的音频需要根据使用方式送到扬声器或耳机。扬声器通道关注输出驱动能力、负载和供电,耳机通道关注接口连接和适当的输出电平。因此,在扬声器通道中,还需要加入音频功率放大电路,提高输出驱动能力。

image-20260906200138851

4.4 锂电池充电与电压转换

电源系统需要同时完成电池充电和各功能模块的供电,设计中包含 5 V 升压与 3.3 V 电源转换。

整体供电关系为:

image-20260906200706120 image-20260906200713862

4.5 电池电压采样与低电量提醒

电池采样电路将电池电压转换到主控可测量的范围,由程序根据采样结果触发低电量提醒。

image-20260906200801427

计算关系为:

1
2
Vadc = Vbat × R下 / (R上 + R下)
Vbat = Vadc × (R上 + R下) / R下

4.6 PCB

image-20260906203815380 image-20260906203834199

05 调试思路与工程复盘

相比原理图设计,真正让人对硬件开发加深理解的是后面的焊接与整机联调过程。

硬件联调需要把一个整机现象拆回到具体模块。本节先记录排查思路;缺少原始波形和修改记录的故障,不写成已经发生并解决的案例。

5.1 调试思路

有底噪或失真时,首先区分异常发生在哪一段:本地输入是否正常、模块接收输出是否正常、经过功放后是否出现变化。随后比较接收与发送、不同音量和不同供电条件下的现象。

怎样留下有用的调试记录?——一条记录至少应包括:故障现象、出现条件、测量位置、修改内容,以及相同条件下的复测结果。每轮只改变少量变量,才容易判断改善来自哪里。

5.2 两台终端无法正常建立语音通信

两台设备进行通信的前提是处于相同的通信频道。

调试时首先需要分别检查两台终端的频道设置,并通过 RGB LED 的颜色和闪烁频率确认本机当前频道。

当双方频道一致后,再通过 PTT 按键分别测试发送和接收状态,逐步判断问题出现在:

  • 频道配置;
  • PTT 控制;
  • 音频输入;
  • LoRa 无线链路;
  • 音频输出。

这一过程让我意识到,系统级调试不能直接判断“整个设备坏了”,而应该沿着完整信号链逐级定位问题。

5.3 电池供电与低电量状态调试

整机采用锂电池供电,因此除了验证电路能够正常上电之外,还需要测试充电、电压转换以及电池采样功能。

调试时主要检查:

  • TP4056 是否能够正常完成锂电池充电;
  • 5V 和 3.3V 电源是否正常;
  • STM32 ADC 是否能够正确采集电池电压;
  • 电量过低时 RGB LED 和蜂鸣器是否能够正常报警。

最终测试中,设备能够正常完成充电,并在低电量状态下进行声光提醒。

5.4 无线距离增加后的语音质量

短距离能够正常通信并不意味着无线链路已经完全可靠,因此还需要进一步进行远距离测试。测试过程中,两台终端逐渐拉开距离,并在不同位置进行语音发送与接收。

最终最远测试距离约为 920 m。同时使用 STOI 指标对接收到的语音进行可懂度评价,在测试距离范围内,语音可懂度整体保持在较好的水平。

06 测试与验证

完成整机调试后,对电源、声光提示以及 LoRa 语音通信功能进行了实际测试,用来验证系统是否达到预期设计目标。

image-20260906203527785

6.1 电源与低电量提醒测试

首先对锂电池充电和低电量提醒功能进行测试。

将设备工作至触发低电量报警后,通过 Micro-USB 接口进行充电。多次测试结果表明,电池从低电量状态充至满电平均需要约 4 小时 16 分钟。

image-20260906202824875

当电池电量过低时,系统能够通过红色 LED 闪烁和蜂鸣器报警提醒用户,说明电池检测和声光提示功能能够正常工作。


6.2 通信距离与语音质量测试

为了进一步验证无线链路的实际性能,将两台设备逐渐拉开距离,并在不同位置进行语音传输测试。

测试距离如下:

image-20260906202731531

在最远约 920 m 的测试距离下,两台终端仍能够完成语音通信。

同时使用 STOI(Short-Time Objective Intelligibility) 对接收语音的可懂度进行评价。测试过程中各距离下的平均 STOI 基本保持在 0.80 左右,说明在本次测试范围内,通信距离增加后语音可懂度没有出现明显下降。

image-20260906203036517

通过实际测试,系统最终完成了从锂电池供电、状态检测,到 LoRa 无线语音发送与接收的完整功能验证。

07 当前成果与展示范围

image-20260906203925813

本项目围绕两台独立供电的终端,整合了语音收发、频道选择、音频输入输出、电源转换和电池状态管理。我承担了相关硬件设计、PCB 制作与调试,并参与系统联调。

当前文章展示的是系统工作流程、功能分工和硬件设计思路。并且将整板照片、关键电路和测量结果对应起来,让读者能沿着同一条信号路径,从功能说明看到具体实现。

08 我在项目中完成了什么

我的主要贡献集中在硬件电路的设计、制作与调试:完成或参与 DC-DC、音频调理、电池电压采样等电路设计,使用 Altium Designer 整合原理图和 PCB,优化器件布局与信号路径,并完成焊接、硬件排查及系统联调配合。

项目最终形态 从最初的功能需求,到原理图设计、PCB 制作,再到最后的通信测试,这个项目最终从一张电路图变成了一套真正能够工作的硬件系统。 对我而言,这个项目最大的成果并不只是“完成了一块 PCB”,而是第一次完整经历了:

需求分析 → 电路设计 → PCB Layout → 打样焊接 → 模块调试 → 整机联调 → 实际通信测试 这一完整的硬件开发流程。