实战小项目 | ESP32-S3和ESP32-C3通过ESP-Mesh-Lite组网 温湿度传感器案例

news2024/11/28 4:36:28

传统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 组网的知识,可以关于启明云端微信公众号。请多多支持,关注我,以后喜欢什么内容,可以留言或者私信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1599436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

升级多款教育行业解决方案 星辰天合推动高校高质量发展

4 月 12-14 日,由江苏省高校教育信息化研究会网络信息管理专业委员(以下简称:江苏高校网委会)主办,河海大学网络安全与信息化办公室、常州大学信息化建设与管理处联合承办的 2024 研讨会暨学术年会在江苏金坛召开。本次…

IDjpg Ai:开启艺术风格的无限可能

在这个充满创意的时代,每个人都可以成为艺术家。IDjpg Ai,一款由人工智能AI模型驱动的图片转换工具,让您的照片瞬间变身为3D、卡通、线稿、动漫、电影等无限种艺术风格。这不仅仅是一款软件,它是您通往创意宇宙的钥匙。 一键转换&…

竞技游戏新纪元:如何打造满足现代玩家需求的极致体验?

文章目录 一、现代玩家需求分析二、以玩家体验为核心的游戏设计三、个性化与定制化服务四、强化社交互动与社区建设五、持续更新与优化《游戏力:竞技游戏设计实战教程》亮点编辑推荐内容简介目录获取方式 随着科技的飞速发展和游戏产业的不断壮大,现代玩…

代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树

题目与题解 343. 整数拆分 题目链接:343. 整数拆分 代码随想录题解:343. 整数拆分 视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili 解题思路: 一眼懵…

Banana Pi开源社区推出BPI-5202开发板,国产龙芯Loongson 2K1000LA

BPI-5202开发板,国产龙芯Loongson 2K1000LA BPI-5202作为单纯的嵌入式通用控制器软硬件开发平台,采用龙芯2K1000LA芯片设计,基本配置中有2个独立MAC以太网端口、2个RS485端口1个RS232端口2个CAN2.0端口,配置灵活,广泛适…

SQL注入利用学习 - 延时盲注

延时盲注原理 无法利用页面显示结果判断SQL注入是否执行成功,此时可以利用 SQL语句执行的延时 判断SQL是 否执行成功。 只要可以执行延时,那么就可以利用该注入技术。 sql时间类型的盲注本质是利用插入的SQL语句执行造成时间延迟,插入的SQ…

树莓派安装tensorflow

使用编译好的版本 下载tensorflow编译好的版本 https://github.com/lhelontra/tensorflow-on-arm/tags由于python版本支持有限可能需要自己安装python 安装对应的python 自己选择版本进行编译

TQZC706开发板教程:使用vivado2023_1创建hello_world工程

打开Vivado2023.1-->创建工程-->输入工程名称-->选择保存地址-->下一步 勾选不添加文件-->下一步 搜索7z045ffg-->选择xc7z045ffg900-2-->下一步,finish完成工程创建 添加设计-->设置名称-->OK 添加IP-->搜索zynq-->双击确定选择 …

antDesignVue 使用-持续更新

背景 vue3viteantdesignvuevue-router 1,全局完整注册 1.1下载antdesignvue npm i --save ant-design-vue 或者 npm install ant-design-vuenext --save 1.2在mian.ts中引入 import { createApp } from vue import { createPinia } from piniaimport App from ./App.vue …

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示32行点x32列点字模的功能

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示32行点x32列点字模的应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示…

小红书搜索团队提出新解码策略,降低大模型推理成本

如何让大语言模型(LLMs)“智能涌现”?关键技术之一是思维链(Chain of Thought,CoT),它通过引导大模型,一步一步模拟人类思考过程,可有效增强大模型的逻辑推理能力。 而自…

Python的pytest框架(1)--基本概念、入门

按基础到进阶的顺序,学习Python的pytest框架,本篇文章先讲一讲pytest的基本概念、入门使用规则。 目录 一、pytest基础知识 1、安装 2、pytest框架主要做了什么工作 二、pytest的规则约定、运行方式以及参数详解 1、编写测试用例 模块&#xff08…

react17 + antd4 如何实现Card组件与左侧内容对齐并撑满高度

在使用antd进行页面布局时,经常会遇到需要将内容区域进行左右分栏,并在右侧区域内放置一个或多个Card组件的情况。然而,有时我们会发现右侧的Card组件并不能与左侧的栏目对齐,尤其是当左侧栏目高度动态变化时。本文将介绍如何使用…

基于绿证-阶梯式碳交易交互的源荷互补调度优化

基于绿证-阶梯式碳交易交互的源荷互补调度优化 基于绿证-阶梯式碳交易交互的源荷互补调度优化代码获取戳此处代码获取戳此处 23年新鲜代码,基本完成四个场景的复现。 针对多能精合的区域综合能源系统的低经济运行问题,提出基于绿证-阶梯式碳交易交与的源…

python之flask安装以及使用

1 flask介绍 Flask是一个非常小的Python Web框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。 2 python…

栈的应用-四则运算表达式求值

文章目录 栈的应用-四则运算表达式求值1. 后缀(逆波兰)表示法2. 后缀(逆波兰)表达式计算3. 中缀表达式转换成后缀表达式 栈的应用-四则运算表达式求值 1. 后缀(逆波兰)表示法 我们平时写的数学计算表达式…

Proxmox VE 实现批量增加多网络

前言 实现批量创建多网络,更改主机名称,hosts解析 初始化网卡,主机名称,hosts解析,重启网卡 我的主机六个网卡,使用的有四个网卡,以下一键创建和初始化主机名称我是以硬件的SN号最为主机的名…

大数据、数据架构、推荐冷启动...小红书的 AI 数据新方案都在这个会

伴随着行业数据持续积累,人工智能正加速渗透各类场景,大数据、数据架构和推荐系统等领域,依然是各行各业目之所聚。4 月 19 至 20 日,「DataFunCon 2024 上海站」来袭!大会以“数聚垂域,智领未来”为主题…

超100万用户,迅速登顶 GitHub!运行在浏览器中的开源桌面操作系统,不到一个月拿下 10k star【文末福利】

Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一个月 ——star 数就已接近 10.1k。 作者表示这个项目已开发 3 年,并获得了超过 100 万用户。 Puter介绍 根据介绍,Puter 是基于 Web 的桌面操作系统,运行于浏览…

数据结构——栈(C++实现)

数据结构——栈 什么是栈栈的实现顺序栈的实现链栈的实现 今天我们来看一个新的数据结构——栈。 什么是栈 栈是一种基础且重要的数据结构,它在计算机科学和编程中扮演着核心角色。栈的名称源于现实生活中的概念,如一叠书或一摞盘子,新添加…