Как сделать датчик обнаружения дыма с помощью Arduino?

Опубликовано: 25 Сентября, 2022

Arduino — это электронная платформа с открытым исходным кодом, основанная на простом в использовании аппаратном и программном обеспечении. Платы Arduino могут считывать цифровые и аналоговые входы с датчиков, а датчик дыма MQ2 чувствителен к дымовым газам, таким как сжиженный нефтяной газ, бутан, пропан, метан, спирт, водород.

В этой статье мы узнаем, как мы можем сделать сигнализацию дымового извещателя с помощью Arduino. Когда датчик газа MQ2 обнаружит высокий уровень дыма, загорится красный светодиод и включится зуммер.

Требуемые компоненты

  • Arduino UNO -> Плата микроконтроллера на базе ATmega328P
  • Датчик газа MQ2 -> который определяет уровень дыма
  • Зуммер -> Устройство, которое производит звук или тревогу
  • 5V LED -> Светодиод, который излучает свет
  • Резистор 100 Ом -> для сопротивления току
  • Jumper Wires -> Для соединения элементов схемы

Принципиальная электрическая схема

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

Соединение контактов

  • Цифровой контакт Arduino 0 соединен с контактом (+ ve) зуммера.
  • Цифровой контакт 1 Arduino подключен к контакту (+ ve) светодиода 1 (зеленый).
  • Arduino цифровой контакт 2 подключен к контакту (+ve) LED2 (красный)
  • Аналоговый контакт Arduino A0 подключен к контакту A0 датчика газа MQ2.
  • Контакт питания Arduino 5v подключен к Контакт VCC датчика газа
  • Контакт питания Arduino GND соединяется с контактом GND датчика газа
  • Контакт питания Arduino GND соединен с контактами (-ve) светодиодов с сопротивлением.
  • Контакт питания Arduino GND соединен с контактами GND зуммера с сопротивлением.

Код Ардуино

//stored pins in variables

#define gasSensor A0
#define buzzer 0
#define ledGreen 1
#define ledRed 2
#define HIGH 600

void setup() {

   //Initialising all pins
   
   pinMode(gasSensor, INPUT);
   pinMode(buzzer, OUTPUT);
   pinMode(ledGreen, OUTPUT);
   pinMode(ledRed, OUTPUT);
  }

void loop() {
  //Read data from the sensor
int gas_value = analogRead(gasSensor);


//check data from sensor if there is smoke, if will execute otherwise else will execute
if(gas_value > HIGH)
{
  tone(buzzer,1000,500);
  digitalWrite(ledRed, HIGH);
  digitalWrite(ledGreen,LOW);
  
  
}
else
{
  noTone(buzzer);
  digitalWrite(ledGreen,HIGH);
  digitalWrite(ledRed, LOW);
}
delay(200);
  
}

Симулятор:

IoT