- Wymagane składniki
- Grawitacyjny czujnik CO2 na podczerwień
- 0,96 'moduł wyświetlacza OLED
- Schemat obwodu
- Kod Arduino do pomiaru stężenia CO2
- Testowanie połączenia grawitacyjnego czujnika podczerwieni CO2
Rosnące stężenie dwutlenku węgla w powietrzu stało się obecnie poważnym problemem. Według raportu NOAA stężenie ozonu CO2 osiągnęło 0,0385 procent (385 ppm) i jest to najwyższe od 2,1 miliona lat. Oznacza to, że w milionie cząstek powietrza znajduje się 385 cząstek dwutlenku węgla. Ten rosnący poziom CO2 źle wpłynął na środowisko i doprowadził nas do sytuacji, takich jak zmiany klimatyczne i globalne ocieplenie. Na drogach zainstalowanych jest wiele urządzeń do pomiaru jakości powietrza, które określają poziom CO2, ale możemy również zbudować urządzenie do pomiaru CO2 DIY i zainstalować je w naszym regionie.
W tym samouczku połączymy grawitacyjny czujnik podczerwieni CO2 z Arduino, aby zmierzyć stężenie CO2 w PPM. Grawitacyjny czujnik CO2 na podczerwień to bardzo precyzyjny analogowy czujnik CO2. Mierzy zawartość CO2 w zakresie od 0 do 5000 ppm. Możesz również sprawdzić nasze poprzednie projekty, w których wykorzystaliśmy czujnik gazu MQ135, czujnik Sharp GP2Y1014AU0F i czujnik Nova PM SDS011 do zbudowania monitora jakości powietrza.
Wymagane składniki
- Arduino Nano
- Grawitacyjny czujnik CO2 na podczerwień V1.1
- Przewody połączeniowe
- 0,96 'moduł wyświetlacza SPI OLED
- Płytka prototypowa
Grawitacyjny czujnik CO2 na podczerwień
Gravity Infrared CO2 Sensor V1.1 to najnowszy precyzyjny analogowy czujnik CO2 na podczerwień wydany przez DFRobot. Ten czujnik jest oparty na technologii niedyspersyjnej podczerwieni (NDIR) i ma dobrą selektywność oraz jest niezależny od tlenu. Integruje kompensację temperatury i obsługuje wyjście DAC. Efektywny zakres pomiarowy tego czujnika wynosi od 0 do 5000ppm z dokładnością ± 50ppm + 3%. Ten czujnik CO2 na podczerwień może być stosowany w HVAC, monitorowaniu jakości powietrza w pomieszczeniach, procesach przemysłowych i monitorowaniu zabezpieczeń, rolnictwie i monitorowaniu procesów produkcji zwierzęcej.
Pinout czujnika podczerwieni CO2 :
Jak wspomniano wcześniej, czujnik CO2 na podczerwień jest wyposażony w 3-stykowe złącze. Poniższy rysunek i tabela przedstawiają przypisanie styków czujnika CO2 na podczerwień:
Nr pinu |
Nazwa pinu |
Opis |
---|---|---|
1 |
Sygnał |
Wyjście analogowe (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Specyfikacje i funkcje czujnika podczerwieni CO2 :
- Wykrywanie gazu: dwutlenek węgla (CO2)
- Napięcie robocze: 4,5 ~ 5,5 V DC
- Czas nagrzewania: 3 min
- Czas reakcji: 120 s
- Temperatura pracy: 0 ~ 50 ℃
- Wilgotność podczas pracy: 0 ~ 95% RH (bez kondensacji)
- Wodoodporny i antykorozyjny
- Długa żywotność cykliczna
- Odporność na przenikanie pary wodnej
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. Piny i ich funkcje wyjaśniono w poniższej tabeli:
Omówiliśmy już szczegółowo OLED i jego typy w poprzednim artykule.
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
Dowiedz się więcej o OLED i jego interfejsach z różnymi mikrokontrolerami, klikając łącze.
Schemat obwodu
Schemat obwodu do podłączenia grawitacyjnego analogowego czujnika podczerwieni CO2 dla Arduino jest podany poniżej:
Obwód jest bardzo prosty, ponieważ łączymy tylko czujnik grawitacyjny na podczerwień CO2 i moduł wyświetlacza OLED z Arduino Nano. Czujnik CO2 na podczerwień i moduł wyświetlacza OLED są zasilane napięciem + 5V i GND. Pin Sygnał (Wyjście analogowe) czujnika CO2 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 powinno wyglądać mniej więcej jak poniżej:
Kod Arduino do pomiaru stężenia CO2
Pełny kod dla tego projektu Gravity Analog Infrared CO2 Sensor for Arduino znajduje się na końcu dokumentu. Tutaj wyjaśniamy kilka ważnych części kodu.
Kod wykorzystuje Adafruit_GFX , i Adafruit_SSD1306 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 Szkic> Uwzględnij bibliotekę> Zarządzaj bibliotekami . Teraz wyszukaj Adafruit GFX i zainstaluj bibliotekę Adafruit GFX firmy Adafruit.
Podobnie zainstaluj biblioteki Adafruit SSD1306 firmy Adafruit. Czujnik podczerwieni CO2 nie wymaga żadnej biblioteki, ponieważ odczytujemy wartości napięcia bezpośrednio z pinu analogowego Arduino.
Po zainstalowaniu bibliotek do Arduino IDE, uruchom kod, dołączając potrzebne pliki bibliotek. Czujnik kurzu nie wymaga żadnej biblioteki, ponieważ odczyt jest pobierany bezpośrednio z analogowego pinu Arduino.
#zawierać
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 CO2.
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); analogReference (DEFAULT);
Wewnątrz funkcji loop () najpierw odczytaj wartości sygnałów na pinie analogowym Arduino, wywołując funkcję analogRead () . Następnie zamień te analogowe wartości sygnałów na wartości napięcia.
void loop () {int sensorValue = analogRead (sensorIn); napięcie pływaka = sensorValue * (5000 / 1024,0);
Następnie porównaj wartości napięcia. Jeśli napięcie wynosi 0 V, oznacza to, że wystąpił jakiś problem z czujnikiem. Jeśli napięcie jest większe niż 0 V, ale mniejsze niż 400 V, oznacza to, że czujnik nadal jest w trakcie podgrzewania.
if (napięcie == 0) {Serial.println ("Błąd"); } else if (napięcie <400) {Serial.println ("podgrzewanie"); }
Jeśli napięcie jest równe lub większe niż 400 V, zamień je na wartości stężenia CO2.
else {int voltage_diference = voltage-400; stężenie pływaka = różnica_napięciowa * 50,0 / 16,0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (stężenie);
Na koniec wywołaj metodę display () , aby wyświetlić tekst na wyświetlaczu OLED.
display.display (); display.clearDisplay ();
Testowanie połączenia grawitacyjnego czujnika podczerwieni CO2
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:
Uwaga: Przed użyciem czujnika należy odczekać około 24 godziny, aż czujnik nagrzeje się, aby uzyskać prawidłowe wartości PPM. Kiedy zasilałem czujnik po raz pierwszy, wyjściowe stężenie CO2 wynosiło od 1500 PPM do 1700 PPM, a po 24-godzinnym procesie nagrzewania wyjściowe stężenie CO2 spadło do 450 PPM do 500 PPM, które są prawidłowymi wartościami PPM. Dlatego konieczne jest skalibrowanie czujnika przed użyciem go do pomiaru stężenia CO2.
W ten sposób można wykorzystać czujnik CO2 na podczerwień do pomiaru dokładnego stężenia CO2 w powietrzu. Pełny kod i działające wideo są podane poniżej. Jeśli masz jakiekolwiek wątpliwości, zostaw je w sekcji komentarzy lub skorzystaj z naszych forów, aby uzyskać pomoc techniczną.