meshcore-dev/MeshCore
GitHub: meshcore-dev/MeshCore
一个面向 LoRa 分组无线电的轻量级网状网络协议库,通过多跳中继路由在无互联网环境下构建去中心化的弹性通信网络。
Stars: 2808 | Forks: 868
## 关于 MeshCore
MeshCore 是一个轻量级、可移植的 C++ 库,可为使用 LoRa 和其他分组无线电的嵌入式项目启用多跳数据包路由。它专为希望在无互联网环境下创建弹性、去中心化通信网络的开发者而设计。
## 🔍 什么是 MeshCore?
MeshCore 现在支持多种 LoRa 设备,允许轻松刷写而无需手动编译固件。用户可以使用 Adafruit ESPTool 等工具刷写预构建的二进制文件,并通过串行控制台与网络进行交互。
MeshCore 提供了创建无线网状网络的能力,类似于 Meshtastic 和 Reticulum,但重点在于为嵌入式项目提供轻量级的多跳数据包路由。与专为休闲 LoRa 通信量身定制的 Meshtastic,或提供高级网络功能的 Reticulum 不同,MeshCore 在简单性与可扩展性之间取得了平衡,使其成为定制嵌入式解决方案的理想选择。在这种网络中,设备(节点)可以通过中间节点中继消息来实现长距离通信。这在传统通信基础设施不可用的离网、紧急或战术情况下尤其有用。
## ⚡ 核心功能
* 多跳数据包路由
* 设备可以跨多个节点转发消息,从而将通信范围扩展到单个无线电的覆盖范围之外。
* 支持最多可配置的跳数,以平衡网络效率并防止流量过多。
* 节点使用固定角色,其中“Companion”节点完全不重复消息,以防止使用不利的路由路径。
* 支持 LoRa 无线电 – 适用于 Heltec、RAK Wireless 和其他基于 LoRa 的硬件。
* 去中心化且具有弹性 – 无需中央服务器或互联网;网络具有自愈能力。
* 低功耗 – 非常适合电池供电或太阳能供电的设备。
* 部署简单 – 预构建的示例应用程序让入门变得轻松。
## 🎯 MeshCore 可以用来做什么?
* 离网通信:即使在偏远地区也能保持联系。
* 应急响应与灾难恢复:在基础设施瘫痪的地方建立即时网络。
* 户外活动:徒步旅行、露营和探险竞赛通信。
* 战术与安全应用:军事、执法和私人安保用例。
* 物联网 (IoT) 与传感器网络:从远程传感器收集数据并将其传回中央位置。
## 🚀 如何开始
- 观看由 Andy Kirby 制作的 [MeshCore 介绍视频](https://www.youtube.com/watch?v=t1qne8uJBAc)。
- 观看由 Liam Cottle 制作的 [MeshCore 技术演示](https://www.youtube.com/watch?v=OwmkVkZQTf4)。
- 阅读我们的[常见问题解答](./docs/faq.md)和[文档](https://docs.meshcore.io)。
- 在受支持的设备上刷写 MeshCore 固件。
- 连接受支持的客户端。
面向开发者;
- 在 [Visual Studio Code](https://code.visualstudio.com) 中安装 [PlatformIO](https://docs.platformio.org)。
- 克隆 MeshCore 仓库并在 Visual Studio Code 中打开。
- 查看您可以修改和运行的示例应用程序:
- [Companion Radio](./examples/companion_radio) - 用于通过 BLE、USB 或 WiFi 与外部聊天应用配合使用。
- [KISS Modem](./examples/kiss_modem) - 用于主机应用程序的串行 KISS 协议桥接。([协议文档](./docs/kiss_modem_protocol.md))
- [Simple Repeater](./examples/simple_repeater) - 通过中继消息扩展网络覆盖范围。
- [Simple Room Server](./examples/simple_room_server) - 用于共享帖子的简单 BBS 服务器。
- [Simple Secure Chat](./examples/simple_secure_chat) - 设备之间基于安全终端的文本通信。
- [Simple Sensor](./examples/simple_sensor) - 带有遥测和警报功能的远程传感器节点。
可以通过 Visual Studio Code 中的 Serial Monitor 或 Android 上的 Serial USB Terminal 来与 Simple Secure Chat 示例进行交互。
## ⚡️ MeshCore 刷写工具
我们准备了预构建的固件,可以直接刷写到受支持的设备上。
- 启动 https://meshcore.io/flasher
- 选择一个受支持的设备
- 刷写以下固件类型之一:
- Companion、Repeater 或 Room Server
- 刷写完成后,您可以连接到下面的任一 MeshCore 客户端。
## 📱 MeshCore 客户端
**Companion 固件**
根据您刷写的固件类型,可以通过 BLE、USB 或 WiFi 连接到 companion 固件。
- 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 进行设置。
- https://config.meshcore.io
它们也可以通过移动应用程序中的“远程管理”功能,经由 LoRa 进行管理。
## 🛠 硬件兼容性
MeshCore 专为 [MeshCore Flasher](https://meshcore.io/flasher) 中列出的设备而设计。
## 📜 许可证
MeshCore 是根据 MIT 许可证发布的开源软件。您可以自由地将其用于个人和商业项目,进行使用、修改和分发。
## 路线图 / 待办事项
还有许多相当大的功能正在筹备中,目前尚未附有明确的时间表。大致按时间顺序排列如下:
- [X] Companion radio: UI 重新设计
- [X] Repeater + Room Server: 添加 ACL(如同 Sensor Node 所具备的)
- [X] 标准化 Repeater 的 Bridge 模式
- [ ] Repeater/Bridge: 标准化用于区域划分/过滤的传输代码
- [X] Core + Repeater: 增强的零跳邻居发现
- [ ] Core: 往返手动路径支持
- [ ] Companion + Apps: 支持多个子网格(以及“离网”客户端重复模式)
- [ ] Core + Apps: 支持 LZW 消息压缩
- [ ] Core: 针对弱跳与强跳的动态 CR (Coding Rate)
- [ ] Core: 用于在一个物理设备上托管多个虚拟节点的新框架
- [ ] V2 协议规范:围绕 V2 数据包协议(包括路径哈希、新加密规范等)的讨论与共识
## 📞 获取支持
- 在 [GitHub Issues](https://github.com/ripplebiz/MeshCore/issues) 页面报告错误并申请功能。
- 在[我的网站](https://buymeacoffee.com/ripplebiz)上查找更多指南和组件。
- 加入 [MeshCore Discord](https://meshcore.gg) 与开发者聊天并从社区获取帮助。
标签:C++, LoRa, MeshCore, Meshtastic替代, Mesh网络, Reticulum替代, 低功耗广域网, 分布式通信, 去中心化网络, 多跳路由, 客户端加密, 嵌入式系统, 应急通信, 战术通信, 数传电台, 数据擦除, 数据链路, 无线自组网, 无线通信, 物联网, 硬件开发, 离网通信, 网状网络, 自愈网络, 自组织网络, 轻量级路由协议