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替代, 低功耗广域网, 分布式通信, 去中心化网络, 多跳路由, 客户端加密, 嵌入式系统, 应急通信, 战术通信, 数传电台, 数据擦除, 数据链路, 无线自组网, 无线通信, 物联网, 硬件开发, 离网通信, 网状网络, 自愈网络, 自组织网络, 轻量级路由协议