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

http://www.lryc.cn/news/339918.html

相关文章:

  • SiLM5350系列带米勒钳位的单通道隔离驱动器 助力汽车与工业应用实现稳定与高效的解决方案
  • c#中怎么自动下载软件
  • Unity笔记之下拉刷新列表
  • 防火墙操作!
  • 代码随想录算法训练营第四十一天| 343. 整数拆分,96.不同的二叉搜索树
  • 【MATLAB源码-第53期】m代码基于粒子群算法(PSO)的三维路径规划,显示最优路径和适应度曲线。
  • el-table多行合并
  • Vue3 + Element-Plus 使用 Table 插槽时数据未及时更新
  • vue 2 怎么把2024-04-13T17:42:19转换成短日期格式
  • 网络IO模型以及实际应用
  • 一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系
  • 《Kubernetes部署篇:基于Kylin V10+ARM架构CPU使用containerd部署K8S 1.26.15集群(一主多从)》
  • maven命令
  • jetson系列开发板使用虚拟机烧录系统时,遇见无法识别开发板的情况
  • 【数据结构】树与二叉树、树与森林部分习题以及算法设计例题 2
  • Cesium之home键开关及相机位置设置
  • FreeRTOS_day1
  • Nginx日志格式化和追踪
  • 华为交换机配置telnet SSH登录步骤
  • 市面上加密混淆软件的比较和推荐
  • 最新AI创作系统ChatGPT网站源码AI绘画,GPTs,AI换脸支持,GPT联网提问、DALL-E3文生图
  • 电视盒子哪个好?2024口碑网络电视盒子排行榜
  • CookieSession
  • Nginx服务 重写功能与反向代理
  • Midjourney教程(完整版)-看这篇就够了
  • 服务器上部署GPU版的milvus向量数据库
  • 【配置】Docker安装可道云网盘
  • 复盘中得道,技术人的自由之路
  • Nginx配置大全【六大使用场景、七大负载均衡策略、四大负载健康检查】
  • GDPU Java 天码行空8