传统Wi-Fi网络所有终端设备都需要直接与路由器相连,这使得Wi-Fi的覆盖区域受到路由器位置的限制,可接入终端设备的数量也受到路由器容量的限制。而乐鑫ESP-Mesh-Lite Wi-Fi组网方案,所有终端设备都可以与相邻设备连接,摆脱了对路由器位置和容量的依赖,用户可以享受到快速、稳定且安全的 Wi-Fi 覆盖,不再受到设备数量和路由器位置的限制。
ESP-Mesh-Lite支持ESP32、ESP32-C、ESP32-S等系列Wi-Fi SoC,广泛应用于智能家庭、智能灌溉、植物照明、智能充电站、太阳能发电等需要多设备组网部署和群控的自动化场景,可以实现了智能设备间的高效互联。
今天小启就给大家分享一个ESP-Mesh-Lite 组网方案,以ESP32-S3-Knorvo-2带屏开发板作为根节点,ESP32 C3带灯开发板作为子节点,做一个ESP-Mesh-Lite温湿度传感器小项目。
运行效果展示
ESP32-S3带屏开发板+ESP32 C3驱动温度传感器+LVGL UI ESP-Mesh-Lite 组网
一、项目功能描述
该项目主要有两种硬件部分组成,以Mesh-Lite为框架分为Root设备及非Root设备。其中非Root设备主要负责WS2812 RGB灯的驱动显示控制、LM75A温度传感器的数据读取、Mesh-Lite网络(非Root设备)数据数据传输及对应指令的响应等操作;其中Root设备主要负责 Web配网、屏幕驱动、mqtt服务器( 阿里云 )连接及数据传输、Mesh-Lite网络(Root设备)数据传输及对应指令的响应等操作。
二、功能实现流程图
三、功能实现流程简述
1、Root设备:
①初始化屏幕,生成需要使用的显示UI;初始化LM75A并开启循环读取任务,根据阈值进行开关灯警报;初始化Web配网,等待Web配网......
②Web配网成功,开启Mesh-Lite;连接router成功获取ip,开启阿里云连接及相应主题的订阅与推送。
③接收来自阿里云mqtt服务器的指令,通过Mesh网络广播给非root设备;接收来自非root设备的数据,通过mqtt推送到阿里云服务器。
2、非root设备:
①初始化Mesh-Lite,初始化LM75A并开启循环读取任务,并根据温度阈值显示对应的rgb颜色(小于25℃:绿色,大于25℃小于30℃:黄色,大于等于30℃:红色)。
②Mesh-Lite连接上root(或上层节点)后,设备温度等相关数据会向root发送,同时会接收来着root的广播信息。
③接收root广播信息,解析json并控制RGB灯(WS2812)进行对应显示。
四、要功能及参考例程
1、软件开发环境:
ESP-IDF 4.4.4
2、硬件:
Root设备:ESP32-S3-Korvo-2 V3.1带屏开发板
非root设备:ESP32-C3-DevKitC-02 v1.1带RGB灯开发板
LM75A温度传感器
五、主要功能及参考例程
1、Root设备
①Web配网
examples/4-7_Web配网教程at master · Qixiaoyan6/examples · GitHub
②Mesh组网
esp-mesh-lite/examples/mesh_local_control at master · espressif/esp-mesh-lite · GitHub
③屏幕驱动及lvgl
esp-adf/examples/display/music_player at master · espressif/esp-adf · GitHub
④阿里云设备创建
创建阿里云设备(实操超详细)_阿里云物联网平台设备怎么激活-CSDN博客
⑤阿里云连接
esp-idf/examples/protocols/mqtt/ws at master·espressif/esp-idf·GitHub
⑥LED驱动
esp-idf/examples/peripherals/gpio/generic_gpio at master·espressif/esp-idf·GitHub
2、非Root设备
①Mesh组网
esp-mesh-lite/examples/mesh_local_control at master·espressif/esp-mesh-lite·GitHub
②WS2812
esp-idf/examples/peripherals/rmt/led_strip at master·espressif/esp-idf·GitHub
③LM75A
esp-idf/examples/peripherals/i2c/i2c_simple at master·espressif/esp-idf·GitHub
六、问题与解决
Web配网与Mesh-Lite共存问题,由于Mesh-Lite的设备一般需要ap+sta模式,会导致在Wi-Fi的初始化上面无法兼容。
解决方法:错开运行,在未获取到router相关信息时,Mesh-Lite功能暂不开启,在web配网获取到Wi-Fi相关信息后完全关闭web配网功能然后再启动Mesh-Lite功能。
七、功能点实现讲解
Root设备:
主函数:
LM75A:
I2c初始化及数据读取函数
数据转换: 根据温度传感器规格书所述,温度分辨率为0.125℃,既在最终计算时需要将得到的温度数据 x0.125才是实际上平常所认为的温度数据,而非未转换或转换错误的数值,具体转换方式参考以下说明 进行偏移换算。
屏幕驱动及UI显示:
屏幕驱动
UI界面
W e b 配 网 : 主 要 用 于 获 取 路 由 器 的 信 息 , wifi名 称 及 密 码
m e s h - l i t e : m e s h 网 络 配 置
Root设备的指定
mesh信息交互: mesh-lite四种信息发送方式
root接收注册及处理
root广播
阿里云连接: 连接阿里云配置信息
主题推送及订阅
非Root设备:
主函数:
mesh-lite:
非Root设备的指定
mesh信息交互:
非root接收注册
非root上报数据至root
ws2812:
根据不同的温度范围显示对应的颜色
接收来自root设备转发的mqtt服务器指令进行执行显示
以上就是ESP-Mesh-Lite 组网Demo的全部内容,想知道更多关于ESP-Mesh-Lite 组网的知识,可以关于启明云端微信公众号。请多多支持,关注我,以后喜欢什么内容,可以留言或者私信。