做个简单便携的煤气报警器

2018-09-161.4万
AI 快速预览详细 收起
本文介绍了如何使用Attiny85、MQ-2传感器和蜂鸣器制作简易煤气报警器。项目的核心是通过校准模式提高传感器读数的准确性,确保及时报警。硬件清单包括Attiny85、MQ-2传感器、蜂鸣器、2N2700晶体管、1000uF电容和LED。最终效果是一个便携且可靠的煤气泄漏报警装置,适用于家庭安全。
有时候做饭完会忘记关闭煤气阀门,搞不好又是一起严重的火灾。。感谢上天啊!
就是这样我就想的是能不能做一个简易的液化气报警装置呢?想着我就动手做了!
从家里的百宝箱里找到一个Attiny85, 一个液化气体传感器 MQ-2模块和一个蜂鸣器。就开始了。



做个简单便携的煤气报警器图3

下面是连线图
做个简单便携的煤气报警器图2
attiny85
2N2700一个是用来给蜂鸣器声音放大的
1000uF电容一个,为一分钟校准存电
LED一个
220电阻一个

工作原理

MQ-2传感器有一个小的燃烧器,需要在加热之前加热。
这样读数变得准确。为此我们用了烟雾报警器
校准模式,当校准发生时,传感器
读数慢慢下降,直到一分钟后停止并达到一个精确的值。
Arduino代码设置了等待,直到这些值正常化。
开LED,让用户知道校准校准变化。当
LED是关闭的,传感器被触发,并完全校准。



做个简单便携的煤气报警器图1

[mw_shl_code=applescript,true]//made by gada888

#define led 0
#define buzzer 1
#define sensor 2

int treshold = 0;
int alarmLength = 40;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(sensor, INPUT);

  while(isCalibrating()){
    digitalWrite(led, HIGH);
  }

  treshold = analogRead(sensor) + 10;
}
bool isCalibrating(){
  int sample1 = analogRead(sensor);
  delay(5000);
  int sample2 = analogRead(sensor);

  if(sample1 < sample2){
    return true;
  } else if(abs(sample1 - sample2) <= 2) {
    return false;
  }
}
void loop() {  
  if(analogRead(sensor) > treshold){
    while(alarmLength >= 0){
      alarmLength--;
      alarmOn(100);
    }
    alarmLength = 40;
  } else {
    alarmOff();
  }
}
void alarmOn(int delayMs){
  digitalWrite(led, HIGH);
  analogWrite(buzzer, 100);
  delay(delayMs);

  digitalWrite(led, LOW);
  analogWrite(buzzer, 0);
  delay(delayMs);
}

void alarmOff(){
  digitalWrite(led, LOW);
  analogWrite(buzzer, 0);
}[/mw_shl_code]

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
诩
这个很实用哦
gada888
gada888
作者
回复
谢谢
诩
这才是地板
诩
地板
20060606
20060606
好实用好实用
- 没有更多了 -