实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例
传统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 组网的知识,可以关于启明云端微信公众号。请多多支持,关注我,以后喜欢什么内容,可以留言或者私信。
相关文章:
实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例
传统Wi-Fi网络所有终端设备都需要直接与路由器相连,这使得Wi-Fi的覆盖区域受到路由器位置的限制,可接入终端设备的数量也受到路由器容量的限制。而乐鑫ESP-Mesh-Lite Wi-Fi组网方案,所有终端设备都可以与相邻设备连接,摆脱了对路由…...
SiLM5350系列带米勒钳位的单通道隔离驱动器 助力汽车与工业应用实现稳定与高效的解决方案
带米勒钳位的隔离驱动SiLM5350系列 单通道 30V,10A 带米勒钳位的隔离驱动 具有驱动电流更大、传输延时更低、抗干扰能力更强、封装体积更小等优势, 为提高电源转换效率、安全性和可靠性提供理想之选。 SiLM5350系列产品描述: SiLM5350系列是单通道隔离驱…...
c#中怎么自动下载软件
以下是一个简单的 C# 示例,演示如何使用 WebClient 类下载软件: using System; using System.Net; class Program { static void Main(string[] args) { // 要下载的文件 URL string fileUrl "https://example.com/path/to/file"; // 本地保…...
Unity笔记之下拉刷新列表
这样的效果; 代码: using System; using System.Collections; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class ScrollRectUpdateView : Mon…...
防火墙操作!
当小编在Linux服务器上部署好程序以后,但是输入URL出现下述情况,原来是防火墙的原因!! 下面是一些防火墙操作! 为保证系统安全,服务器的防火墙不建议关闭!! 但是,我们可…...
代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树
题目与题解 343. 整数拆分 题目链接:343. 整数拆分 代码随想录题解:343. 整数拆分 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路: 一眼懵…...
【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 粒子群算法(Particle Swarm Optimization,简称PSO)是一种模拟鸟群觅食行为的启发式优化方法。以下是其详细描述: 基本思想: 鸟群在寻找食物时,每只鸟都…...
el-table多行合并
背景 前端统计列表,数据乱序。按日期、产品、阶段、DD项(所有header名称乱写)排序,列表如下。 示例 日期产品阶段DDEEFFGG20240414产品1阶段1场景1A01场景2B01其他A0120240410产品1阶段1场景2B01其他A0120240402产品2阶段1场景3…...
Vue3 + Element-Plus 使用 Table 插槽时数据未及时更新
Vue3 Element-Plus 使用 Table 插槽时数据未及时更新 问题重现解决方法最终效果 问题重现 这里我已经通过二级分类 id 查询到一级分类和二级分类,但是使用插槽和 v-for 渲染出来还是之前的分类 id,但是一点击表格或者保存代码他又能正常刷新出来。 <…...
vue 2 怎么把2024-04-13T17:42:19转换成短日期格式
我们在日常开发过程中,通常会将日期格式在entity中设置成LocalDateTime。这样就有一个麻烦,我们在前端展示这个日期的时候就会变成2024-04-13T17:42:19。这显然不是我们所要的效果,所以我们今天来解决这个问题,让前端展示正确的日…...
网络IO模型以及实际应用
网络IO模型 本文主要介绍了几种不同的网络IO模型,以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型,主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段:是否需要阻塞,分为阻塞和非阻塞IO。…...
一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系
经常遇到很多系统,比如:MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM,这些都是什么系统?有什么功能和作用?它们之间的关系是怎样的? 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…...
《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.26.15集群(一主多从)》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大概时间有10s多,这个时间太长了,尝试了各种办法,都解决不了,后面尝试安装了了1.26.…...
maven命令
mvn archetype:generate 创建 Maven 项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编译测试源代码 mvn test 运行应用程序中的单元测试 mvn site 生成项目相关信息的网站 mvn clean 清除项目目录中的生成结果 mvn package 根据项目生成的 jar mvn instal…...
jetson系列开发板使用虚拟机烧录系统时,遇见无法识别开发板的情况
在双系统中的ubuntu系统烧录没问题,但是电脑Ubuntu系统由于版本低,所以没有网络,烧录起来还的连网线,所以问了开发板的工程师,所幸,解决了问题,很感谢工程师的指导,特此记录一下&…...
【数据结构】树与二叉树、树与森林部分习题以及算法设计例题 2
目录 【数据结构】树与二叉树、树与森林部分习题以及算法设计例题一、交换二叉树每个结点的左右孩子Swap 函数(先序遍历):Swap 函数(中序遍历) 不可行:Swap 函数(后序遍历)ÿ…...
Cesium之home键开关及相机位置设置
显隐控制 设置代码中的homeButton var TDT_IMG_C "https://{s}.tianditu.gov.cn/img_c/wmts?servicewmts&requestGetTile&version1.0.0" "&LAYERimg&tileMatrixSetc&TileMatrix{TileMatrix}&TileRow{TileRow}&TileCol{TileCol}…...
FreeRTOS_day1
1.总结keil5下载代码和编译代码需要注意的事项 下载代码前要对仿真进行设置 勾选后代码会立刻执行 勾选后会导致代码不能执行 写代码的时候要写在对应的begin和end之间,否则会被覆盖 2.总结STM32Cubemx的使用方法和需要注意的事项 ①打开软件,新建工程…...
Nginx日志格式化和追踪
背景 Nginx是一款功能强大的Web服务器,对于网络环境中的日志记录和配置至关重要。定制化Nginx日志格式可以帮助管理员更好地监控服务器性能、分析用户行为并做出相应优化。在本文中,我们将深入探讨Nginx日志格式的高级定制化策略,包括理解基…...
华为交换机配置telnet SSH登录步骤
这次项目中的交换机是华为 S5735-L24T4X 需要配置telnet和 SSH登录 在平时项目中发现,华为不同型号,不同版本的配置命令也是不同,(这不是脑子有问题吗? 干啥搞成不一样的) 本次型号:S5735-L2…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
