1. 项目介绍和创意介绍
项目概述:
本项目旨在开发一款高效、智能的火焰警报系统,利用先进的视觉识别技术提高火灾预警的准确性和及时性。通过集成Grove Vision AI V2视觉模块与Xiao ESP32C3单片机,该系统能够自动识别监控区域内的火焰,并在检测到火焰时立即触发警报机制,有效缩短火灾响应时间,保障人民生命财产安全。
创意介绍:
本项目的选择方向为边缘智能、智能设备。创意在于采用自定义训练的火焰识别模型,部署于Grove Vision AI V2模块,实现对火焰的高精度识别,减少误报率。结合Xiao ESP32C3单片机的强大处理能力,实现即时数据分析与决策,一旦检测到火焰,立即启动警报系统。整合LED灯、蜂鸣器、继电器模块及OLED显示屏,形成声光报警与自动喷水灭火的多重防护。并且系统体积小、功耗低,适合家庭、工厂、仓库等多种场景安装使用,提升整体消防安全水平。
2.使用到的硬件介绍
1.Grove Vision AI V2视觉模块:搭载高性能AI处理器,支持深度学习模型部署,本项目中用于火焰识别,是系统的“眼睛”。
2.Xiao ESP32C3单片机:作为控制核心,负责接收视觉模块的数据,执行逻辑判断,并控制其他外设动作。
3.LED灯与蜂鸣器:作为声光报警装置,在检测到火焰时启动,吸引注意,提高警觉性。
4.继电器模块:控制水泵的开关,实现自动喷水灭火功能。(因为没有水泵,所以接的是LED灯,通过灯的亮灭模拟水泵的开关)
5.OLED显示屏:显示紧急信息,如“发现火焰请拨打电话119!!!”,为用户提供直观的警示信息。
3.方案框图和项目设计思路介绍
Grove Vision AI V2视觉模块部署了我训练的识别火焰模型,Xiao ESP32C3单片机通过视觉模块识别的数据,判断是否有火焰,当识别到火焰的时候就会驱动LED灯和蜂鸣器发出声光提醒,控制继电器模块打开水泵,OLED屏幕上会显示“发现火焰请拨打电话119!!!”
4.软件流程图、功能展示图和关键代码介绍
软件流程图
当识别到火焰的时候OLED就会亮起显示“发现火焰请拨打电话119!!!”,继电器打开连接的蓝色LED亮起,用于模拟水泵打开,红色的LED开始闪烁,蜂鸣器响起。
void alarmActivate() {
ledcWrite(CHANNEL_1, 200);
ledcWrite(CHANNEL, 200); // 输出PWM
delay(100);
ledcWrite(CHANNEL_1, 0);
ledcWrite(CHANNEL, 0); // 输出PWM
delay(100);
}
这个函数控制LED灯和蜂鸣器的闪烁和发声,用于报警。
void setupAlarmSystem() {
AI.begin(); // 调用 AI 对象的 begin 方法进行初始化
Serial.begin(9600); // 初始化串口通信,波特率为 9600
Init_OLED();
pinMode(RELAY, OUTPUT); // 将 RELAY 引脚设置为输出模式
pinMode(LED, OUTPUT); // 将 LED 引脚设置为输出模式
ledcSetup(CHANNEL, FREQ, RESOLUTION); // 设置通道
ledcSetup(CHANNEL_1, FREQ, RESOLUTION); // 设置通道
ledcAttachPin(BUZZER, CHANNEL); // 将通道与对应的引脚连接
ledcAttachPin(LED, CHANNEL_1);
}
初始化AI对象、串口通信、OLED显示屏,并设置继电器和LED引脚为输出。同时配置PWM通道和引脚连接。
void loopAlarmSystem() {
if (!AI.invoke()) {
Serial.println(AI.boxes().size()); // 在串口输出 AI 的 boxes 集合的大小
if (AI.boxes().size() > 0) {
Serial.print("target : "); // 在串口输出 "target : "
Serial.println(AI.boxes()[0].target); // 在串口输出 boxes 集合中第一个元素的 target 值
int target = AI.boxes()[0].target;
int score = AI.boxes()[0].score;
if ((target == 1) && (score > 50)) {
digitalWrite(RELAY, HIGH); // 将 RELAY 引脚设置为高电平
alarmActivate(); //LED灯闪烁
DisplayOpen(); //屏幕显示
Serial.print("发现火焰");
}
} else {
digitalWrite(RELAY, LOW); // 将 RELAY 引脚设置为低电平
oled.clearDisplay(); //清屏
oled.display(); //刷新
}
}
}
不断检查AI的检测结果。如果检测到目标,则激活报警(继电器、LED闪烁、OLED显示),否则关闭报警并清屏。
5.功能展示
整体电路图
OLED默认关闭,当识别到火焰开启显示
继电器默认关闭,当识别到火焰继电器打开,蓝色LED亮起。(模拟水泵开启)
蜂鸣器和LED灯默认关闭,当识别到火焰蜂鸣器和LED灯启动
5.遇到的问题和解决方法
模型的识别成功率不高,不断增加训练图片。
6.心得体会
在项目实施过程中,最大的挑战在于火焰识别模型的训练与优化。初期,由于数据集不够丰富,模型识别准确率不高。通过收集更多样化的火焰图像数据,并结合数据增强技术,最终成功提升了模型的识别精度。