一、这篇文章要解决什么问题

上一篇文章我们讨论了 Meshtastic、MeshCore、Reticulum 三种自组网方案的技术选型。本文是实践篇:用最少的钱,从零搭建一套可以实际通信的 LoRa Mesh 网络。

目标受众:

  • 没有任何无线电经验的纯软件开发者
  • 想体验自组网但不想一次性投入太多
  • 希望有一个"先跑起来再说"的最小可行方案

核心原则:先买最便宜的设备跑通链路,验证可行后再升级。

二、频谱合规第一:中国 LoRa 频段说明

在买设备之前,必须搞清楚一件事——不同国家允许的 LoRa 频段不同

地区 频段 最大发射功率
中国 CN470-510 (470-510 MHz) 50 mW (17 dBm)
美国 US915 (902-928 MHz) 1 W (30 dBm)
欧洲 EU868 (863-870 MHz) 25 mW (14 dBm)
日本 AS923 (920-928 MHz) 20 mW

在拼多多购买时,务必选择 CN470 或 433MHz 版本的模组。 如果用 868/915MHz 版本的设备,不仅违法,而且天线不匹配会导致通信距离严重缩水。(很多拼多多卖家同时卖多个版本,下单前确认频率。)

如果你问卖家"这是 470 还是 915 的",对方大概率听不懂。实用做法:看商品标题是否包含"470M"或"433M",或者买回来之后自己刷固件时选对应频段配置。

三、硬件采购方案:三个预算档位

3.1 入门尝鲜档(2 个节点,总预算 ~100 元)

这是能实现"两个人在几公里内互发消息"的最便宜方案。

配件 型号/规格 数量 单价(≈元) 小计
LoRa 开发板 Heltec WiFi LoRa 32 V3 (SX1262, 470MHz) 2 35 70
天线 SMA 公头, 470MHz 胶棒天线 2 5 10
Micro USB 线 普通安卓数据线 2 3 6
充电宝 任意 5V/1A 输出 2 已有 0
合计 ~86 元

拼多多搜索关键词:Heltec LoRa 470ESP32 LoRa SX1262

Heltec V3 的样子是一个约 5cm×2.5cm 的绿色小板,带一个 OLED 显示屏(0.96 寸),板载 ESP32-S3 芯片 + SX1262 LoRa 芯片,自带 Wi-Fi 和蓝牙。

插上充电宝就亮屏,刷好固件就能互相发消息——这是目前性价比最高的入门方案。

3.2 进阶实用档(2 个节点,总预算 ~280 元)

在入门版基础上增加 GPS 定位和更好的外壳/电池方案:

配件 型号/规格 数量 单价(≈元) 小计
LoRa 开发板(带 GPS) LILYGO T-Beam (SX1262 + GPS, 470MHz) 2 120 240
18650 锂电池 平头 3000mAh 2 12 24
天线 SMA 公头, 470MHz 2 8 16
合计 ~280 元

拼多多搜索关键词:LILYGO T-Beam 470T-Beam GPS LoRa

T-Beam 自带 18650 电池座、GPS 模块和外壳——基本上就是一个完整的"对讲机"形态。GPS 的加入意味着你可以在 Meshtastic App 的地图上实时看到对方的位置(徒步、骑行、车队场景极为实用)。

3.3 Reticulum 实验档(1 个中继节点,总预算 ~250 元)

如果你看了上一篇文章,想直接尝试 Reticulum 生态:

配件 型号/规格 数量 单价(≈元) 小计
LoRa 开发板 Heltec WiFi LoRa 32 V3 (SX1262, 470MHz) 1 35 35
Linux 开发板 Orange Pi Zero 2W (1GB) 或 香橙派 Zero3 1 130 130
TF 卡 32GB Class 10 1 18 18
天线 SMA 公头, 470MHz 1 8 8
USB 供电线材 Type-C 数据线 2 5 10
充电宝 双 USB 输出 (同时给 Pi + LoRa 供电) 1 40 40
合计 ~241 元

Reticulum 目前不支持 Heltec V3 独立运行——需要将 Heltec 刷成 RNode 固件(纯 LoRa Modem 模式),然后通过 USB 连接到 Orange Pi,由 Pi 上的 Reticulum 软件栈处理路由和应用。

这个方案适合想深入学习 Mesh 网络协议栈的读者。如果你只是想"发消息",选 3.1 或 3.2 就够了。

3.4 拼多多采购避坑清单

  1. 不要买"不明来源的 STM32+LoRa"模块:这些通常没有现成的 Meshtastic/Reticulum 固件支持,你需要自己写驱动
  2. 确认芯片型号是 SX1262 或 SX1276/SX1278:SX1262 是新一代(功耗更低),SX1276 是经典款。不要买 SX1280(那是 2.4GHz 的,距离极短)
  3. 天线接口看清楚:大多数开发板是 SMA 母座,天线需要买 SMA 公头。少数是 IPEX 接口(需要转接线)
  4. 433MHz vs 470MHz:中国 LoRa 频段是 470-510MHz,买 470MHz 的天线和模组。433MHz 虽然也在免许可范围内,但不是 LoRa 最优频段
  5. 不要买带 PA(功率放大器)的版本:在未取得无线电执照的情况下,超过法定功率发射是违法的

四、环境准备:软件和工具

在收到硬件之前,先把电脑端的工具准备好:

1
2
3
4
5
6
7
8
9
10
11
12
你的电脑需要安装:

1. Chrome 或 Edge 浏览器(用于 Meshtastic Web Flasher)
不需要装任何软件,直接打开网页即可刷固件

2. 一根能传数据的 Micro USB / Type-C 数据线
注意:很多"充电线"只能供电不能传数据,会导致刷机失败

3. 手机安装 Meshtastic App
Android: Google Play 或 F-Droid 搜索 "Meshtastic"
iOS: App Store 搜索 "Meshtastic"
或者直接用电脑蓝牙连接

五、Step-by-Step:让两个节点互相通信

5.1 刷入 Meshtastic 固件(以 Heltec V3 为例)

这是整个流程中最关键的一步,但 Meshtastic 团队已经做到了极致简化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Step 1: 用 USB 数据线将 Heltec V3 连接到电脑
→ 屏幕会亮起,显示出厂测试程序或空白

Step 2: 打开 Chrome 浏览器,访问:
https://flasher.meshtastic.org/

Step 3: 在页面中选择:
设备: "Heltec WiFi LoRa 32 (V3)"
固件版本: 选最新的 Stable(稳定版)
点击 "Flash"

Step 4: 浏览器会弹出一个串口选择框
→ 选择新出现的串口设备(通常是 COM3 或更高)
→ 点击"连接"

Step 5: 等待 1~2 分钟,固件刷入完成
→ 屏幕显示 "Meshtastic" logo 和节点名称
→ 初始节点名是随机的(如 "Meshtastic a3f8")

Step 6: 重复以上步骤,为第二个 Heltec V3 刷入固件

5.2 配置信道和频段

两个节点要在同一频段和信道才能通信:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Step 1: 手机蓝牙连接第一个节点
→ 打开 Meshtastic App
→ 右上角 Bluetooth 图标
→ 扫描到 "Meshtastic xxxx" → 连接

Step 2: 进入 Settings → LoRa
→ Region: 选择 "CN"(中国,470-510MHz)
→ Modem preset: 选 "LONG_FAST"(长距离/快速模式)
→ 保存

Step 3: 进入 Settings → Channel
→ PSK(预共享密钥): 保持默认的 "AQ=="(即无加密,公开频道)
→ 或自定义一串 Base64 编码的密钥(私密频道)
→ Channel Name: 起个名字,如 "MyMesh"
→ 保存

Step 4: 对第二个节点重复上述配置
→ 确保 Region 和 PSK 完全一致

5.3 验证通信:发送第一条 Mesh 消息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1. 把两个 Heltec V3 插上充电宝,拉开至少 50 米距离(避免射频饱和)

2. 在手机 App 中:
→ 切换到 "Messages" 标签
→ 点右上角 "New Message"
→ 选择第二个节点(会出现在列表中)
→ 输入 "Hello Mesh!" → 发送

3. 观察屏幕:
→ 发送节点屏幕短暂显示 "Sending..."
→ 接收节点屏幕显示收到的消息
→ App 中显示 "Delivered"(已送达)

4. 如果还有第三个朋友:
→ 你可以作为一个中继节点(Router 模式)
→ A → 你 → C,三跳覆盖更远距离

恭喜——你现在拥有了一张不依赖运营商、不依赖互联网、完全由你自己的设备组成的通信网络

六、进阶玩法路线图

当基础通信跑通之后,你可以按以下路线逐步深入:

6.1 增加节点 → 扩展覆盖

1
2
3
第 1 阶段(2 节点):  点对点通信           — 覆盖 ~2-5 km
第 2 阶段(3-5 节点): 链式 + 树形拓扑 — 覆盖 ~10-15 km
第 3 阶段(10+ 节点): 真实 Mesh 冗余拓扑 — 覆盖一个城区

每增加一个节点(35 元 Heltec V3 + 充电宝),覆盖范围就向外扩展一跳。

6.2 部署固定中继节点

在高层建筑窗边或楼顶放置一个长期供电的节点,充当社区 Mesh 骨干:

1
2
3
4
5
6
7
8
9
10
11
12
13
材料清单(太阳能中继节点):
- Heltec V3: 35 元
- 5V 1W 太阳能板(USB 输出): 20 元
- 10000mAh 充电宝(支持边充边放): 35 元
- 防水盒(塑料密封盒): 8 元
- 470MHz 高增益天线(8dBi): 25 元
总成本: ~123 元

部署要点:
- 窗户玻璃对 LoRa 信号衰减很小(Sub-GHz 穿透力好)
- 天线尽量垂直放置(LoRa 使用垂直极化)
- 充电宝必须支持"边充边放"(pass-through charging)
- 夏天暴晒注意散热(充电宝高温保护会导致节点离线)

6.3 切换到 Reticulum

当你拥有 5+ 个 Meshtastic 节点、理解了 LoRa 的物理层特性之后,可以考虑迁移到 Reticulum:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Step 1: 用一个 Heltec V3 刷 RNode 固件
https://github.com/markqvist/RNode_Firmware

Step 2: 在 Orange Pi 上安装 Reticulum
pip install rns

Step 3: 配置 RNode 接口
rnodeconf --auto

Step 4: 安装 NomadNet 或 Sideband 客户端
pip install nomadnet

Step 5: 你会看到一个"公告板"界面
→ 所有在同一个 Reticulum 网络中的节点
→ 自动发现、自动路由、自动形成 Mesh

Meshtastic → Reticulum 的迁移不是"抛弃旧设备"。你可以保留 Meshtastic 节点给只想发消息的朋友用,同时让 Reticulum 节点通过互联网隧道接入更大的网络——两者物理上共享同一批 LoRa 硬件。

七、常见问题速查

问题 可能原因 解决方法
两个节点距离 5 米却收不到消息 射频信号饱和(太近) 拉远到 50 米以上,或降低发射功率
OLED 屏幕不亮 固件未启用屏幕 Settings → Display → 开启 OLED
手机蓝牙搜不到节点 节点蓝牙未开启 重启节点,确认固件版本 ≥ 2.0
消息一直 "Acknowledgment pending" 对方节点离线/信道不同 检查 Region 和 Channel PSK 是否一致
USB 连接后电脑不识别 数据线只能充电 换一根能传数据的 USB 线
通信距离只有 200 米 天线频率不匹配或环境遮挡 确认天线标称频率为 470MHz,尝试抬升高度
频繁断连 供电不稳定 换一个输出稳定的充电宝(不要用"省电模式"的)

八、写在最后:自组网不是玩具

在用不到 100 元的成本搭建第一个节点之后,你可能会产生一种难以描述的微妙感觉——

你手里的这个小绿板,不需要 SIM 卡,不需要 Wi-Fi 密码,不需要任何第三方服务,就能把一段文字送到几公里外的另一个人手上。如果中间还有人愿意放一个充电宝供电的中继,距离就能再翻一倍。

这不是对讲机。 对讲机是广播式的、无路由的、无寻址的。LoRa Mesh 是有地址、有路由、有加密、可多跳的去中心化数据网络——只是带宽很低。

它目前不能替代微信,不能替代互联网。但它能做到互联网做不到的事:

  • 在地震后基站全毁的情况下传递救援信息
  • 在大型活动中不依赖蜂窝网络的团队协调
  • 在没有 ISP 覆盖的野外进行位置共享
  • 提供一种物理层面上的通信自主权

100 块钱和一下午的时间,换来的是对"网络"二字底层含义的重新理解——我认为值得。


下一篇预告:当你的社区 Mesh 节点超过 20 个时,会遇到哪些工程问题?信道拥塞、路由震荡、QoS 策略、混合介质桥接——我将基于 Reticulum 的架构逐一拆解。