M-Design设计竞赛-基于Grove Vision AI V2视觉模块的火焰警报系统
该项目使用了Grove Vision AI V2视觉模块和Xiao ESP32c3单片机,实现了可以识别火焰并发出警报的设计,它的主要功能为:当识别到火焰的时候单片机就会驱动LED灯和蜂鸣器发出声光提醒,控制继电器模块开启水泵,OLED屏幕上会显示“发现火焰请拨打电话119!!!”。
标签
嵌入式系统
单片机
M-Design设计竞赛
sycztmdk
更新2025-04-01
31

1. 项目介绍和创意介绍

项目概述

本项目旨在开发一款高效、智能的火焰警报系统,利用先进的视觉识别技术提高火灾预警的准确性和及时性。通过集成Grove Vision AI V2视觉模块与Xiao ESP32C3单片机,该系统能够自动识别监控区域内的火焰,并在检测到火焰时立即触发警报机制,有效缩短火灾响应时间,保障人民生命财产安全。

创意介绍

本项目的选择方向为边缘智能、智能设备。创意在于采用自定义训练的火焰识别模型,部署于Grove Vision AI V2模块,实现对火焰的高精度识别,减少误报率。结合Xiao ESP32C3单片机的强大处理能力,实现即时数据分析与决策,一旦检测到火焰,立即启动警报系统。整合LED灯、蜂鸣器、继电器模块及OLED显示屏,形成声光报警与自动喷水灭火的多重防护。并且系统体积小、功耗低,适合家庭、工厂、仓库等多种场景安装使用,提升整体消防安全水平。

2.使用到的硬件介绍

1.Grove Vision AI V2视觉模块:搭载高性能AI处理器,支持深度学习模型部署,本项目中用于火焰识别,是系统的“眼睛”。

image.pngimage.png

2.Xiao ESP32C3单片机:作为控制核心,负责接收视觉模块的数据,执行逻辑判断,并控制其他外设动作。

image.png

3.LED灯与蜂鸣器:作为声光报警装置,在检测到火焰时启动,吸引注意,提高警觉性。

image.pngimage.png

4.继电器模块:控制水泵的开关,实现自动喷水灭火功能。(因为没有水泵,所以接的是LED灯,通过灯的亮灭模拟水泵的开关

image.png

5.OLED显示屏:显示紧急信息,如“发现火焰请拨打电话119!!!”,为用户提供直观的警示信息。

image.png


3.方案框图和项目设计思路介绍


火焰警报系统.jpg



Grove Vision AI V2视觉模块部署了我训练的识别火焰模型,Xiao ESP32C3单片机通过视觉模块识别的数据,判断是否有火焰,当识别到火焰的时候就会驱动LED灯和蜂鸣器发出声光提醒,控制继电器模块打开水泵,OLED屏幕上会显示“发现火焰请拨打电话119!!!”


4.软件流程图、功能展示图和关键代码介绍


1742117180094.jpg



软件流程图


当识别到火焰的时候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.功能展示

image.png

整体电路图

image.pngimage.png

OLED默认关闭,当识别到火焰开启显示

image.pngimage.png

继电器默认关闭,当识别到火焰继电器打开,蓝色LED亮起。(模拟水泵开启)

image.pngimage.png

蜂鸣器和LED灯默认关闭,当识别到火焰蜂鸣器和LED灯启动

5.遇到的问题和解决方法

模型的识别成功率不高,不断增加训图片

6.心得体会


在项目实施过程中,最大的挑战在于火焰识别模型的训练与优化。初期,由于数据集不够丰富,模型识别准确率不高。通过收集更多样化的火焰图像数据,并结合数据增强技术,最终成功提升了模型的识别精度。


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