当前位置: 首页 > news >正文

实战小项目 | 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 查询到一级分类和二级分类&#xff0c;但是使用插槽和 v-for 渲染出来还是之前的分类 id&#xff0c;但是一点击表格或者保存代码他又能正常刷新出来。 <…...

vue 2 怎么把2024-04-13T17:42:19转换成短日期格式

我们在日常开发过程中&#xff0c;通常会将日期格式在entity中设置成LocalDateTime。这样就有一个麻烦&#xff0c;我们在前端展示这个日期的时候就会变成2024-04-13T17:42:19。这显然不是我们所要的效果&#xff0c;所以我们今天来解决这个问题&#xff0c;让前端展示正确的日…...

网络IO模型以及实际应用

网络IO模型 本文主要介绍了几种不同的网络IO模型&#xff0c;以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型&#xff0c;主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段&#xff1a;是否需要阻塞&#xff0c;分为阻塞和非阻塞IO。…...

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

经常遇到很多系统&#xff0c;比如&#xff1a;MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM&#xff0c;这些都是什么系统&#xff1f;有什么功能和作用&#xff1f;它们之间的关系是怎样的&#xff1f; 今天就一文详细分享给大家。 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系统烧录没问题&#xff0c;但是电脑Ubuntu系统由于版本低&#xff0c;所以没有网络&#xff0c;烧录起来还的连网线&#xff0c;所以问了开发板的工程师&#xff0c;所幸&#xff0c;解决了问题&#xff0c;很感谢工程师的指导&#xff0c;特此记录一下&…...

【数据结构】树与二叉树、树与森林部分习题以及算法设计例题 2

目录 【数据结构】树与二叉树、树与森林部分习题以及算法设计例题一、交换二叉树每个结点的左右孩子Swap 函数&#xff08;先序遍历&#xff09;&#xff1a;Swap 函数&#xff08;中序遍历&#xff09; 不可行&#xff1a;Swap 函数&#xff08;后序遍历&#xff09;&#xff…...

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之间&#xff0c;否则会被覆盖 2.总结STM32Cubemx的使用方法和需要注意的事项 ①打开软件&#xff0c;新建工程…...

Nginx日志格式化和追踪

背景 Nginx是一款功能强大的Web服务器&#xff0c;对于网络环境中的日志记录和配置至关重要。定制化Nginx日志格式可以帮助管理员更好地监控服务器性能、分析用户行为并做出相应优化。在本文中&#xff0c;我们将深入探讨Nginx日志格式的高级定制化策略&#xff0c;包括理解基…...

华为交换机配置telnet SSH登录步骤

这次项目中的交换机是华为 S5735-L24T4X 需要配置telnet和 SSH登录 在平时项目中发现&#xff0c;华为不同型号&#xff0c;不同版本的配置命令也是不同&#xff0c;&#xff08;这不是脑子有问题吗&#xff1f; 干啥搞成不一样的&#xff09; 本次型号&#xff1a;S5735-L2…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...