LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[Projekt] Detektor gazów palnych i dymu oparty o Arduino i czujnik MQ-2

Opisany projekt oparty jest o czujnik MQ-2, pozwalający wykryć w powietrzu gazy takie jak gaz ziemny, wodór, etanol czy dym. Zadaniem detektora jest sygnalizowanie obecności niebezpiecznych gazów w powietrzu za pomocą odpowiedniego koloru diody LED oraz sygnału dźwiękowego.

Do projektu potrzebne są następujące elementy:

MQ-2 to czujnik przeznaczony do wykrywania gazów palnych w powietrzu. Znajduje zastosowanie w domowych i przemysłowych detektorach. Moduł czujnika pozwala wykryć butan, propan, metan, LPG, alkohol, wodór i dym. Czujnik zawiera zintegrowaną grzałkę, która utrzymuje sensor czujnika w odpowiedniej temperaturze, co zapewnia stabilniejsze i bardziej dokładne pomiary.

Maker Nano jest płytką zgodną z Arduino Nano, opartą o popularny mikrokontroler Atmega328 i konwerter USB-UART CH340C. Dodatkowo moduł wyposażono w diody LED pokazujące stan portów cyfrowych, programowalny przycisk i wbudowany buzzer.

Płytka prototypowa zastosowana w projekcie, dzięki licznym wyprowadzeniom zasilania oraz portów I/O, znacznie ułatwia podłączanie modułów do Arduino. Na płytce znajduje się również stabilizator liniowy oraz złącze DC-jack pozwalające podłączyć źródło zasilania.

Sprawdzenie działania czujnika

Pierwszym krokiem będzie sprawdzenie działania czujnika. W tym celu należy wpiąć płytkę Maker Nano w prototypowy shield i podłączyć czujnik zgodnie z tabelą poniżej.

Moduł MQ-2

Arduino

AO

A0

DO

Nie podłączone

GND

GND

VCC

5V

Następnie należy napisać kod wyświetlający wynik pomiaru na ekranie komputera przez port szeregowy. Przed funkcją setup() należy zdefiniować stałą Sensor, do której przypisana zostanie wartość A0, czyli numer portu do którego podłączony jest czujnik.

#define Sensor A0

Następnie należy zainicjować zmienną globalną przechowującą wynik pomiaru i ustawić jej wartość na „0”.

int sensorValue = 0;

W funkcji setup() należy zainicjować połączenie z komputerem i ustawić prędkość komunikacji na standardową wartość: 9600 bps.

Serial.begin(9600);

W funkcji loop() zmiennej sensorValue należy przypisać wartość odczytaną z przetwornika ADC konwertującego napięcie analogowe uzyskane z czujnika podłączonego do portu Sensor. Będzie to wyglądać następująco.

sensorValue = analogRead (Sensor);

W kolejnej linii programu należy za pomocą funkcji Serial.println() wysłać do komputera odczytaną wartość.

Serial.println (sensorValue);

Ostatnią czynnością przed wgraniem programu będzie dodanie opóźnienia, co sprawi, że kolejne wartości nie będą na komputerze wyświetlać się zbyt szybko.

delay(100);

Cały kod powinien wyglądać więc następująco.

#define Sensor A0
int sensorValue = 0;

void setup() {
   Serial.begin(9600);
}

void loop() {
   sensorValue = analogRead(Sensor);
   Serial.println(sensorValue);
   delay(100);
}

Jeżeli wszystko przebiegło pomyślnie, to po otwarciu monitora portu szeregowego powinny pokazać się wartości mniejsze niż 100.

Aby lepiej zobrazować wyniki można otworzyć ploter, który przedstawi je w postaci wykresu.

Teraz można przetestować działanie czujnika zbliżając do niego źródło wykrywanego gazu, np. gazu zawartego w zapalniczce. Testy z gazami łatwopalnymi należy przeprowadzać w dobrze wentylowanym pomieszczeniu przy zachowaniu należytej ostrożności. Wynik testu powinien wyglądać mniej więcej tak.

Do pobrania

Autor: Adam Kita