ESP-Mesh-Lite 方案介绍

[English]

ESP-Mesh-Lite 方案综述

ESP-Mesh-Lite 是以 IoT-Bridge 为模型,基于 SoftAP + Station 模式,建立在 Wi-Fi 协议之上的一套 Mesh 方案。ESP-Mesh-Lite 允许分布在大范围区域内(室内和室外)的大量设备在同一个 WLAN(无线局域网)中相互连接。方案优势如下:

  • ESP-Mesh-Lite 是一种与传统 Wi-Fi 网络不同的网络结构。在 ESP-Mesh-Lite 网络中,节点不需要连接到中心节点,而是可以与相邻节点直接连接。这种节点之间的相互连接使得网络的覆盖区域更广,不受与中心节点间的距离限制。

  • 传统的 Wi-Fi 网络通常采用集中式结构,所有节点都连接到中心节点(如路由器)。这样的网络结构可能会导致中心节点受容量限制,影响网络的扩展性和稳定性。而 ESP-Mesh-Lite 网络的节点之间互相连接,使得网络中的节点可以相互负责相邻节点的数据转发,不再受限于中心节点的容量。

  • 由于 ESP-Mesh-Lite 网络中的每个节点由父节点分配得到 IP 地址,节点可以像单个设备接入路由器一样访问网络。传输信息对于父节点无感,大大降低了应用层开发难度。

综上所述,ESP-Mesh-Lite 网络具有树型的网络结构,可扩展性强,覆盖范围广,节点间相互连接,提高了网络的灵活性。与传统 Wi-Fi 网络相比,ESP-Mesh-Lite 在物联网应用中具有更大的优势和适用性。

ESP-Mesh-Lite 常见应用场景

  • 智能家居控制系统:由于节点之间的相互连接,智能设备可以直接与相邻设备通信,提高了响应速度和稳定性

  • 智慧农业:许多农田里的无线传感器需要互相沟通并传递消息到云端

  • 光伏逆变器:上传采集器数据至云端

  • 智慧照明:灯的群控和组控以及数据上报

  • 环境检测:可以实现多个环境监测设备的数据采集和传输,提供更全面的环境数据

  • 教育和培训:连接多个教学设备和学生终端,实现教学资源的共享和互动

  • 智能安防:多个安防设备可以实现数据共享和联动控制,提高了安防系统的响应速度和可靠性

  • 设备远程管理:对所有网络内的设备进行 OTA 固件升级。

ESP-Mesh-Lite 入门资料参考

ESP-Mesh-Lite SDK:

ESP-Mesh-Lite 方案指导文档:(必看,提供有关 ESP-Mesh-Lite 协议的介绍)

ESP-Mesh-Lite 基础示例链接:(建议开发者运行此示例来简单了解 ESP-Mesh-Lite 及相关 API 的基础用法)

ESP-Mesh-Lite + Rainmaker 示例链接:(包含配网、局域网 OTA、Mesh 节点通信等高阶用法)

ESP-Mesh-Lite 组件包管理器链接:

ESP-Mesh-Lite 如何启用

ESP-Mesh-Lite 的启用非常方便,开发者只需要简单的调用一些 API 指令即可启用 ESP-Mesh-Lite。参考 mesh_local_control 示例

  1. 初始化 ESP32 的 NVS 分区,以保存配置信息。

  2. 初始化网络接口。调用 esp_netif_init() 函数。

  3. 创建默认的事件循环。调用 esp_event_loop_create_default() 函数。

  4. 创建所有网络接口,包括 STA 模式和 SoftAP 模式。调用 esp_bridge_create_all_netif() 函数

  5. 初始化 Wi-Fi 功能,包括 初始化 Wi-Fi 的 STA 模式和 SoftAP 模式,首先连接到指定的 Wi-Fi 热点(STA 模式),然后开启 SoftAP 热点(SoftAP 模式)。在连接 Wi-Fi 和开启 SoftAP 时,尝试从 NVS 中读取之前保存的配置,如果读取失败,则使用预定义的默认值。

    Station:

    • 定义一个 wifi_config_t 结构体变量 wifi_config,用于配置 Wi-Fi 的 STA 模式参数

    • 设置 wifi_config.sta 的 ssid(Wi-Fi 热点名称)和 password(Wi-Fi 热点密码)。

    • 将 Wi-Fi 模式设置为 STA 模式,并使用 wifi_config.sta.ssidwifi_config.sta.password 作为参数,连接到指定的 Wi-Fi 热点。第四个参数为 NULL,表示不设置回调函数。调用 esp_bridge_wifi_set 函数。

    SoftAP:

    • 清空 wifi_config 结构体的内容,为下面的 SoftAP 模式配置做准备。

    • 定义一个变量储存 SoftAP 模式下的 SSID 长度。

    • 从 NVS 中获取 SoftAP 模式下的 SSID,如果获取失败,则使用 CONFIG_BRIDGE_SOFTAP_SSID 宏定义的默认值。调用 esp_mesh_lite_get_softap_ssid_from_nvs 函数。

    • 定义一个变量存储 SoftAP 模式下的密码长度。

    • 从 NVS 中获取 SoftAP 模式下的密码,如果获取失败,则使用 CONFIG_BRIDGE_SOFTAP_PASSWORD 宏定义的默认值。 调用 esp_mesh_lite_get_softap_psw_from_nvs 函数。

    • 将 Wi-Fi 模式设置为 SoftAP 模式,并使用 wifi_config.ap.ssidwifi_config.ap.password 作为参数,开启 SoftAP 热点。第四个参数为 NULL,表示不设置回调函数。调用 esp_bridge_wifi_set 函数。

  6. 为 Mesh 网络配置提供默认值。定义 esp_mesh_lite_config_t` 结构体变量,并使用 ESP_MESH_LITE_DEFAULT_INIT() 宏初始化它。

  7. 初始化 ESP-Mesh-Lite,启动 Mesh-Lite 网络。调用 esp_mesh_lite_init() 函数,使用上一步定义的结构体来配置。

ESP-Mesh-Lite 性能参考附录