MeshCore, a new lightweight, hybrid routing mesh protocol for packet radios
MeshCore:用于分组无线电的新型轻量级混合路由 Mesh 协议
MeshCore 是一个轻量级的、可移植的 C++ 库,它为使用 LoRa 和其他分组无线电的嵌入式项目实现了多跳分组路由。它专为希望创建无需互联网即可工作的弹性、去中心化通信网络的开发人员而设计。
🔍 什么是 MeshCore?
MeshCore 现在支持一系列 LoRa 设备,允许轻松刷写固件,无需手动编译。用户可以使用诸如 Adafruit ESPTool 之类的工具刷写预构建的二进制文件,并通过串行控制台与网络交互。MeshCore 提供了创建无线 Mesh 网络的能力,类似于 Meshtastic 和 Reticulum,但专注于为嵌入式项目提供轻量级多跳分组路由。与专为休闲 LoRa 通信量身定制的 Meshtastic 或提供高级网络的 Reticulum 不同,MeshCore 在简单性和可扩展性之间取得了平衡,使其成为自定义嵌入式解决方案的理想选择,其中设备(节点)可以通过中继节点在长距离上通信。这在传统通信基础设施不可用的离网、紧急或战术情况下尤其有用。
⚡ 主要特性
- 多跳分组路由 – 设备可以通过多个节点转发消息,从而扩展范围,超出单个无线电的范围。MeshCore 支持最多可配置数量的跳数,以平衡网络效率并防止过度流量。
- 支持 LoRa 无线电 – 与 Heltec、RAK Wireless 和其他基于 LoRa 的硬件配合使用。
- 去中心化和弹性 – 无需中央服务器或互联网;网络具有自愈能力。
- 低功耗 – 适用于电池供电或太阳能供电设备。
- 易于部署 – 预构建的示例应用程序使入门变得容易。
🎯 MeshCore 可以用来做什么?
- 离网通信:即使在偏远地区也能保持连接。
- 应急响应和灾难恢复:在基础设施瘫痪的地方建立即时网络。
- 户外活动:远足、露营和冒险比赛通信。
- 战术和安全应用:军事、执法和私人安全用例。
- 物联网和传感器网络:从远程传感器收集数据并将其转发回中央位置。
🚀 如何开始使用
Andy Kirby 发布了一个非常有用的入门视频,其中解释了初学者的步骤。
对于开发人员,在 Visual Studio Code 中安装 PlatformIO。下载并打开 MeshCore 存储库。选择一个示例应用程序:从 chat、repeater 和其他示例应用程序中选择。使用 Serial Monitor(例如,Android 上的 Serial USB Terminal)进行监控和通信。
📁 包含的示例应用程序
- 📡 Terminal Chat:设备之间的安全文本通信。
- 📡 Simple Repeater:通过中继消息来扩展网络覆盖范围。
- 📡 Companion Radio:与外部聊天应用程序一起使用,通过 BLE 或 USB。
- 📡 Room Server:一个用于共享 Posts 的简单 BBS 服务器。
🛠 硬件兼容性
MeshCore 旨在与以下设备配合使用:
- Heltec V3 LoRa Boards
- RAK4631
- XiaoS3 WIO (sx1262 combo)
- XiaoC3 (plus external sx126x module)
- LilyGo T3S3
- Heltec T114
- Station G2
- Sensecap T1000e
- Heltec V2
- LilyGo TLora32 v1.6
📜 许可证
MeshCore 是根据 MIT 许可证发布的开源软件。您可以自由使用、修改和分发它,用于个人和商业项目。
贡献
请使用“dev”作为基本分支提交 PR!对于较小的更改,只需提交您的 PR,我会尽量审查,但对于任何更具“影响力”的事情,请先打开一个 Issue 并开始讨论。最好先了解您想要实现的目标,并尝试就最佳方法达成共识,尤其是在它影响此代码库的结构或体系结构时。
📞 获取支持
查看 GitHub Issues 页面以报告错误或请求功能。
您可以在我的网站上找到其他指南和组件,或者加入 Andy Kirby 的 Discord进行讨论。
PlatformIO 中对 RAK Wireless Board 的支持
在构建/刷写此项目中的 RAK4631 目标之前,不幸的是,您必须对您的 platformIO 包进行一些修补才能使其正常工作。有关该过程的指南,请参见此处:RAK Wireless:如何在 PlatformIO 中执行板级支持包的安装
构建完成后,您需要使用命令 uf2conv.py -f 0xADA52840 -c firmware.hex
将输出的 firmware.hex 文件转换为 .uf2 文件,您可以将其复制到您的 RAK4631 设备(在执行完全擦除后),该命令使用以下位置提供的 python 脚本:GitHub: Microsoft - uf2