- Požadované komponenty
- 0,96 'OLED zobrazovací modul
- Příprava senzoru MQ-135
- Schéma zapojení rozhraní MQ135 s Arduino
- Výpočet R
- Kód pro měření CO2 pomocí senzoru Arduino MQ135
- Testování propojení senzoru MQ-135
Hladina atmosférického CO2 na zemi se každým dnem zvyšuje. Celosvětový průměr atmosférického oxidu uhličitého v roce 2019 byl 409,8 dílů na milion a v říjnu -2020 je 411,29. Oxid uhličitý je klíčovým skleníkovým plynem a je zodpovědný za zhruba tři čtvrtiny emisí. Monitorování úrovně CO2 tedy začalo nabývat na důležitosti.
V našem předchozím projektu jsme k měření koncentrace CO2 ve vzduchu použili Gravity Infrared CO2 sensor. V tomto projektu použijeme k měření koncentrace CO2 senzor MQ-135 s Arduinem. Naměřené hodnoty koncentrace CO2 se zobrazí na modulu OLED a naposledy také porovnáme naměřené hodnoty senzoru Arduino MQ-135 s naměřenými hodnotami infračerveného CO2 senzoru. Kromě CO2 jsme pomocí Arduina měřili také koncentraci LPG, kouře a amoniaku.
Požadované komponenty
- Arduino Nano
- Senzor MQ-135
- Propojovací dráty
- 0,96 'SPI OLED displejový modul
- Nepájivá deska
- Rezistor 22KΩ
0,96 'OLED zobrazovací modul
OLED (Organic Light Emitting Diodes) je technologie samovolného vyzařování světla, konstruovaná umístěním řady organických tenkých vrstev mezi dva vodiče. Když je na tyto filmy aplikován elektrický proud, produkuje se jasné světlo. OLED používají stejnou technologii jako televizory, ale mají méně pixelů než ve většině našich televizorů.
Pro tento projekt používáme monochromatický 7pinový SSD1306 0,96 ”OLED displej. Může pracovat na třech různých komunikačních protokolech: režim SPI 3 Wire, režim SPI se čtyřmi vodiči a režim I2C. Další informace o základech OLED displeje a jeho typech se dozvíte také v přečteném článku. Piny a jejich funkce jsou vysvětleny v následující tabulce:
Název PIN |
Ostatní jména |
Popis |
Gnd |
Přízemní |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájecí kolík (tolerovatelný 3-5 V) |
SCK |
D0, SCL, CLK |
Funguje jako hodinový kolík. Používá se pro I2C i SPI |
SDA |
D1, MOSI |
Datový kolík modulu. Používá se pro IIC i SPI |
RES |
RST, RESET |
Resetuje modul (užitečné během SPI) |
DC |
A0 |
Datový příkazový kolík. Používá se pro protokol SPI |
CS |
Výběr čipu |
Užitečné, když se v protokolu SPI používá více než jeden modul |
Specifikace OLED:
- Ovladač OLED IC: SSD1306
- Rozlišení: 128 x 64
- Vizuální úhel:> 160 °
- Vstupní napětí: 3,3 V ~ 6 V
- Barva pixelu: modrá
- Pracovní teplota: -30 ° C ~ 70 ° C
Příprava senzoru MQ-135
Senzor plynu MQ-135 je senzor kvality vzduchu pro detekci široké škály plynů, včetně NH3, NOx, alkoholu, benzenu, kouře a CO2. Senzor MQ-135 lze zakoupit buď jako modul, nebo jako samotný senzor. V tomto projektu používáme modul senzoru MQ-135 k měření koncentrace CO2 v PPM. Schéma zapojení desky MQ-135 je uvedeno níže:
Zátěžový rezistor RL hraje velmi důležitou roli při fungování snímače. Tento rezistor mění svoji hodnotu odporu podle koncentrace plynu. Podle datového listu MQ-135 se hodnota zátěžového rezistoru může pohybovat kdekoli od 10KΩ do 47KΩ. Datový list doporučuje provést kalibraci detektoru na koncentraci alkoholu 100 ppm NH3 nebo 50 ppm alkoholu ve vzduchu a použít hodnotu odporu zátěže (RL) asi 20 KΩ. Pokud ale sledujete stopy PCB, abyste zjistili hodnotu svého RL na desce, můžete vidět zatěžovací rezistor 1KΩ (102).
Chcete-li tedy změřit příslušné hodnoty koncentrace CO2, musíte vyměnit rezistor 1KΩ za rezistor 22KΩ.
Schéma zapojení rozhraní MQ135 s Arduino
Kompletní schéma připojení plynového senzoru MQ-135 k Arduinu je uvedeno níže:
Obvod je velmi jednoduchý, protože připojujeme pouze senzor MQ-135 a modul OLED Display k Arduino Nano. Senzor plynu MQ-135 a modul displeje OLED jsou napájeny + 5 V a GND. Pin Analog Out snímače MQ-135 je připojen k pinu A0 Arduino Nano. Protože modul OLED Display využívá komunikaci SPI, navázali jsme komunikaci SPI mezi modulem OLED a Arduino Nano. Připojení jsou uvedena v následující tabulce:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Přízemní |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Po připojení hardwaru podle schématu zapojení by nastavení snímače Arduino MQ135 mělo vypadat nějak takto:
Výpočet R
Nyní, když známe hodnotu RL, pojďme na to, jak vypočítat hodnoty R o v čistém vzduchu. Zde použijeme MQ135.h k měření koncentrace CO2 ve vzduchu. Nejprve si tedy stáhněte knihovnu MQ-135, poté před čtením hodnot R o čidlo 24 hodin předehřívejte. Po předehřátí proces, pomocí níže kódu pro čtení R O hodnot:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Připojte senzor k pinu A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); zpoždění (1000); }
Nyní, jakmile se dostal R o hodnotách, přejděte na Dokumenty> Arduino> Knihovny> MQ135-hlavní složku a otevřete MQ135.h soubor a změnit hodnoty Rzátěž & RZERO.
/// Odpor zátěže na desce #define RLOAD 22.0 /// Kalibrační odpor při atmosférické úrovni CO2 #define RZERO 5804.99
Nyní přejděte dolů a nahraďte hodnotu ATMOCO2 aktuálním atmosférickým CO2, který je 411,29
/// Atmosférická hladina CO2 pro účely kalibrace #define ATMOCO2 397,13
Kód pro měření CO2 pomocí senzoru Arduino MQ135
Celý kód pro propojení senzoru MQ-135 s Arduino je uveden na konci dokumentu. Zde vysvětlujeme některé důležité části kódu Arduino MQ135.
Kód používá Adafruit_GFX , a Adafruit_SSD1306 , a MQ135.h knihovny. Tyto knihovny lze stáhnout ze správce knihoven v prostředí Arduino IDE a odtud je nainstalovat. Za tímto účelem otevřete Arduino IDE a přejděte na Sketch <Zahrnout knihovnu <Spravovat knihovny . Nyní vyhledejte Adafruit GFX a nainstalujte knihovnu Adafruit GFX od společnosti Adafruit.
Podobně nainstalujte knihovny Adafruit SSD1306 od společnosti Adafruit. Knihovnu MQ135 lze stáhnout zde.
Po instalaci knihoven do Arduino IDE spusťte kód zahrnutím potřebných souborů knihoven.
#include "MQ135.h" #include
Poté definujte šířku a výšku OLED. V tomto projektu používáme 128 × 64 SPI OLED displej. Proměnné SCREEN_WIDTH a SCREEN_HEIGHT můžete změnit podle svého zobrazení.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Poté definujte komunikační piny SPI, kde je připojen OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Poté vytvořte instanci displeje Adafruit s šířkou a výškou definovanou dříve pomocí komunikačního protokolu SPI.
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Poté definujte pin Arduino, kde je připojen senzor MQ-135.
int sensorIn = A0;
Nyní uvnitř funkce setup () inicializujte Serial Monitor s přenosovou rychlostí 9600 pro účely ladění. Inicializujte také OLED displej pomocí funkce begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Uvnitř funkce loop () nejprve přečtěte hodnoty signálu na analogovém pinu Arduina voláním funkce analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Pak na dalším řádku zavolejte gasSensor.getPPM () a vypočítejte hodnoty PPM. Hodnoty PPM se počítají pomocí zatěžovacího rezistoru R 0 a čtení z analogového kolíku.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Poté nastavte velikost a barvu textu pomocí setTextSize () a setTextColor () .
display.setTextSize (1); display.setTextColor (BÍLÁ);
Na dalším řádku pak pomocí metody setCursor (x, y) definujte pozici, kde text začíná. A tiskněte hodnoty CO2 na OLED displeji pomocí funkce 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);
A v poslední zavolejte metodu display () pro zobrazení textu na OLED displeji.
display.display (); display.clearDisplay ();
Testování propojení senzoru MQ-135
Jakmile je hardware a kód připraven, je čas otestovat senzor. Za tímto účelem připojte Arduino k notebooku, vyberte desku a port a stiskněte tlačítko nahrávání. Poté otevřete sériový monitor a počkejte nějakou dobu (proces předehřátí), poté uvidíte konečná data. Hodnoty se zobrazí na OLED displeji, jak je uvedeno níže:
Takto lze senzor MQ-135 použít k měření přesného CO2 ve vzduchu. Kompletní Arduino kód senzoru kvality vzduchu MQ135 a pracovní video jsou uvedeny níže. Máte-li jakékoli pochybnosti, nechte je v sekci komentářů.