融合注意力机制的YOLOv5火焰识别+Arduino UNO R3实现5s内连续识别到火焰,警报灯红灯亮起

编程入门 行业动态 更新时间:2024-10-11 23:21:30

融合注意力机制的YOLOv5<a href=https://www.elefans.com/category/jswz/34/1686543.html style=火焰识别+Arduino UNO R3实现5s内连续识别到火焰,警报灯红灯亮起"/>

融合注意力机制的YOLOv5火焰识别+Arduino UNO R3实现5s内连续识别到火焰,警报灯红灯亮起

效果:摄像头捕获室内图像,将视频实时通过串口通讯传递给改进之后的YOLOv5神经网络进行火焰识别,若5s内连续检测到有火焰,警报灯变红,进入危险状态。5s之内未连续出现火焰,警报灯变绿,进入安全状态

一、PyCharm和Arduino进行串口通信调试

这里以双色LED灯为例子,PyCharm进行串口通信控制LED灯2s之后变红,延迟30ms之后再变绿
所需材料:

双色LED灯

Arduino UNO R3核心板

PyCharm编译器

arduino编译器

二、Arduino代码

ArduinoLED灯
P10R灯
P11G灯
GNDGND

/***************************************************
Dual-color LED    Arduin Uno R3
R                  11
GND                GND
G                  10
****************************************************/int redPin = 11;    // select the pin for the red LED
int greenPin = 10;    // select the pin for the green LEDchar var;  void setup() 
{pinMode(redPin, OUTPUT); //set redPin as OUTPUTpinMode(greenPin, OUTPUT);//set greenPin as OUTPUTdigitalWrite(redPin,LOW);digitalWrite(greenPin,HIGH);Serial.begin(9600); 
}void loop() 
{while(Serial.available()>0)//当有信号的时候{var=Serial.read();if(var=='0')//传过来的是0{digitalWrite(redPin, HIGH);//red灯亮digitalWrite(greenPin, LOW);//green灯灭delay(3000); //delay 30ms }if(var=='1')//传过来的是1{digitalWrite(redPin, LOW);//red灯灭digitalWrite(greenPin, HIGH);//green灯亮delay(30); //delay 30ms}}
}

三、Python代码

s.enter(2, 0, func)
2表示延迟2s之后执行func函数,0表示优先级
func函数会发送0给Arduino,Arduino收到串口发送指令之后红灯亮,表示有火焰
延迟多少秒以及优先权级别可根据实际情况需要来设定
func1函数会发送1给Arduino,Arduino收到串口发送指令之后绿灯亮
s.enter(2, 0, func) 2s后调用func函数,发送0,红灯亮,优先级为0
s.enter(5, 1, func1) 5s后调用func1函数,发送1,绿灯亮,优先级为1

最终的效果为:2s后红灯亮、5s后绿灯亮

import serial.tools.list_ports
import time
import schedfire=b"0"#将0转换为ASCII码方便发送
notfire=b"1"#将1转换为ASCII码方便发送def func():serialFd.write(fire)
def func1():serialFd.write(notfire)plist = list(serial.tools.list_portsports())if len(plist) <= 0:print("没有发现端口!")
else:plist_0 = list(plist[0])serialName = plist_0[0]serialFd = serial.Serial(serialName, 9600, timeout=60)print("可用端口名>>>", serialFd.name)s = sched.scheduler(time.time, time.sleep)s.enter(2, 0, func)s.enter(5, 1, func1)s.run()

四、融合注意力机制的YOLOv5火焰识别模型

通过串口延时发送指令控制arduino基本原理了解之后
YOLOv5火焰识别模型中,检测到火焰的时候就调用一下,发送指令给arduino即可

更多推荐

融合注意力机制的YOLOv5火焰识别+Arduino UNO R3实现5s内连续识别到火焰,警报灯红灯亮起

本文发布于:2024-03-14 04:13:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735597.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:火焰   警报   亮起   红灯   注意力

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!