В этом проекте мы рассмотрим устройство, позволяющее нам избавиться от газа или каких-либо запахов в помещении (например, на кухне), которое основано на Arduino и датчика газа. Иными словами, мы собираемся сделать систему автоматической редуцирования газа или систему дегазации.

В этом проекте наш центральный компонент – плата Arduino UNO. Arduino примет решение, когда количество газа превысит пороговое значение, тогда автоматический вентилятор включится и удалит лишний газ из комнаты или кухни.
В схеме у нас есть датчик газа, который подключается к Arduino. Датчик газа считывает количество газа из воздуха. Затем мы должны установить пороговое значение газа. Когда количество газа в воздухе нашего дома или кухни превышает пороговое значение. Вытяжной вентилятор включится автоматически. После удаления газа из воздуха вытяжной вентилятор автоматически выключится.
Допустим, пороговое значение газа составляет 300. Датчик газа, например, в настоящее время считывает значение газа из воздуха 280. В этом случае вытяжной вентилятор будет выключен по умолчанию. Теперь рассмотрим другой сценарий. В этот раз пороговое значение равно 300, а значение датчика газа равно 310. В этом случае вытяжной вентилятор будет включен после превышения порогового значения газа. Когда вытяжной вентилятор включен, красный светодиод и зуммер активируются одновременно. Это будет указывать на высокое содержание газа в помещении. Мы можем контролировать эти данные по газу с помощью ЖК-дисплея.
Кроме того, у нас есть дополнительная функция. Если нам нужно включить вытяжной вентилятор вручную, мы также можем сделать это, нажав кнопку. После нажатия кнопки вытяжной вентилятор будет включен на 10 секунд. Это время задержки может варьироваться в зависимости от нашего кода.
Схема подключения элементов системы дегазации на основе Arduino следующая:

Код программы системы дегазации на основе Arduino приведен далее:
#include <LiquidCrystal.h>
LiquidCrystal lcd(6, 7, 8, 9, 10, 11);
float gasPin = A0;
float gasLevel;
int ledPin = 2;
int buttonPin = 3;
int buzzPin = 4;
int buttonState;
int fan = 5;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(gasPin,INPUT);
pinMode(fan,OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(" Welcome");
lcd.setCursor(0,2);
lcd.print(" Youtube");
delay(500);
lcd.clear();
}
void loop(){
// Считаем значения датчика газа и кнопки
gasLevel = analogRead(gasPin);
buttonState = digitalRead(buttonPin);
// вызов функции обнаружения газа и работы кнопки
gasDetected(gasLevel);
exhaustFanOn(buttonState);
}
// Обнаружение утечки газа и автоматическое включение сигнализации и вентилятора
void gasDetected(float gasLevel){
if(gasLevel >= 300){
digitalWrite(buzzPin,HIGH);
digitalWrite(ledPin,HIGH);
digitalWrite(fan,HIGH);
lcd.setCursor(0,0);
lcd.print("GAS:");
lcd.print(gasLevel);
lcd.setCursor(0,2);
lcd.print("FAN ON");
delay(1000);
lcd.clear();
}else{
digitalWrite(ledPin,LOW);
digitalWrite(buzzPin,LOW);
digitalWrite(fan,LOW);
lcd.setCursor(0,0);
lcd.print("GAS:");
lcd.print(gasLevel);
lcd.setCursor(0,2);
lcd.print("FAN OFF");
delay(1000);
lcd.clear();
}
}
// Ручное включение вентилятора
void exhaustFanOn(int buttonState){
if(buttonState == HIGH){
digitalWrite(fan,HIGH);
lcd.setCursor(0,0);
lcd.print("Button State:");
lcd.print(buttonState);
lcd.setCursor(0,2);
lcd.print("FAN ON");
delay(10000);
lcd.clear();
}
}
© digitrode.ru