Meshtastic 完全指南:离网 Mesh 通信

如果断网了怎么办?很多人面对突发的网络中断、野外活动或灾害现场时,往往只能靠信号塔或卫星电话,成本高且覆盖范围有限。Meshtastic 通过低成本的 LoRa 模块,让设备在没有互联网和手机信号的情况下也能互相通信,真正实现“离网即通”。只要几块硬件、一次刷机,就能搭建起覆盖数公里甚至更远的 Mesh 网格网络,随时随地保持联系。

什么是 Meshtastic

Meshtastic 是一个开源离网网格通信平台,利用 LoRa(Long Range)射频模块实现远距离、无需互联网、无需手机信号的文本消息传输。设备之间自动组成 Mesh 网络,消息会通过附近的节点自动中继转发,从而大幅扩展通信距离。

核心特性
· 无需基站、Wi‑Fi 或蜂窝网络
· LoRa 通信距离:开阔地 2–15 公里,城市环境 1–5 公里
· 多节点自动中继(hop),理论最多支持 7 跳
· 支持文本消息、GPS 位置共享、遥测数据(温度/湿度/气压)、GPIO 控制
· 兼容手机 App(Android / iOS)、Web 客户端、CLI
· 完全开源(GPL 3.0)

固件烧录

方法一:Web 刷机器(推荐新手)

这是最简单的方式,无需安装任何软件。

  1. 访问官方 Web Flasher:
    https://flasher.meshtastic.org
  2. 使用 Chrome 或 Edge 浏览器(需要 Web Serial API 支持)。
  3. 用 USB 线连接开发板到电脑。
  4. 在页面上:
    · 选择硬件型号
    · 选择固件版本(推荐最新的 Stable 版)
    · 点击 “Flash”
    · 按提示选择对应的串口设备
    · 等待烧录完成
  5. 烧录完成后设备会自动重启。

方法二:命令行刷机(meshtastic‑python)

1
2
3
4
5
6
7
8
9
# 安装 Python(需 3.9+)并安装 meshtastic CLI
pip install meshtastic

# 查看已连接设备
meshtastic --info

# 刷入固件(需下载 .bin 文件)
pip install esptool
esptool --port /dev/ttyUSB0 write_flash 0x0 firmware.bin

方法三:ESP Web Tool 手动刷入

  1. 从 GitHub Releases 下载固件 .bin 文件:
    https://github.com/meshtastic/firmware/releases
  2. 访问 https://esp.huhn.me/https://espressif.github.io/esptool-js/
  3. 手动选择 .bin 文件和烧录地址。

初次配置

手机 App 连接

Android:在 Google Play 搜索 “Meshtastic” 或从 GitHub 下载 APK(https://github.com/meshtastic/Meshtastic-Android/releases)。
iOS:在 App Store 搜索 “Meshtastic”。

连接步骤
· 打开手机蓝牙
· 打开 Meshtastic App
· 点击右上角 “+” 或 “Add Device”
· 选择蓝牙发现的设备
· 配对连接(默认 PIN 通常是 123456)

基本设置

通过 App 或 CLI 完成以下核心配置:

频率/区域设置

1
2
3
4
5
6
# 中国大陆用户注意:
# 中国 ISM 频段主要为 470‑510 MHz 或部分 920‑925 MHz
# 需要确认当地无线电管理规定

# 通过 CLI 设置区域
meshtastic --set lora.region CN   # 或 AS(Asia)

常见区域代码

区域频率说明
US902–928 MHz美国
EU_868868–870 MHz欧洲
CN470–510 MHz中国(需注意合规)
ANZ915–928 MHz澳新
AS (Asia)923 MHz亚洲

频道设置(加密通信)

1
2
# 设置频道名称和 PSK(预共享密钥)
meshtastic --ch-set name "MyMesh" --ch-set psk "your-secret-key" --ch-index 0

设备名称

1
2
meshtastic --set device.device_id "my-node-01"
meshtastic --set owner "你的呼号或名称"

角色设置

1
2
3
4
5
6
# 设备角色
meshtastic --set device.role CLIENT          # 普通客户端(默认)
meshtastic --set device.role CLIENT_MUTE     # 客户端但不中继
meshtastic --set device.role ROUTER          # 中继节点(适合固定部署)
meshtastic --set device.role ROUTER_CLIENT   # 兼具中继与收发
meshtastic --set device.role REPEATER        # 纯中继,省电

Web 界面配置

设备连接 Wi‑Fi 后,可通过浏览器访问其 IP 地址进行配置:

1
2
3
4
5
6
7
8
# 设置 Wi‑Fi
meshtastic --set wifi.ssid "YourWiFi" --set wifi.password "YourPassword"

# 设置 MQTT(可选,用于将消息转发到互联网)
meshtastic --set mqtt.enabled true
meshtastic --set mqtt.address "mqtt.meshtastic.org"
meshtastic --set mqtt.username "meshdev"
meshtastic --set mqtt.password "large4cats"

连上 Wi‑Fi 后,打开浏览器访问设备 IP,即可使用 Web 客户端。

消息通信

直接消息

· 通过 App 选择特定节点发送私密消息,消息使用 AES‑128/256 加密。

广播消息

· 默认频道(Channel 0)发送的广播消息会被所有同频道节点接收。

多跳中继

· 消息会自动通过 Mesh 网络中的中继节点逐跳转发,默认最大 3 跳(可配置至 7 跳)。

位置共享

· 若设备配备 GPS,会自动在 Mesh 中广播位置,App 中可查看所有节点的地图位置。

遥测数据

· 连接传感器(如 BME280)后,可自动上报温湿度气压等环境数据。

进阶玩法

MQTT 网桥(连接互联网)

1
2
3
meshtastic --set mqtt.enabled true
meshtastic --set mqtt.address "mqtt.meshtastic.org"
meshtastic --set mqtt.json_enabled true

本地 Mesh 消息即可转发到全球 MQTT 总线,也能接收其他地区节点的消息。

自建 MQTT 服务器

1
2
3
4
5
docker run -it -p 1883:1883 -p 9001:9001 \
  -v /mosquitto/config:/mosquitto/config \
  -v /mosquitto/data:/mosquitto/data \
  -v /mosquitto/log:/mosquitto/log \
  eclipse-mosquitto

太阳能固定中继站

· 使用 RAK4631 或 Heltec V3,角色设为 ROUTERREPEATER
· 连接太阳能板(5 V/6 V)+ 充电模块 + 18650 电池,放置在高处(楼顶、山头)覆盖更广区域。
· 采用 3D 打印防水外壳。

串口 API / 自动化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import meshtastic
import meshtastic.serial_interface

iface = meshtastic.serial_interface.SerialInterface("/dev/ttyUSB0")
iface.sendText("Hello Mesh!")

def onReceive(packet, interface):
    print(f"Received: {packet}")

iface.onReceive = onReceive

Range Test(距离测试)

· 固件内置范围测试模块,可记录通信距离和信号质量,用于评估天线与部署位置的效果。

Store & Forward(存储转发)

· 配置特定节点作为消息缓存节点,为新加入网络的设备补发错过的消息。

天线选择与优化

天线类型增益适用场景
弹簧天线~2 dBi随身携带,短距离
橡胶天线~3 dBi便携,入门使用
全向棒状天线~5–8 dBi固定中继站
八木天线(定向)~10–15 dBi点对点远距离

注意事项
· 天线频率必须与 LoRa 模块频率匹配。
· SMA 与 IPEX 接口要对应。
· 天线放置位置应开阔,避免金属遮挡。

安全与合规

加密

· 默认使用 AES‑256 加密。
· 可自定义 PSK,建议设置强密码。
· Primary Channel 的 PSK 为公开默认值,请务必修改。

无线电合规(中国大陆特别注意)

· 在中国使用 LoRa 设备需遵守《中华人民共和国无线电管理条例》。
· 470–510 MHz 频段使用需符合工信部规定,部分频段可能需要无线电台执照。
· 发射功率通常限制在 50 mW(17 dBm)以下。

常用命令速查

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 查看设备信息
meshtastic --info

# 设置设备名称
meshtastic --set owner "MyNode"

# 设置角色
meshtastic --set device.role ROUTER

# 设置区域
meshtastic --set lora.region CN

# 设置发射功率(dBm)
meshtastic --set lora.tx_power 20

# 发送消息
meshtastic --sendtext "Hello World"

# 发送给特定节点
meshtastic --dest '!abcdef12' --sendtext "Private msg"

# 查看节点列表
meshtastic --nodes

# 重置设备
meshtastic --set factory_reset true

# 导出配置
meshtastic --export-config > config.yaml

# 导入配置
meshtastic --configure config.yaml

# 设置 Wi‑Fi
meshtastic --set wifi.ssid "MyWiFi" --set wifi.password "pass123"

# 开启/关闭 GPS
meshtastic --set position.gps_enabled true

社区资源与参考网址

官方资源

资源网址
官方网站https://meshtastic.org
官方文档/百科https://meshtastic.org/docs
GitHub(固件)https://github.com/meshtastic/firmware
GitHub(Android App)https://github.com/meshtastic/Meshtastic-Android
GitHub(iOS App)https://github.com/meshtastic/Meshtastic-Apple
GitHub(Web 客户端)https://github.com/meshtastic/web
GitHub(Python CLI)https://github.com/meshtastic/meshtastic-python
Web Flasher(刷机器)https://flasher.meshtastic.org
Meshtastic MQTT 地图https://meshtastic.liamcottle.net
官方 MQTT 服务器mqtt.meshtastic.org

社区

中文社区与购买

资源网址
淘宝/天猫搜索 “Heltec V3”、 “T‑Beam Meshtastic”
LILYGO 官方商店https://www.lilygo.cc
Heltec 官方商店https://heltec.org
RAK Wirelesshttps://www.rakwireless.com
Bilibili 教程搜索 “Meshtastic” 有大量中文视频教程

进阶学习

快速入门清单(TL;DR)

1
2
3
4
5
6
7
8
1. 购买硬件:至少 2 块 Heltec V3 或 T‑Beam(约 ¥60–180/块)  
2. 准备 USB‑C 数据线 + 电脑(Chrome 浏览器)  
3. 访问 https://flasher.meshtastic.org 烧录固件  
4. 手机安装 Meshtastic App(Android / iOS)  
5. 蓝牙连接设备  
6. 设置区域、频道、设备名称  
7. 两台设备互相看到 → 成功组网  
8. 发送第一条 Mesh 消息
原文链接: https://www.17you.com/tool/meshtastic-guide-lora-mesh-communication/ 已复制!
脚本编程和自动化工具

寻找技术支持帮助和技术合伙人一起搞事。

请点击联系我


相关内容