2026寒假练 - 基于ESP32实现环境预测与场景联动
通过采集环境温湿度、光照强度等基础信息,使用edgeimpulse进行数据训练后,部署到esp32s3上进行环境预测,可能存在风险时,蜂鸣器短鸣并且LED进行提示。
标签
ESP32
寒假练
xusp99
更新2026-03-24
21

一、项目介绍

2026年第6届“寒假在家一起练”共推出4款平台,涵盖FPGA、树莓派(RP2040、RP2350B)、ESP32-S3人工智能平台,本项目采用esp32s3来进行开发。任务名称是环境预测与场景联动。使用模块包括ESP32‑S3 Sense、DHT11 温湿度传感器、光敏电阻、旋转电位器、三色 LED 模块、蜂鸣器等。要求是

1. 采集温度、湿度、环境光强、震动或倾斜等两种及以上的数据,并间隔一段时间持续记录。  

2. 使用TensorFlow等平台训练轻量模型,输出风险预测。

3. OLED 上显示各传感器实时值、预测评分与趋势、过往采集数据等,三色 LED 用红黄绿显示风险等级。  

4. 预测风险从正常转为可能存在风险时,蜂鸣器短鸣3次进行提示,三色LED由绿色转为黄色;预测风险达到阈值时蜂鸣器长鸣警报,三色LED转为红色。  

硬件平台使用的是人工智能硬件实验套件Seeed XIAO ESP32-S3 Sense为核心主控,集成摄像头、麦克风等AI感知能力,搭配13个精选功能模块,支持灵活组合,理论与实践深度融合,套件覆盖从电路基础、信号采集、算法控制到AI应用的完整教学链路,将部分功能模块组装后可看到一辆小车。适用于电子信息、计算机、自动化等专业的AI硬件教育,学生通过亲手搭建语音助手、人脸识别门禁、智能小车等项目,在实践中深刻理解AI的工作原理,让抽象的AI算法变成可以看得见、摸得着的智能硬件,也可用于大创项目、创客教育等AI硬件实践。


二、设计思路及流程

首先通过esp32连接各类输入传感器,按照edgeImpluse要求的格式进行输入数据的准备,同时根据数据进行二分类,分别是正常NORMAL和风险DANGER。数据存储在csv文件中,之后导入edgeImpluse进行模型训练,经过不断优化及参数调整得到正确率在94%左右的训练结果,从而导出模型zip文件(附件中)。之后再新建项目用于实时数据预测。

本项目使用vscode编程,安装插件platformio,相比arduino开发具有编译速度快,提示信息明显等优势。下面是项目流程图。

首先通过传感器采集数据写入到csv文件,并且根据设定的阈值对数据进行分类,数据值比较高的设为报警,否则设置为正常状态,随后把数据导入到edgeImplus进行训练,下图是原始数据及训练页面的截图展示,label有normal和danger两大类。

经过训练后的模型导出到项目的lib目录里面(ei-eetree-arduino),用于实时检测数据并进行分类。另外lib目录里面包含了点灯科技app的库(blinker-library),用于通过app实时显示esp采集的温湿度信息以及分类结果。


三、重点代码介绍

最后是项目代码中的实时检测部分,主要是ESP32每秒采集外设的实时数,然后使用训练好的模型据根据输入的数据进行预测,通过预测结果如果判断为危险danger,再进行阈值的判断,如果超过阈值则蜂鸣器长鸣警报,三色LED转为红色,否则存在风险时,蜂鸣器短鸣3次进行提示,三色LED由绿色转为黄色。如果预测结果为正常normal则三色LED由绿色,关闭蜂鸣器。

  
  for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
      ei_printf("%s: %.5f\r\n", result.classification[ix].label, result.classification[ix].value);
  }
 
  //检测当前数据是否有效且超阈值,若超阈值,屏幕与蜂鸣器警报
  if (result.classification[0].value > result.classification[1].value){
    if(result.classification[0].value>0.995  && (buffer[0]>26 || buffer[2]>4000 || buffer[3]>98)){
      ledOn(2);
      printf("⚠️ 报警: 温湿度超出阈值,蜂鸣器一直响");      
      tone(BUZZER_PIN, frequency, 0);
    }else{
      ledOn(3);
      printf("报警: 温湿度danger,蜂鸣器响3次");  
      buzzAlarm();
    }
  } else {
    noTone(BUZZER_PIN);
    ledOn(1);
  }
 


四、实物展示

下面是实物展示图片及APP实时数据采集预测页面


五、项目小结

通过本次项目实践,个人对模型的训练和使用有了自己的理解对xiao-esp32s3有了更深刻的认识,但是在管脚的处理上容易混淆,比如D9对应的不是GPIO9,而是对应GPIO8。因此后续工作中要加强对原始文档的了解,不能想当然的以固有思想来开发项目。


附件下载
data2.csv
project.zip
团队介绍
个人
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号