项目简介
本项目基于Arduino,利用painlessMesh库实现了esp8266和esp32硬件的简单Mesh网络构建。让开发者无需关注网络的结构和管理细节,可专注于Mesh网络的应用开发。
项目的主要特性和功能
- 自组织网络:无需规划、中央控制器或路由器,1个或多个节点能自动组成功能完备的Mesh网络,网络规模受堆内存中可分配给子连接缓冲区大小的限制。
- JSON消息传递:采用JSON对象进行消息传递,代码和消息便于人类阅读和理解,方便与JavaScript前端、Web应用及其他应用集成。
- 原生SDK网络库:不使用Arduino WiFi库,而是采用esp32和esp8266的原生SDK库,避免性能问题。
- 非IP网络:节点通过32位芯片ID唯一标识,消息可广播到所有节点,也能发送到指定节点。
- 丰富的API:提供初始化、停止、更新网络,设置消息接收、新连接、拓扑变化等回调函数,以及发送消息、获取节点列表、测量节点延迟等功能。
安装使用步骤
安装依赖库
painlessMesh依赖的库可通过Arduino Library Manager安装;若使用platformio安装库,依赖会自动安装。
代码集成
在代码中包含painlessMesh库并创建对象: ```cpp
include
painlessMesh mesh; ```
初始化网络
在setup()
函数中调用init()
方法初始化Mesh网络:
cpp
mesh.init("your_ssid", "your_password", 5555, WIFI_AP_STA, AUTH_WPA2_PSK, 1, PHY_MODE_11G, 82, 0, 4);
运行维护任务
在loop()
函数中调用update()
方法运行维护任务:
cpp
mesh.update();
其他功能使用
根据需求调用其他API函数,如设置回调函数、发送消息等。例如设置消息接收回调:
cpp
mesh.onReceive([](uint32_t from, String &msg) {
// 处理接收到的消息
});
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】