最近用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等多个传感器组合实验设计相关推荐

  1. Arduino基础入门篇12—火焰报警器

    本篇介绍火焰传感器,通过火焰传感器感知周围环境是否存在明火,控制蜂鸣器对环境火焰进行报警提示. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个有源蜂鸣器 1个10KΩ电 ...

  2. YOLO5~火焰烟雾检测

    这里提出了一种基于YOLOv5的火焰烟雾检测算法.基于改进的YOLOv5模型,建立了一种具有泛化性能的火焰烟雾检测算法.改进后的YOLOv5模型精度可达99.5%,对火焰烟雾的检测效果更加准确. 本次 ...

  3. 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 动态库打 ...

  4. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  5. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  6. mysql 基础篇(二) 账号、权限管理

    mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...

  7. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一

    点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一  今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...

  8. 在java中重写方法应遵循规则的包括_Java面试题集合篇二

    Java面试题之Java集合篇二1.遍历一个List有哪些不同的方式? List<String> strList = new ArrayList<>(); //使用for-ea ...

  9. 算法之数论应用篇(二)

    算法之数论应用篇二 最大公约数 线性筛 Hankson的趣味题 欧拉函数 前言 可见的点(数学知识+欧拉函数) 最大公约数(可见的点扩展) 同余 取模的性质 定义 基本性质 运算规则 重要定理 重要定 ...

最新文章

  1. java中的数据加密1 消息摘要
  2. how tomcat works 1 simple web server
  3. Windows2003如何安装IIS
  4. .NET连接ORACLE数据库的方法
  5. Flink 和 Iceberg 如何解决数据入湖面临的挑战
  6. 捷信达登录信息代码133_报名!广州40所热门民办初中学费均价38678,有学校涨幅133%...
  7. 为什么一个程序中变量只能定义一次_#带你学Python# 从简单程序出发理解Python基本语法
  8. 放肆的使用UIBezierPath和CAShapeLayer画各种图形
  9. 批处理设置服务器BIOS序列号,批处理设置windows服务器的代码ThecSafe1.9.4第1/3页
  10. .NET 判断进程是否存在
  11. SVN下载安装及入门使用教程_win10_64位
  12. 电脑系统声音怎么录制 如何录制电脑内部音频
  13. Wed Jul 22 00:00:00 CST 2020 java转成指定日期格式的字符串
  14. 【115@365】三国杀开源系列之六-入口文件解读
  15. ruby调用python_ruby与python
  16. 凸包Graham算法
  17. 2022-2028全球LED气球灯行业调研及趋势分析报告
  18. 【人机交互】课程知识点梳理及习题
  19. QRCode生成二维码和解析二维码
  20. oracle调优 oracle培训

热门文章

  1. iOS最新漏洞可实现“以假乱真”的iCloud密码钓鱼
  2. Android OMX详解
  3. 手机开机电流多少正常手机电流分析教程
  4. 游戏主程的2018年终总结:从开发到上线,这些事很重要
  5. 超强实时跟踪系统PP-Tracking学习记录
  6. 慕尼黑工业大学计算机博士申请条件,德国慕尼黑工业大学录取要求的三个评分标准...
  7. Django项目开发流程
  8. 面向对象方法学与结构化方法学的异同
  9. 基于蚁群算法的函数寻优算法
  10. 计算机辅助药物设计试题,计算机辅助药物设计考试总结1