- Wymagane składniki
- 0,96 'moduł wyświetlacza OLED
- Przygotowanie czujnika MQ-135
- Schemat obwodu do interfejsu MQ135 z Arduino
- Obliczanie R
- Kod do pomiaru CO2 za pomocą czujnika Arduino MQ135
- Testowanie połączenia czujnika MQ-135
Poziom atmosferycznego CO2 na Ziemi rośnie z dnia na dzień. Średni światowy atmosferyczny dwutlenek węgla w 2019 roku wyniósł 409,8 części na milion, aw październiku 2020 - 411,29. Dwutlenek węgla jest kluczowym gazem cieplarnianym i odpowiada za około trzy czwarte emisji. Dlatego monitorowanie poziomu CO2 również zaczęło zyskiwać na znaczeniu.
W naszym poprzednim projekcie użyliśmy czujnika grawitacyjnego CO2 na podczerwień do pomiaru stężenia CO2 w powietrzu. W tym projekcie zamierzamy użyć czujnika MQ-135 z Arduino do pomiaru stężenia CO2. Zmierzone wartości stężenia CO2 zostaną wyświetlone na module OLED, a na końcu porównamy również odczyty czujnika Arduino MQ-135 z odczytami czujnika podczerwieni CO2. Oprócz CO2 zmierzyliśmy również stężenie LPG, dymu i amoniaku za pomocą Arduino.
Wymagane składniki
- Arduino Nano
- Czujnik MQ-135
- Przewody połączeniowe
- 0,96 'moduł wyświetlacza SPI OLED
- Płytka prototypowa
- Rezystor 22 kΩ
0,96 'moduł wyświetlacza OLED
OLED (organiczne diody elektroluminescencyjne) to technologia samoemitacji światła, skonstruowana przez umieszczenie szeregu cienkich warstw organicznych między dwoma przewodnikami. Po przyłożeniu prądu elektrycznego do tych filmów wytwarzane jest jasne światło. Diody OLED wykorzystują tę samą technologię co telewizory, ale mają mniej pikseli niż większość naszych telewizorów.
W tym projekcie używamy monochromatycznego 7-pinowego wyświetlacza OLED SSD1306 0,96 ”. Może pracować na trzech różnych protokołach komunikacyjnych: trybie SPI 3 Wire, trybie czteroprzewodowym SPI oraz trybie I2C. Możesz również dowiedzieć się więcej o podstawach wyświetlacza OLED i jego typach, czytając powiązany artykuł. Piny i ich funkcje wyjaśniono w poniższej tabeli:
Nazwa pinu |
Inne nazwy |
Opis |
Gnd |
Ziemia |
Pin uziemienia modułu |
Vdd |
Vcc, 5 V. |
Pin zasilania (tolerowane 3-5 V) |
SCK |
D0, SCL, CLK |
Działa jako pin zegara. Używany zarówno dla I2C, jak i SPI |
SDA |
D1, MOSI |
Pin danych modułu. Używany zarówno do IIC, jak i SPI |
RES |
RST, RESET |
Resetuje moduł (przydatne podczas SPI) |
DC |
A0 |
Pin polecenia danych. Używany do protokołu SPI |
CS |
Chip Select |
Przydatne, gdy w protokole SPI używany jest więcej niż jeden moduł |
Specyfikacje OLED:
- Układ scalony sterownika OLED: SSD1306
- Rozdzielczość: 128 x 64
- Kąt widzenia:> 160 °
- Napięcie wejściowe: 3,3 V ~ 6 V.
- Kolor piksela: niebieski
- Temperatura pracy: -30 ° C ~ 70 ° C
Przygotowanie czujnika MQ-135
Czujnik gazu MQ-135 to czujnik jakości powietrza do wykrywania szerokiego zakresu gazów, w tym NH3, NOx, alkoholu, benzenu, dymu i CO2. Czujnik MQ-135 można zakupić jako moduł lub sam czujnik. W tym projekcie używamy modułu czujnika MQ-135 do pomiaru stężenia CO2 w PPM. Schemat obwodu płyty MQ-135 przedstawiono poniżej:
Rezystor obciążający RL odgrywa bardzo ważną rolę w działaniu czujnika. Ten rezystor zmienia swoją wartość rezystancji w zależności od stężenia gazu. Zgodnie z arkuszem danych MQ-135, wartość rezystora obciążenia może wynosić od 10 KΩ do 47 KΩ. Arkusz danych zaleca kalibrację detektora na 100ppm NH3 lub 50ppm stężenie alkoholu w powietrzu i użycie wartości rezystancji obciążenia (RL) około 20 KΩ. Ale jeśli prześledzisz ślady PCB, aby znaleźć wartość swojego RL na płycie, zobaczysz rezystor obciążenia 1KΩ (102).
Aby więc zmierzyć odpowiednie wartości stężenia CO2, należy wymienić rezystor 1KΩ na rezystor 22KΩ.
Schemat obwodu do interfejsu MQ135 z Arduino
Pełne schematy podłączenia czujnika gazu MQ-135 z Arduino przedstawiono poniżej:
Obwód jest bardzo prosty, ponieważ łączymy tylko czujnik MQ-135 i moduł wyświetlacza OLED z Arduino Nano. Czujnik gazu MQ-135 i moduł wyświetlacza OLED są zasilane napięciem + 5V i GND. Pin Analog Out czujnika MQ-135 jest połączony z pinem A0 Arduino Nano. Ponieważ moduł OLED Display wykorzystuje komunikację SPI, ustanowiliśmy komunikację SPI między modułem OLED a Arduino Nano. Połączenia przedstawiono w poniższej tabeli:
S.Nr |
Pin modułu OLED |
Pin Arduino |
1 |
GND |
Ziemia |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Po podłączeniu sprzętu zgodnie ze schematem obwodu, konfiguracja czujnika Arduino MQ135 powinna wyglądać mniej więcej tak:
Obliczanie R
Teraz, gdy znamy już wartość RL, przejdźmy do sposobu obliczenia wartości R o w czystym powietrzu. Tutaj użyjemy MQ135.h do pomiaru stężenia CO2 w powietrzu. Dlatego najpierw pobierz bibliotekę MQ-135, a następnie podgrzej wstępnie czujnik przez 24 godziny przed odczytaniem wartości R o. Po procesie podgrzewania użyj poniższego kodu, aby odczytać wartości R o:
#include „MQ135.h” void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Podłącz czujnik do pinu A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); opóźnienie (1000); }
Teraz, gdy masz już wartości R o, przejdź do Documents> Arduino> libraries> MQ135-master folder i otwórz plik MQ135.h i zmień wartości RLOAD i RZERO.
/// Rezystancja obciążenia płyty #define RLOAD 22.0 /// Odporność na kalibrację przy atmosferycznym poziomie CO2 #define RZERO 5804.99
Teraz przewiń w dół i zamień wartość ATMOCO2 na obecną wartość atmosferycznego CO2, czyli 411,29
/// Poziom atmosferycznego CO2 do celów kalibracyjnych #define ATMOCO2 397.13
Kod do pomiaru CO2 za pomocą czujnika Arduino MQ135
Kompletny kod do połączenia czujnika MQ-135 z Arduino znajduje się na końcu dokumentu. Tutaj wyjaśniamy kilka ważnych części kodu MQ135 Arduino.
Kod wykorzystuje Adafruit_GFX , i Adafruit_SSD1306 , i MQ135.h bibliotek. Biblioteki te można pobrać z Menedżera bibliotek w środowisku Arduino IDE i stamtąd zainstalować. W tym celu otwórz Arduino IDE i przejdź do Sketch <Include Library <Manage Libraries . Teraz wyszukaj Adafruit GFX i zainstaluj bibliotekę Adafruit GFX firmy Adafruit.
Podobnie zainstaluj biblioteki Adafruit SSD1306 firmy Adafruit. Bibliotekę MQ135 można pobrać stąd.
Po zainstalowaniu bibliotek do Arduino IDE, uruchom kod, dołączając potrzebne pliki bibliotek.
#include „MQ135.h” #include
Następnie zdefiniuj szerokość i wysokość OLED. W tym projekcie korzystamy z wyświetlacza SPI OLED 128 × 64. Można zmienić SCREEN_WIDTH i SCREEN_HEIGHT zmienne w zależności od wyświetlacza.
# zdefiniować SCREEN_WIDTH 128 # zdefiniować SCREEN_HEIGHT 64
Następnie zdefiniuj piny komunikacyjne SPI, do których podłączony jest wyświetlacz OLED.
# zdefiniować OLED_MOSI 9 # zdefiniować OLED_CLK 10 # zdefiniować OLED_DC 11 # zdefiniować OLED_CS 12 # zdefiniować OLED_RESET 13
Następnie utwórz instancję wyświetlacza Adafruit o szerokości i wysokości zdefiniowanej wcześniej za pomocą protokołu komunikacyjnego SPI.
Wyświetlacz Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Następnie zdefiniuj pin Arduino, do którego podłączony jest czujnik MQ-135.
int sensorIn = A0;
Teraz w funkcji setup () , zainicjuj monitor szeregowy z szybkością transmisji 9600 w celu debugowania. Zainicjuj również wyświetlacz OLED za pomocą funkcji begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Wewnątrz funkcji loop () najpierw odczytaj wartości sygnałów na pinie analogowym Arduino, wywołując funkcję analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Następnie w następnym wierszu wywołaj funkcję gasSensor.getPPM (), aby obliczyć wartości PPM. Wartości PPM są obliczane przy użyciu rezystora obciążenia R 0 i odczytu z pinu analogowego.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Następnie ustaw rozmiar i kolor tekstu za pomocą setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BIAŁY);
Następnie w kolejnym wierszu określ położenie, w którym zaczyna się tekst, za pomocą metody setCursor (x, y) . I wydrukuj wartości CO2 na wyświetlaczu OLED za pomocą funkcji display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Na koniec wywołaj metodę display () , aby wyświetlić tekst na wyświetlaczu OLED.
display.display (); display.clearDisplay ();
Testowanie połączenia czujnika MQ-135
Gdy sprzęt i kod są gotowe, należy przetestować czujnik. W tym celu podłącz Arduino do laptopa, wybierz kartę i port, a następnie naciśnij przycisk przesyłania. Następnie otwórz monitor szeregowy i poczekaj chwilę (proces wstępnego nagrzewania), a zobaczysz ostateczne dane. Wartości zostaną wyświetlone na wyświetlaczu OLED, jak pokazano poniżej:
W ten sposób można wykorzystać czujnik MQ-135 do dokładnego pomiaru CO2 w powietrzu. Pełny kod Arduino czujnika jakości powietrza MQ135 i działający film wideo podano poniżej. Jeśli masz jakiekolwiek wątpliwości, zostaw je w sekcji komentarzy.