Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计

2023-11-04

最近用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 31

int 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计 的相关文章

  • ADXL345 与 ESP32 I2C 垃圾值问题

    我已根据以下教程使用 I2C 接口将 ESP32 与 ADXL345 连接起来Tutorial http www esp32learning com code esp32 and adxl345 sensor example php 但是
  • VSCode 上的 PlatformIO 未编译:collect2.exe:错误:ld 返回 1 退出状态

    我最近不得不擦拭我的计算机 在一切准备就绪并运行之后 是时候打开我之前正在处理的一些 ESP32 程序了 发现 VSCode 上的 Platform IO 将不再编译 运行编译器后 我收到以下错误 Compiling pio build e
  • 将 Arduino RGB LED 从一种颜色渐变为另一种颜色?

    目前 我已成功让 LED 灯循环显示我选择的八种颜色 一切都工作正常 除了我想要一种更自然的感觉 并且想要从一种颜色褪色 过渡到下一种颜色 而不是让它们互相替换 到目前为止 这是我的代码 int redPin 11 int greenPin
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • Arduino“SerialEvent”示例代码无法在我的 Arduino Nano 上运行。我无法接收串行数据。为什么?

    我正在按照教程进行操作串行事件 https www arduino cc en Tutorial BuiltInExamples SerialEvent我正在尝试这段代码 然而 当我发送我的Arduino 纳米 https en wikip
  • Arduino Python3 脚本

    我正在尝试使用 Python3 脚本来控制 Arduino Mega 这是一个简单的脚本 用于从键盘获取一行并通过 Arduino 回显它 我从一个可用的 Python 2 脚本开始http petrimaki wordpress com
  • Fedora 中的 Arduino 上传错误“stk500_recv(): 程序员没有响应”

    我正在尝试上传库存Blink在 Fedora Core 15 Linux 中使用 Arduino IDE 绘制草图 我收到此错误 avrdude stk500 recv 程序员没有响应 要重现该问题 通过 USB 线插入 Arduino U
  • ARDUINO 常数有什么用?以前是22,现在是100

    我正在使用热电偶并下载了 MAX6675 库 我想知道以下几行中 ARDUINO 常量的值是做什么用的 if ARDUINO gt 100 lcd write byte 0 else lcd print 0 BYTE endif lcd p
  • 如何将 char 数组定义为常量?

    这里是 C C 菜鸟 我已经在头文件中定义了它 typedef unsigned char BitChar 9 8 data bytes chars and one width byte char extern BitChar BitFon
  • Arduino:使用串口和软件串口与蓝牙模块

    我的目的是使用 Arduino 通过 HC 05 蓝牙模块在 PC 和 Android 设备之间建立通信 我使用 PC 和 Arduino 串行监视器 之间的 USB 通信以及 SoftwareSerial 来连接到 HC 05 我的问题是
  • 如何将值从 Arduino 发送到 Python,然后使用该值

    我正在构建一个使用 Python 进行远程控制的机器人 通过简单的 GUI 通过互联网发送控制消息 我的部分代码 GUI 和控制系统 运行得很好 但我陷入了困境 我正在尝试使用视差平传感器来获取与物体的距离信息Arduino Mega ht
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • Java RXTX 库不加载本机库

    基本上我想使用 Arduino 编写一个简单的通信工具java 的 RXTX 库 http rxtx qbang org wiki index php Main Page并且在加载动态库时严重失败 我的系统规格 操作系统 OS X 优胜美地
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • C++:将成员函数作为普通函数指针传递的闭包

    我正在尝试调用外部库的成员函数 该函数接受函数指针作为参数 Timer every unsigned long period void callback void 但不幸的是我想传递的参数是一个成员函数 void MyClass the m
  • HM10 ble改变特征值AT命令Arduino

    谁能帮我用AT命令写入特征值 或者如何使用Hm10模块将数据从arduino发送到另一个ble设备 HM10发送AT START后 会通告数据包 并且可以检测服务和特征 但特征值是默认的0x00 如何更改 多次检查数据表 但找不到能够执行相
  • pySerial 与 python 2.7 和 3.4 的差异

    我正在开发一个项目 需要通过串口将一些数字从 Windows 10 中的 python 发送到 arduino uno 作为一个简单的测试 我只想通过发送 2 来打开 LED 并通过从命令提示符发送 4 来关闭 LED 尽管我希望最终能够将
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • 编译器:如果条件始终为真/假怎么办

    我想到了条件和编译器 我正在为 Arduino 编写一个应用程序 因此我需要该应用程序尽可能快 在我的代码中我有这个 define DEBUG false if DEBUG String pinName pinName Pin pinNam
  • 使用 Arduino 来操作 Android [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人尝试过让 Android 和 Arduino 相互通信吗 我在网上找到了几个项目 Amarino http www amarino tool

随机推荐

  • 深入leveldb-初步认识leveldb

    文章参考http blog chinaunix net uid 26575352 id 3245476 html 1 leveldb简介 leveldb是google两位工程师实现的单机版k v存储系统 具有以下几个特点 1 key和val
  • 数组环形队列(FIFO)

    数组环形队列 FIFO 一 说明 环形队列的关键是判断队列为空 还是为满 当tail追上head时 队列为满 当head追上tail时 队列为空 二 代码实现 define ElemType uint8 t 定义数据类型 define Qu
  • python的小作业

    目录 python安装 2 打印0 100 遇到19的时候跳出循环 3 只打印90以内的奇数 4 对发送邮件代码进行修改 换成自己的邮箱并截图保存 5 对指导书中海龟画图和TCP UDP的案例进行学习并运行结果 python小项目 pyth
  • 高德地图-根据IP定位显示当前所在城市

    1 绘制地图 构造参数中的container为添加的地图容器的id let map new AMap Map container 2 IP定位 高德地图定位文档 自建图层 参考手册 地图 JS API 高德地图API 创建AMap Map对
  • ARCore:ARCore开发的起步

    已经是第7章节了 终于可以开始正式接触到我们梦寐以求的ARCore了 相信大家应该都有一点点小激动了吧 那么下面我们就开始讲解如何进行ARCore的开发 一 Session简介 初看到Session 大家都摸不到头脑 最直接的解释 它是AR
  • ChatGPT实用用法10大场景

    之前的文章中 我们提到了ChatGPT的一些局限性 比如它会一本正经地胡说八道 所以如果使用方法不对 反而会耽误时间甚至被误导 但要是用对了 真的会事半功倍 让我们褪去ChatGPT无所不知无所不能的光环 看看现阶段的它有哪些靠谱的用法吧
  • java jar 创建_java生成jar包

    Java编写的application程序是否可以终于形成一个类似于exe一样的可执行文件 难道就仅仅能用命令行执行 通常有两种 一种是制作一个可运行的JAR文件包 然后就能够像 chm文档一样双击运行了 而还有一种是使用JET来进行编译 可
  • 2014百度校招笔试

    1 ISO七层说明 2 用百度地图查询 百度大厦 到 北京大学 得到路线不太稳定是怎么回事 分析可能的原因 测试开发唯一区别于软件开发的一题 3 TCP UDP协议的区别 举出上一层的应用协议 二 算法 1 写出a0 a1 a2 an的所有
  • Web框架 Flask 之 请求方式 & 会话

    常见的请求方式 GET 页面的默认请求方式 请求的数据是以明文的形式放在路由上面 以 开头的键值对 中间以 连接多个参数 POST 请求的数据隐藏发送的 安全系数高 通常用来向服务器提交数据 请求对象 Flask 中由全局对象 reques
  • Java为什么一个源文件只能有一个public类,而且源文件名必须要与public类名相同

    看了几个解答 都不能让我很满意 以后有机会再深究一下 真要是被问起 就这么答 java和jvm的设计需要 是一个规定 假如一个源文件中没有public类 那么你想定义几个类就定义几个 都没有问题 而且每个类的名字都随便起 完全和文件名没有关
  • 面试官:请写一个你认为比较“完美”的单例

    单例模式是保证一个类的实例有且只有一个 在需要控制资源 如数据库连接池 或资源共享 如有状态的工具类 的场景中比较适用 如果让我们写一个单例实现 估计绝大部分人都觉得自己没问题 但如果需要实现一个比较完美的单例 可能并没有你想象中简单 本文
  • CNCC2020丨5G边缘智能与智慧城市论坛

    CNCC 技术论坛 5G 边缘智能与智慧城市 探索 5G 时代下边缘智能与智慧城市的融合 时间 10 月 23 日下午 16 00 18 30 主办方 天津大学 国防科技大学 模式 线上 线下 线上地点 https cncc ccf org
  • C++11常用新特性

    1 constexpr 使修饰的函数在编译期执行 constexpr int numpow int x int y while y x x return x int a numpow 2 4 数组的大小必须是常量 但我们用constpr修饰
  • [1016]DataFrame一列拆成多列以及一行拆成多行

    文章目录 DataFrame一列拆成多列 DataFrame一行拆成多行 分割需求 简要流程 详细说明 0 初始数据 1 使用split拆分 2 使用stack行转列 3 重置索引 删除多余的索引 并命名为C 4 使用join合并数据 Da
  • 【滤波跟踪】基于无迹卡尔曼滤波实现惯性导航+DVL的组合导航算法附matlab代码

    1 内容介绍 水下航行器 的产生 发展直至实际使用经过了很长的历程 对于海洋人们从了解认识 开发研究 使用和保护等方面的发展 促使着水下航行器的开发研究工作也逐渐活跃起来 在新世纪中水下航行器还将被重点开发应用 水下航行器研制的重要标准之一
  • EXT4文件系统挂载成功后执行init文件linuxrc失败

    Hi3559av100平台 制作EXT4文件系统在EMMC存储设备上启动 发现EXT4文件系统挂载成功后执行init文件linuxrc失败 分析原因如下 错误打印 sdhci Secure Digital Host Controller I
  • 王道考研——计算机网络(第一章 计算机网络体系结构)

    1 0认识计算机网络 在下载电影 不会出现乱序问题 和微信收发消息 比如表情包乱序了 所使用的协议是不同的 1 1 1概念和功能 1 计算机网络的概念 2 计算机网络的功能 3 计算机网络的发展 第一阶段 小写的 internet 就是这样
  • 第七课 学习韦东山老师STM32F103 迷你核心单片机Mini开发板

    本节课为 7天物联网智能家居实战训练营1期 的第7节课 也是最后1节课 文章目录 一 基础班7节课 项目完善与总结回顾 二 项目实例优化 三 总结回顾 四 互动环节 一 基础班7节课 项目完善与总结回顾 第一部分 一 对项目进行功能改进优化
  • 应用架构COLA 2.0

    很多同学不止一次和我反馈 我们的系统很混乱 主要表现在 应用的层次结构混乱 不知道应用应该如何分层 应该包含哪些组件 组件之间的关系是什么 缺少规范的指导和约束 新加一段业务逻辑不知道放在什么地方 哪个类 哪个包 应该起什么名字比较合适 解
  • Arduino篇(二)火焰、烟雾、CO等多个传感器组合实验设计

    最近用Arduino做了一个简单的多个传感器组合的实验 比较简单 设想的应用场景是火灾检测 如下图所示 一 实验材料 MQ 2烟雾传感器 5路火焰传感器 CO一氧化碳传感器 无源蜂鸣器 LED灯 arduino mega开发板 面包板以及杜