Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计
最近用Arduino做了一个简单的多个传感器组合的实验,比较简单,设想的应用场景是火灾检测。如下图所示:
一、实验材料
MQ-2烟雾传感器、5路火焰传感器、CO一氧化碳传感器,无源蜂鸣器、LED灯、arduino mega开发板、面包板以及杜邦线若干。
二、功能说明
设想在一个火灾场景中,当检测到火焰时,火焰触感器检测并触发蜂鸣器报警和LED警示灯亮,当一氧化碳浓度超标或检测到烟雾,蜂鸣器响。我用LED代替了电推杆,设想是电推杆触动灭火装置。
三、程序设计
/*多传感器 MQ-2烟雾、CO一氧化碳、火焰传感器、警报器、电推杆的使用
*/
#include <Arduino.h>#define smogSensor_AO A0 //烟雾传感器引脚
#define smogSensor_DO A3
#define COSensor_AO 30 //一氧化碳CO传感器引脚
#define COSensor_DO 31int pinBuzzer_led = 12; //报警器引脚
int fire_sensor1 = 2; //5个火焰传感器引脚
int fire_sensor2 = 3;
int fire_sensor3 = 4;
int fire_sensor4 = 5;
int fire_sensor5 = 6;
int outPusher = A2; //电推杆输出引脚
unsigned int smogsensorValue = 0; //烟雾传感器值
unsigned int cosensorValue = 0; //CO传感器值void setup()
{pinMode(smogSensor_DO, INPUT);pinMode(smogSensor_AO, INPUT);pinMode(COSensor_DO, INPUT);pinMode(COSensor_AO, INPUT);//火焰传感器5个引脚+电推杆+警报器pinMode(fire_sensor1,INPUT); pinMode(fire_sensor2,INPUT); pinMode(fire_sensor3,INPUT); pinMode(fire_sensor4,INPUT); pinMode(fire_sensor5,INPUT); pinMode(outPusher,OUTPUT); pinMode(pinBuzzer_led,OUTPUT);Serial.begin(9600);
}void loop()
{ //MQ-2烟雾传感器,检测值大于10,触发后警报器响smogsensorValue = analogRead(smogSensor_AO);Serial.print("MQ-2烟雾传感器smogSensor_AO Value = ");Serial.println(smogsensorValue);delay(2000);if(smogsensorValue>10) { Serial.print("检测危险!MQ-2烟雾传感器smogSensor_AO Value = ");Serial.println(smogsensorValue);onAlarm();}//CO一氧化碳传感器,检测值大于350,触发后警报器响灯闪,阈值可更改 cosensorValue = analogRead(COSensor_AO);Serial.print("CO一氧化碳传感器COSensor_AO Value = ");Serial.println(cosensorValue);delay(2000);if(cosensorValue>350) { Serial.print("检测危险!CO一氧化碳传感器COSensor_AO Value = ");Serial.println(cosensorValue);onAlarm();}//火焰传感器,检测到火焰,触发后警报器响灯闪+电推杆打开if (digitalRead(fire_sensor1)) {onAlarm();ePusher();}else if(digitalRead(fire_sensor2)) {onAlarm();ePusher();}else if(digitalRead(fire_sensor3)) {onAlarm();ePusher();}else if(digitalRead(fire_sensor4)) {onAlarm();ePusher();}else if(digitalRead(fire_sensor5)) {onAlarm();ePusher();}
}//触发报警器/无源蜂鸣器的函数
void onAlarm()
{long frequency=200;tone(pinBuzzer_led,frequency);delay(1000);noTone(pinBuzzer_led);delay(1000);Serial.print("警报响!");
}//触发电推杆的函数,只用在火焰传感器
void ePusher()
{digitalWrite(A2,HIGH);delay(2000);
}
Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计相关推荐
- Arduino基础入门篇12—火焰报警器
本篇介绍火焰传感器,通过火焰传感器感知周围环境是否存在明火,控制蜂鸣器对环境火焰进行报警提示. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个有源蜂鸣器 1个10KΩ电 ...
- YOLO5~火焰烟雾检测
这里提出了一种基于YOLOv5的火焰烟雾检测算法.基于改进的YOLOv5模型,建立了一种具有泛化性能的火焰烟雾检测算法.改进后的YOLOv5模型精度可达99.5%,对火焰烟雾的检测效果更加准确. 本次 ...
- Window10手把手带你YOLOV5的火焰烟雾检测+tensorrt量化加速+C++动态库打包
目录 0.引言 1.yolov5模型训练 1.2 模型训练 1.3 模型测试 2 模型转换 2.1 pt→wts→engine 2.1.1 pt转wts 2.1.2 wts转engine 3 动态库打 ...
- 【SSRS】入门篇(二) -- 建立数据源
原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- mysql 基础篇(二) 账号、权限管理
mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...
- 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一
点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一 今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...
- 在java中重写方法应遵循规则的包括_Java面试题集合篇二
Java面试题之Java集合篇二1.遍历一个List有哪些不同的方式? List<String> strList = new ArrayList<>(); //使用for-ea ...
- 算法之数论应用篇(二)
算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...
最新文章
- java中的数据加密1 消息摘要
- how tomcat works 1 simple web server
- Windows2003如何安装IIS
- .NET连接ORACLE数据库的方法
- Flink 和 Iceberg 如何解决数据入湖面临的挑战
- 捷信达登录信息代码133_报名!广州40所热门民办初中学费均价38678,有学校涨幅133%...
- 为什么一个程序中变量只能定义一次_#带你学Python# 从简单程序出发理解Python基本语法
- 放肆的使用UIBezierPath和CAShapeLayer画各种图形
- 批处理设置服务器BIOS序列号,批处理设置windows服务器的代码ThecSafe1.9.4第1/3页
- .NET 判断进程是否存在
- SVN下载安装及入门使用教程_win10_64位
- 电脑系统声音怎么录制 如何录制电脑内部音频
- Wed Jul 22 00:00:00 CST 2020 java转成指定日期格式的字符串
- 【115@365】三国杀开源系列之六-入口文件解读
- ruby调用python_ruby与python
- 凸包Graham算法
- 2022-2028全球LED气球灯行业调研及趋势分析报告
- 【人机交互】课程知识点梳理及习题
- QRCode生成二维码和解析二维码
- oracle调优 oracle培训