风筝
发表于: 2020-4-8 21:39:42 | 显示全部楼层

在本篇文章中,我们主要介绍如何使用MQ-135传感器和Arduino开发板制作一款烟雾探测器,用于测量环境中的烟雾等级。只需将MQ-135气体传感器模块与Arduino和1602 LCD模块连接即可显示。我们使用的烟雾传感器是MQ-135传感器。烟雾探测器在检测建筑物以及一些重要场合中的烟雾或火灾中非常有用。


烟雾探测器电路不仅可以感应空气中的烟雾,还可以读取并显示空气中的烟雾等级。当烟雾等级高于所需极限时,此电路触发蜂鸣器,该阈值可根据要求在规范中更改。除了MQ-135,您还可以使用MQ2、MQ3、MQ5模块。它们基本上都有相似的功能。


所需组件

对于使用MQ-135传感器和Arduino的烟雾探测器,我们需要以下组件:

●    Arduino UNO开发板

●    1602液晶屏

●    MQ-135烟雾传感器模块

●    蜂鸣器

●    面包板

●    连接导线


MQ-135烟雾传感器模块简介

gas-sensor-2.jpg

MQ-135模块传感器在清洁空气中的电导率较低。当目标可燃气体存在时,传感器的电导率会随着气体浓度的升高而升高。转换电导率的变化以对应气体浓度的输出信号。 MQ135气体传感器对氨、硫化物和苯蒸汽具有很高的灵敏度,对烟气和其他有害气体也很敏感。它价格低廉,适用于各种应用,例如有害气体/烟雾检测。


MQ-135模块传感器的特征

●    检测范围广

●    快速响应和高灵敏度

●    稳定长寿命简单的驱动电路

●    用于建筑物/办公室的空气质量控制设备,适用于检测NH3、NOx、酒精、苯、烟雾、CO2等。

●    尺寸:35mm x 22mm x 23mm(长x宽x高)

●    工作电压:DC 5 V

●    信号输出指令。

●    双信号输出(模拟输出和高/低数字输出)

●    4.2V模拟输出电压,浓度越高,电压越高。


MQ-135烟雾传感器由二氧化锡(SnO2)、氧化铝微管(测量电极)内的透视层和管状壳体内的加热元件组成。传感器的端面被不锈钢网包围,背面固定连接端子。燃烧任何东西都会从源头散发出烟。随着烟雾在二氧化锡感测层上级联,电阻降低。通过使用外部负载电阻,电阻变化被转换为相应的电压变化。


烟雾探测器的连接方式

组件准备好后,现在按照下图所示的连接制作Arduino烟雾探测器。

smoke-detector-arduino-circuit.jpg


Arduino源代码

以下是使用MQ-135传感器设计Arduino烟雾探测器的源代码。只需复制代码,然后使用Arduino IDE将其上传到您的Arduino开发板即可。

  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

  3. int redLed = 10;
  4. int greenLed = 12;
  5. int buzzer = 8;
  6. int smokeA0 = A0;
  7. // Your threshold value
  8. int sensorThres = 100;

  9. void setup() {
  10.   pinMode(redLed, OUTPUT);
  11.   pinMode(buzzer, OUTPUT);
  12.   pinMode(smokeA0, INPUT);
  13.   Serial.begin(9600);
  14.   lcd.begin(16,2);
  15. }

  16. void loop() {
  17.   int analogSensor = analogRead(smokeA0);

  18.   Serial.print("Pin A0: ");
  19.   Serial.println(analogSensor);
  20.   lcd.print("Smoke Level:");
  21.   lcd.print(analogSensor-50);
  22.   // Checks if it has reached the threshold value
  23.   if (analogSensor-50 > sensorThres)
  24.   {
  25.     digitalWrite(redLed, HIGH);
  26.     lcd.setCursor(0, 2);
  27.     lcd.print("Alert....!!!");
  28.     digitalWrite(12, LOW);
  29.     tone(buzzer, 1000, 200);
  30.   }
  31.   else
  32.   {
  33.     digitalWrite(redLed, LOW);
  34.     digitalWrite(12, HIGH);
  35.     lcd.setCursor(0, 2);
  36.     lcd.print(".....Normal.....");
  37.     noTone(buzzer);
  38.   }
  39.   delay(500);
  40.   lcd.clear();
  41. }
复制代码

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-20 20:08 , Processed in 0.145633 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表