2018-9-16 13:48:04 [显示全部楼层]
7062浏览
查看: 7062|回复: 5

[项目] 做个简单便携的煤气报警器

[复制链接]
有时候做饭完会忘记关闭煤气阀门,搞不好又是一起严重的火灾。。感谢上天啊!
就是这样我就想的是能不能做一个简易的液化气报警装置呢?想着我就动手做了!
从家里的百宝箱里找到一个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]

20060606  高级技匠

发表于 2020-8-10 05:08:47

好实用好实用
回复

使用道具 举报

 初级技匠

发表于 2022-4-18 10:51:17

地板         
回复

使用道具 举报

 初级技匠

发表于 2022-4-18 10:54:30

这才是地板
回复

使用道具 举报

 初级技匠

发表于 2022-4-18 10:57:14

这个很实用哦
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2022-4-19 07:45:05


谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail