
MeshCore room-server-v1.17.0
一种新的轻量级混合路由网状协议,适用于分组无线电台
关于 MeshCore
MeshCore 是一个轻量级、可移植的 C++ 库,支持使用 LoRa 和其他数据包无线电的嵌入式项目实现多跳数据包路由。专为希望创建无需互联网即可运行、具有弹性的去中心化通信网络的开发者而设计。
🔍 什么是 MeshCore?
MeshCore 现在支持多种 LoRa 设备,无需手动编译固件即可轻松刷写。用户可以使用 Adafruit ESPTool 等工具刷写预构建的二进制文件,并通过串口控制台与网络进行交互。
MeshCore 能够创建无线 Mesh 网络,与 Meshtastic 和 Reticulum 类似,但专注于轻量级的多跳数据包路由,适用于嵌入式项目。与 Meshtastic(适合日常 LoRa 通信)或 Reticulum(提供高级网络功能)不同,MeshCore 在简单性和可扩展性之间取得平衡,非常适合定制嵌入式解决方案,设备(节点)可以通过中间节点中继消息实现长距离通信。这在传统通信基础设施不可用的离网、应急或战术场景中特别有用。
⚡ 主要特性
- 多跳数据包路由
- 设备可以跨多个节点转发消息,从而将范围扩展到单个无线电的覆盖之外。
- 支持可配置的最大跳数,以平衡网络效率并防止流量过度。
- 节点使用固定角色,其中“Companion”节点不会中继任何消息,以防止使用不利的路由路径。
- 支持 LoRa 无线电 – 兼容 Heltec、RAK Wireless 及其他 LoRa 硬件。
- 去中心化与弹性 – 无需中央服务器或互联网;网络具有自愈能力。
- 低功耗 – 非常适合电池供电或太阳能供电的设备。
- 部署简单 – 预构建的示例应用让您轻松上手。
🎯 MeshCore 可用于哪些场景?
- 离网通信:即使在偏远地区也能保持连接。
- 应急响应与灾难恢复:在基础设施瘫痪时快速建立网络。
- 户外活动:徒步、露营、探险竞赛中的通信。
- 战术与安全应用:军事、执法及私人安全用例。
- 物联网与传感器网络:从远程传感器收集数据并中继回中央位置。
🚀 如何开始
- 观看 The Comms Channel 的 MeshCore 快速入门播放列表
- 观看 Liam Cottle 的 MeshCore 技术演示
- 阅读我们的常见问题和文档。
- 在支持的设备上刷写 MeshCore 固件。
- 使用支持的客户端进行连接。
对于开发者:
- 在 Visual Studio Code 中安装 PlatformIO。
- 克隆并在 Visual Studio Code 中打开 MeshCore 仓库。
- 查看您可以修改并运行的示例应用:
- Companion Radio – 通过 BLE、USB 或 Wi-Fi 与外部聊天应用配合使用。
- KISS Modem – 用于主机应用的串行 KISS 协议桥接。(协议文档)
- Simple Repeater – 通过中继消息扩展网络覆盖范围。
- Simple Room Server – 用于共享帖子的简单 BBS 服务器。
- Simple Secure Chat – 基于终端的安全文本通信。
- Simple Sensor – 远程传感器节点,支持遥测和告警。
可以通过 Visual Studio Code 的串口监视器或 Android 上的串口 USB 终端与 Simple Secure Chat 示例进行交互。
⚡️ MeshCore 刷写器
我们提供预构建的固件,可直接刷写到支持的设备上。
- 打开 https://meshcore.io/flasher
- 选择一个支持的设备
- 刷写以下固件类型之一:
- Companion、Repeater 或 Room Server
- 刷写完成后,您可以使用下方列出的 MeshCore 客户端之一进行连接。
📱 MeshCore 客户端
Companion 固件
根据您刷写的固件类型,Companion 固件可以通过 BLE、USB 或 Wi-Fi 进行连接。
- Web:https://app.meshcore.nz
- Android:https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
- iOS:https://apps.apple.com/us/app/meshcore/id6742354151?platform=iphone
- NodeJS:https://github.com/liamcottle/meshcore.js
- Python:https://github.com/fdlamotte/meshcore-cli
Repeater 和 Room Server 固件
Repeater 和 Room Server 固件可以通过 Web 配置工具中的 USB 进行设置。
它们也可以通过移动应用中的远程管理功能,通过 LoRa 进行管理。
🛠 硬件兼容性
MeshCore 专为 MeshCore 刷写器中列出的设备而设计。
📜 许可证
MeshCore 是根据 MIT 许可证发布的开源软件。您可以自由地将其用于个人和商业项目,包括修改和分发。
贡献
请将 PR 提交到 'dev' 分支!
对于小的修改,直接提交 PR,我们会尽力审阅;但对于影响较大的更改,请先创建 Issue 并展开讨论。最好先明确您想要实现的目标,并尝试就最佳方法达成共识,特别是在涉及代码库结构或架构的更改时。
以下是一些您应尽量遵守的基本原则:
- 保持简洁。请不要像高级语言程序员那样思考。思考嵌入式场景,代码应简洁明了,避免不必要的层次。
- 除 setup/begin 函数外,不使用动态内存分配。
- 使用与核心源模块相同的大括号和缩进风格。(.clang-format 可能很快会加入,但请不要对现有代码进行回溯性格式化。这只会造成不必要的差异,使问题排查更加困难)
请帮助我们确定优先级!请为您最关心的 Issue/PR 点赞。我们根据点赞数量来规划工作。
运行单元测试
要运行单元测试,请执行以下命令:
pio test --environment native --verbose
路线图 / 待办事项
目前有一系列重大功能正在规划中,暂无具体时间表。大致按时间顺序排列:
- Companion 无线电:UI 重新设计
- Repeater + Room Server:添加 ACL(如同 Sensor Node 一样)
- 标准化 Repeater 的桥接模式
- Repeater/Bridge:标准化用于分区/过滤的传输代码
- Core + Repeater:增强的零跳邻居发现
- Core:往返手动路径支持
- Companion + 应用:支持多个子网络(以及“离网”客户端中继模式)
- Core + 应用:支持 LZW 消息压缩
- Core:针对弱信号跳与强信号跳的动态 CR(编码率)
- Core:在一个物理设备上托管多个虚拟节点的新框架
- V2 协议规范:讨论并达成关于 V2 数据包协议的共识,包括路径哈希、新加密规范等
📞 获取支持
- 在 GitHub Issues 页面报告错误和请求功能。
- 在我的网站上查找更多指南和组件。
- 加入 MeshCore Discord 与开发者交流并获取社区帮助。