- Súčasti sú povinné
- 0,96 'OLED displejový modul
- Príprava snímača MQ-135
- Schéma zapojenia do rozhrania MQ135 s Arduino
- Výpočet R
- Kód na meranie CO2 pomocou senzora Arduino MQ135
- Testovanie prepojenia senzora MQ-135
Hladina atmosférického CO2 na zemi zo dňa na deň rastie. Globálny priemerný atmosférický oxid uhličitý v roku 2019 bol 409,8 častí na milión a v októbri-2020 je to 411,29. Oxid uhličitý je kľúčovým skleníkovým plynom a je zodpovedný za zhruba tri štvrtiny emisií. Takže sledovanie hladiny CO2 takisto začala získavať na význame.
V našom predchádzajúcom projekte sme na meranie koncentrácie CO2 vo vzduchu použili Gravity Infrared CO2 senzor. V tomto projekte použijeme na meranie koncentrácie CO2 senzor MQ-135 s Arduinom. Namerané hodnoty koncentrácie CO2 sa zobrazia na module OLED a naposledy tiež porovnáme namerané hodnoty senzora Arduino MQ-135 s nameraným infračerveným senzorom CO2. Okrem CO2 sme pomocou Arduina merali aj koncentráciu LPG, dymu a amoniaku.
Súčasti sú povinné
- Arduino Nano
- Senzor MQ-135
- Prepojovacie drôty
- 0,96 'SPI OLED displejový modul
- Nepál
- Rezistor 22KΩ
0,96 'OLED displejový modul
OLED (Organic Light Emitting Diodes) je technológia samočinného vyžarovania svetla skonštruovaná umiestnením série organických tenkých vrstiev medzi dva vodiče. Keď sa na tieto filmy privádza elektrický prúd, vytvára sa jasné svetlo. OLED používajú rovnakú technológiu ako televízory, ale majú menej pixelov ako vo väčšine našich televízorov.
Pre tento projekt používame Monochrome 7-pin SSD1306 0,96 ”OLED displej. Môže pracovať na troch rôznych komunikačných protokoloch: režim SPI 3 Wire, režim SPI so štyrmi vodičmi a režim I2C. Prečítajte si tiež prepojený článok, kde sa dozviete viac o základných vlastnostiach OLED displeja a jeho typoch. Kolíky a ich funkcie sú vysvetlené v nasledujúcej tabuľke:
Názov špendlíka |
Ostatné mená |
Popis |
Gnd |
Uzemnenie |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájací kolík (tolerovateľný 3 - 5 V) |
SCK |
D0, SCL, CLK |
Funguje ako špendlík hodín. Používa sa pre I2C aj SPI |
SDA |
D1, MOSI |
Dátový kolík modulu. Používa sa pre IIC aj SPI |
OZE |
RST, RESET |
Resetuje modul (užitočné počas SPI) |
DC |
A0 |
PIN príkazového riadku. Používa sa pre protokol SPI |
CS |
Vyberte čip |
Užitočné, ak sa v protokole SPI používa viac ako jeden modul |
Špecifikácie OLED:
- Ovládač OLED IC: SSD1306
- Rozlíšenie: 128 x 64
- Vizuálny uhol:> 160 °
- Vstupné napätie: 3,3 V ~ 6 V
- Farba pixelov: modrá
- Pracovná teplota: -30 ° C ~ 70 ° C
Príprava snímača MQ-135
MQ-135 Gas Sensor je snímač kvality vzduchu na detekciu širokej škály plynov vrátane NH3, NOx, alkoholu, benzénu, dymu a CO2. Senzor MQ-135 je možné zakúpiť buď ako modul, alebo ako samotný senzor. V tomto projekte používame modul senzora MQ-135 na meranie koncentrácie CO2 v PPM. Schéma zapojenia dosky MQ-135 je uvedená nižšie:
Zaťažovací rezistor RL hrá veľmi dôležitú úlohu pri fungovaní snímača. Tento rezistor mení svoju hodnotu odporu podľa koncentrácie plynu. Podľa údajového listu MQ-135 sa hodnota záporného odporu môže pohybovať kdekoľvek od 10KΩ do 47KΩ. Údajový list odporúča kalibrovať detektor na koncentráciu alkoholu 100 ppm NH3 alebo 50 ppm alkoholu vo vzduchu a použiť hodnotu odporu záťaže (RL) asi 20 KΩ. Ak ale sledujete stopy po DPS, aby ste našli hodnotu vášho RL na doske, môžete vidieť záťažový rezistor 1KΩ (102).
Aby ste teda mohli zmerať príslušné hodnoty koncentrácie CO2, musíte vymeniť rezistor 1KΩ za rezistor 22KΩ.
Schéma zapojenia do rozhrania MQ135 s Arduino
Kompletná schéma pripojenia plynového senzora MQ-135 k Arduinu je uvedená nižšie:
Obvod je veľmi jednoduchý, pretože pripájame iba senzor MQ-135 a modul OLED Display k Arduino Nano. Senzor plynu MQ-135 a modul displeja OLED sú napájané s napätím + 5 V a GND. Pin Analog Out senzora MQ-135 je pripojený k pinu A0 Arduino Nano. Pretože modul OLED Display využíva komunikáciu SPI, nadviazali sme komunikáciu SPI medzi modulom OLED a Arduino Nano. Pripojenia sú zobrazené v nasledujúcej tabuľke:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Uzemnenie |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
OZE |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Po pripojení hardvéru podľa schémy zapojenia by malo nastavenie snímača Arduino MQ135 vyzerať asi takto:
Výpočet R
Teraz, keď poznáme hodnotu RL, poďme ďalej k tomu, ako vypočítať hodnoty R o v čistom vzduchu. Tu použijeme MQ135.h na meranie koncentrácie CO2 vo vzduchu. Najprv si teda stiahnite knižnicu MQ-135, potom pred načítaním hodnôt R o predhrievajte senzor 24 hodín. Po procese predohrevu prečítajte pomocou nasledujúcich kódov hodnoty R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Pripojte senzor k kolíku A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); oneskorenie (1 000); }
Teraz, akonáhle sa dostal R o hodnotách, prejdite na Dokumenty> Arduino> Knižnice> MQ135-hlavnú zložku a otvorte MQ135.h súbor a zmeniť hodnoty Rzátěž & RZERO.
/// Zaťažovací odpor na doske #define RLOAD 22.0 /// Kalibračný odpor pri atmosférickej hladine CO2 #define RZERO 5804.99
Teraz posuňte zobrazenie nadol a nahraďte hodnotu ATMOCO2 aktuálnym atmosférickým CO2, ktorý je 411,29
/// Atmosférická hladina CO2 na účely kalibrácie #define ATMOCO2 397,13
Kód na meranie CO2 pomocou senzora Arduino MQ135
Celý kód na prepojenie senzora MQ-135 s Arduinom je uvedený na konci dokumentu. Tu vysvetľujeme niektoré dôležité časti kódu Arduino MQ135.
Kód používa Adafruit_GFX , a Adafruit_SSD1306 , a MQ135.h knižnice. Tieto knižnice je možné stiahnuť z aplikácie Library Manager v Arduino IDE a odtiaľ ich nainštalovať. Za týmto účelom otvorte Arduino IDE a choďte na Skica <Zahrnúť knižnicu <Spravovať knižnice . Teraz vyhľadajte Adafruit GFX a nainštalujte si knižnicu Adafruit GFX od spoločnosti Adafruit.
Podobne nainštalujte knižnice Adafruit SSD1306 od spoločnosti Adafruit. Knižnicu MQ135 si môžete stiahnuť tu.
Po inštalácii knižníc do Arduino IDE spustite kód zahrnutím potrebných súborov knižníc.
#include "MQ135.h" #include
Potom definujte šírku a výšku OLED. V tomto projekte používame 128 × 64 SPI OLED displej. Premenné SCREEN_WIDTH a SCREEN_HEIGHT môžete zmeniť podľa svojho zobrazenia.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Potom definujte komunikačné piny SPI, kde je pripojený OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Potom vytvorte inštanciu displeja Adafruit so šírkou a výškou definovanou skôr pomocou komunikačného protokolu SPI.
Displej Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Potom definujte pin Arduino, kde je pripojený snímač MQ-135.
int senzorIn = A0;
Teraz vo vnútri funkcie setup () inicializujte Serial Monitor s prenosovou rýchlosťou 9600 na účely ladenia. Inicializujte tiež OLED displej pomocou funkcie start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Vo vnútri funkcie loop () najskôr načítajte hodnoty signálu na analógovom kolíku Arduina zavolaním funkcie analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Potom v ďalšom riadku zavolajte gasSensor.getPPM () a vypočítajte hodnoty PPM. Hodnoty PPM sa počítajú pomocou zaťažovacieho odporu R ° a čítania z analógového kolíka.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Sériový výtlačok (ppm);
Potom nastavte veľkosť a farbu textu pomocou metód setTextSize () a setTextColor () .
display.setTextSize (1); display.setTextColor (BIELA);
Potom v ďalšom riadku definujte pozíciu, kde text začína, pomocou metódy setCursor (x, y) . A tlačte hodnoty CO2 na OLED displeji pomocou funkcie 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 poslednej zavoláme metódu display () na zobrazenie textu na OLED displeji.
display.display (); display.clearDisplay ();
Testovanie prepojenia senzora MQ-135
Keď je hardvér a kód pripravený, je čas testovať snímač. Za týmto účelom pripojte Arduino k notebooku, vyberte dosku a port a stlačte tlačidlo nahrávania. Potom otvorte sériový monitor a počkajte nejaký čas (proces predhrievania), potom uvidíte konečné údaje. Hodnoty sa zobrazia na OLED displeji, ako je uvedené nižšie:
Takto sa dá použiť senzor MQ-135 na meranie presného CO2 vo vzduchu. Kompletný Arduino kód senzora kvality vzduchu MQ135 a pracovné video sú uvedené nižšie. Ak máte pochybnosti, nechajte ich v sekcii komentárov.