ESP-MDF (Espressif Mesh Development Framework) 是基于 ESP32 芯片的 ESP-WIFI-MESH 开发框架。ESP-WIFI-MESH 是一种基于 Wi-Fi 构建的 MESH 网络通信协议。
ESP-MDF 在 ESP-WIFI-MESH 协议栈的基础上增加了配网、升级、调试机制及应用示例。使用 ESP-MDF 您可以快速上手 ESP-WIFI-MESH 开发。其主要特点如下:
ESP-MDF 共分为 Utils、Components 和 Examples 三个部分(如下图所示),他们之间的关系:Utils 是 ESP-IDF APIs 的抽象封装以及第三方库,Components 是基于 Utils APIs 组成的 ESP-MDF 功能模块,Examples 是基于 Components 完成的 ESP-WIFI-MESH 解决方案。
Utils:
Third Party:第三方的组件
Transmission:设备间数据通信方式
Mcommon:ESP-MDF 各组件之间的共用模块
Components:
Examples:
Function demo:各个功能模块的使用示例
Debug:性能测试和调试工具
Development Kit:ESP32-MeshKit 使用示例, 用于调研和了解 ESP-WIFI-MESH
云平台: ESP-MDF 对接云平台
您首先需要详细阅读 ESP-WIFI-MESH 通信协议和ESP-MDF 编程指南,并通过 ESP32-MeshKit 开发套件调研和了解 ESP-WIFI-MESH。其次基于 Function demo进行您的项目开发,当您可以在开发中遇到问题,首先可在官方论坛和官方 GitHub 上寻找是否已存在类似问题,若不存在类似问题,您也可直接在网站中提问。
ESP32-MeshKit 包含一整套完整的 ESP-WIFI-MESH 的照明解决方案(如下图所示),可配套 ESP-Mesh App(iOS 版和安卓版)使用,既可以调研和了解 ESP-WIFI-MESH,也可以进行二次开发。
ESP32-MeshKit Light |
ESP32-MeshKit Sense |
ESP32-Buddy 是专为 ESP-WIFI-MESH 开发测试而设计的开发板。体积小,采用 USB 供电,方便做大数量设备的测试及距离测试。
通过如下的步骤,可以快速开始开发 ESP-MDF 应用程序,如果需要了解详细的过程,参见 ESP-IDF 入门指南。
设置工具:根据您的电脑操作系统(Windows,Linux 或 Mac OS)进行配置。Linux 系统可以直接执行下面的命令。
git clone -b v4.3.1 --recursive https://github.com/espressif/esp-idf.git
cd ~/esp/esp-idf
./install.sh
. ./export.sh
获取 ESP-MDF:
git clone --recursive https://github.com/espressif/esp-mdf.git
如果您在没有
--recursive
标记的情况下克隆项目,转到 esp-mdf 目录并运行命令git submodule update --init --recursive
设置 ESP-MDF 路径:工具链程序使用环境变量 MDF_PATH
来访问 ESP-MDF,设置它的过程类似于设置 IDF_PATH
变量,请参阅添加 IDF_PATH 到用户配置文件
。Linux 系统可以直接执行下面的命令。
cd ~/esp/esp-mdf
export MDF_PATH=~/esp/esp-mdf
创建一个工程:此工程为 ESP-WIFI-MESH 两个设备之间通信的示例
cp -r $MDF_PATH/examples/get-started/ .
cd get-started/
编译和烧写:使用默认配置即可
idf.py build
监视/调试:要退出监视器,请使用快捷键 Ctrl+]
idf.py -p [port] -b [baudrate] monitor
更新 ESP-MDF:
cd ~/esp/esp-mdf
git pull
git submodule update --init --recursive
布置方便:采用 Wi-Fi 组网,无需布线安装等复杂工作,支持自组网、自修复和自管理,用户只需配置路由器的密码即可;
无需网关:ESP-WIFI-MESH 采用去中心化的结构,其无需网关避免了单点故障造成整个网络瘫痪,仅一个 ESP-WIFI-MESH 设备也能正常工作;
传输更安全:数据链路层和应用层均可实施加密;
传输更可靠:两个设备之间的是可靠传输和流控,支持单播、组播和广播;
网络容量大:ESP-WIFI-MESH 采用树状结构,单个设备最多直接连接 10 个设备,单个网络可容纳 1000 个节点;
传输范围广:两个设备之间的传输距离隔墙 30 m,空旷环境 200 m(测试基于 ESP32-DevKitC);
传输速率高:基于 Wi-Fi 传输,高达 10 Mbps 的传输率;
能同时运行 BLE 协议栈:ESP32 芯片可以同时运行 Wi-Fi 和 BLE 协议栈,利用 ESP-WIFI-MESH 做为主干网络进行数据的传输,通过 BLE 接收探针、发送广播和连接设备;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型