融合注意力机制的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_ports.comports())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即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小数 ###_C#中的小数关键字

小数 ###C&#xff03;十进制关键字 (C# decimal keyword) In C#, decimal is a keyword which is used to declare a variable that can store a floating type value (value with the precision) between the range of 1.0 x 10-28 to 7.9228 x 1028. decimal keyword is an …

Moon.Orm性能报告

以下为有网友公司的评估测试及使用规范 大家可以下载word看看 http://pan.baidu.com/s/1hquvRuc 一、和ADO.NET进行的压力测试 说明&#xff1a;2000并发用户&#xff0c;此图为一网友公司对moon.orm的测评 二、和ADO.NET的性能对比测试 说明&#xff1a;同时请求10000条数据&a…

Spring中MultipartHttpServletRequest实现文件上传

转贴自&#xff1a;http://zhupan.iteye.com/blog/26427 实现图片上传   用户必须能够上传图片&#xff0c;因此需要文件上传的功能。比较常见的文件上传组件有Commons FileUpload&#xff08;http://jakarta.apache.org/commons/fileupload/a>&#xff09;和COS FileUplo…

(保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码

目录原理保守组检测非保守组检测二次重复测试自适应二次重复测试四种测试方法的核心代码保守群组测试非保守群组测试二次重复测试与自适应二次重复测试测试代码参考文献原理 假设该病在人群中的患病率&#xff08;先验概率&#xff09;为p&#xff0c;我们想用群体检验法检验N…

AngularJS中的表达式

AngularJS表达式 (AngularJS Expressions) In AngularJS, expressions are solved to give a result. It outputs the result of the expression in the html element that called it. Expressions in AngularJS contain literals, constants, operators and variables with re…

学习总结:机器学习(一)

有监督学习&#xff08;Supervised Learning&#xff09;所谓有监督学习&#xff0c;是区别于无监督学习而言的。其过程如下&#xff1a;给定一系列样本&#xff0c;样本是由一系列特征值和输出值组成。比如&#xff0c;某个地方的商品房&#xff0c;包括房子大小、房间数、距离…

Silverlight读取与设置Cookies

Silverlight读取与设置Cookies 设置Cookie DateTime expire DateTime.UtcNow TimeSpan.FromDays(30);string cookie string.Formate("{0}{1},expires{2}",key,value,expire)HtmlPage.SetProperty("cookie",cookie);读取Cookie 由于读取到的Cookie是一个…

WPS双栏格式下插入单栏图片

以一个我认识的西工大博士大佬的一篇SCI为例&#xff0c;期刊是双栏&#xff0c;图片过大&#xff0c;需要单栏进行展示&#xff0c;效果图如下&#xff1a; 一、双栏内容 二、插入单栏图像 随便敲几个字&#xff0c;选中&#xff0c; 页面布局----分栏---一栏 这行字就会…

JavaScript中的数组

Here we are discussing one of the most useful data structure, Array. 在这里&#xff0c;我们讨论最有用的数据结构之一Array 。 By conventional definition of arrays, "Arrays are the homogeneous collection of data types. But in JS, Arrays simply are the c…

【C++基础】异常处理机制概要

目录C的异常处理方法知识要点踹扔抓的代码块示例两种处理被0除的方法异常处理机制的优点其他语言中的异常处理C函数异常声明C的异常处理方法知识要点 理解“踹扔抓”三部曲的结构&#xff0c;尤其是catch是怎么匹配异常的。 知道C标准库中的异常类都是从exception继承下来的&am…

[转载]Struts2 获得Session和Request

转自http://www.blogjava.net/lyyb2001/archive/2008/03/07/184593.html 在struts1中&#xff0c;获得到系统的request或者session对象非常方便&#xff0c;都是按照形参传递的&#xff0c;但是在struts2中&#xff0c;request和session都被隐藏了struts提供两种方式访问sessio…

WPS根据章节编号依次排序

第Ⅲ章节有四小部分&#xff0c;分别为A、B、C、D 第Ⅳ章节要重新开始编号&#xff0c;从A开始 操作步骤&#xff1a; ①再D后面回车&#xff08;红线位置回车&#xff09;&#xff0c;生成E ②把Ⅳ中待写内容写到E中 ③将E复制到Ⅳ下&#xff0c;这里需要注意D的换行也要复制…

【C++基础】异常匹配与内建异常类

目录异常匹配catch: 按异常类型匹配为何要使用异常类内建异常类标准库中的异常基类标准库中的异常类例1&#xff1a;vector下标访问越界out_of_range异常例2&#xff1a;内存分配失败bad_alloc异常例3&#xff1a;侧向转换失败bad_cast异常类几种情况&#xff0c;使用对应异常异…

scala 访问修饰符_Scala中的访问修饰符

scala 访问修饰符Access modifiers are used in order to restrict the usage of a member function to a class or a package. Using access modifiers data hiding takes place which is a very important concept of OOPs. 访问修饰符用于将成员函数的使用限制为类或包。 使…

小试---EF5.0入门实例1

现在做个小练习吧~~~ 第一步&#xff1a;首先新建一个数据库名字为Test;数据库里面只有一个表UserTable 脚本为&#xff1a; USE [master] GO /****** 对象: Database [Test] 脚本日期: 12/15/2013 18:51:54 ******/ CREATE DATABASE [Test] ON PRIMARY ( NAME NTest, F…

iScroll4 禁止select等页面元素默认事件的解决方法 转

iScroll4 禁止select等页面元素默认事件的解决方法起因在于onBeforeScrollStart : function(e){ e.preventDefault(); },这一行&#xff0c;iSroll禁止了事件的默认行为&#xff0c;导致select&#xff0c;option&#xff0c;textarea等元素无法点击。解决方法也很简单&#xf…

C++中比较两个浮点数是否相等

来源&#xff1a; https://stackoverflow.com/a/37686/3242645 代码&#xff1a; #include <cmath> #include <limits> bool AreSame(double a, double b) {return std::fabs(a - b) < std::numeric_limits<double>::epsilon(); }

MPEG的完整形式是什么?

MPEG&#xff1a;运动图像专家组 (MPEG: Moving Picture Experts Group) MPEG is an abbreviation of Moving Picture Experts Group. It is a working group of authorities that is founded to establish standards for audio and video compression and transmission. The a…

正则 去除html标记

//string regexstr "<[^>]*>"; //去除所有的标签 //"<script[^>]*?>.*?</script>" //去除所有脚本&#xff0c;中间部分也删除 // string regexstr "<img[^>]*>"; //去除图片的正则 // string regexstr &…

自画PopMenu弹出

BorderColor:TColor; //边框颜色FillColor:TColor; //未选中填充颜色TextColor:TColor; //未选中字体颜色SelectTextColor:TColor; //选中字体颜色SelectFillColor:TColor; //选中填充颜色SideBuffer:Integer; //边框宽度procedure TForm1.FormCreate(Sender: TObject); b…