- Nepieciešamās sastāvdaļas
- Gravitācijas infrasarkanais CO2 sensors
- 0,96 'OLED displeja modulis
- Ķēdes shēma
- Arduino kods CO2 koncentrācijas mērīšanai
- Gravitācijas infrasarkanā CO2 sensora mijiedarbības pārbaude
Pieaugošā oglekļa dioksīda koncentrācija gaisā tagad ir kļuvusi par nopietnu problēmu. Saskaņā ar NOAA ziņojumu ozona CO2 koncentrācija ir sasniegusi 0,0385 procentus (385 ppm), un tā ir lielākā summa 2,1 miljona gadu laikā. Tas nozīmē, ka vienā miljonā gaisa daļiņu ir 385 oglekļa dioksīda daļiņas. Šis pieaugošais CO2 līmenis ir slikti ietekmējis vidi un licis mums saskarties ar tādu situāciju kā klimata pārmaiņas un globālā sasilšana. Uz ceļiem ir uzstādītas daudzas gaisa kvalitātes mērierīces, lai noteiktu CO2 līmeni, taču mēs varam arī uzbūvēt DIY CO2 mērīšanas ierīci un instalēt to savā apkārtnē.
Šajā apmācībā mēs saskarsimies ar gravitācijas infrasarkano staru CO2 sensoru ar Arduino, lai izmērītu CO2 koncentrāciju PPM. Gravitācijas infrasarkanais CO2 sensors ir augstas precizitātes analogais CO2 sensors. Tas mēra CO2 saturu diapazonā no 0 līdz 5000 ppm. Varat arī pārbaudīt mūsu iepriekšējos projektus, kur gaisa kvalitātes monitora izveidošanai mēs izmantojām MQ135 gāzes sensoru, Sharp GP2Y1014AU0F sensoru un Nova PM sensoru SDS011.
Nepieciešamās sastāvdaļas
- Arduino Nano
- Gravitācijas infrasarkanais CO2 sensors V1.1
- Džemperu vadi
- 0,96 'SPI OLED displeja modulis
- Maizes dēlis
Gravitācijas infrasarkanais CO2 sensors
Gravitācijas infrasarkanais CO2 sensors V1.1 ir jaunākais augstas precizitātes analogais infrasarkanais CO2 sensors, ko izdevis DFRobot. Šis sensors ir balstīts uz nedispersas infrasarkanās (NDIR) tehnoloģijas un tam ir laba selektivitāte un atkarība no skābekļa. Tas integrē temperatūras kompensāciju un atbalsta DAC izvadi. Šī sensora efektīvais mērījumu diapazons ir no 0 līdz 5000ppm ar precizitāti ± 50ppm + 3%. Šo infrasarkano staru CO2 sensoru var izmantot HVAC, iekštelpu gaisa kvalitātes uzraudzībā, rūpniecisko procesu un drošības aizsardzības uzraudzībā, lauksaimniecībā un lopkopības ražošanas procesu uzraudzībā.
Infrasarkanais CO2 sensora kontakts:
Kā minēts iepriekš, infrasarkanais CO2 sensors ir aprīkots ar 3 kontaktu savienotāju. Zemāk redzamajā attēlā un tabulā parādīti infrasarkanā CO2 sensora tapu piešķiršana:
PIN Nr. |
Piespraudes nosaukums |
Apraksts |
---|---|---|
1 |
Signāls |
Analogā izeja (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Infrasarkanā CO2 sensora specifikācijas un funkcijas:
- Gāzes noteikšana: oglekļa dioksīds (CO2)
- Darba spriegums: 4,5 ~ 5,5 V DC
- Uzkarsēšanas laiks: 3min
- Atbildes laiks: 120 s
- Darba temperatūra: 0 ~ 50 ℃
- Darba mitrums: 0 ~ 95% RH (bez kondensāta)
- Ūdensizturīgs un pretkorozijas līdzeklis
- Augsts cikla mūžs
- Pret ūdens tvaiku iejaukšanās
0,96 'OLED displeja modulis
OLED (organiskās gaismu izstarojošās diodes) ir automātiska gaismu izstarojoša tehnoloģija, kas konstruēta, starp diviem vadītājiem ievietojot vairākas organiskas plānas plēves. Spilgta gaisma rodas, ja šīm plēvēm tiek uzlikta elektriskā strāva. OLED izmanto to pašu tehnoloģiju kā televizori, taču tiem ir mazāk pikseļu nekā lielākajā daļā mūsu televizoru.
Šajā projektā mēs izmantojam vienkrāsainu 7 kontaktu SSD1306 0,96 ”OLED displeju. Tas var darboties trīs dažādos sakaru protokolos: SPI 3 vadu režīmā, SPI četru vadu režīmā un I2C režīmā. Adatas un tās funkcijas ir paskaidrotas zemāk esošajā tabulā:
Mēs jau detalizēti aplūkojām OLED un tā veidus iepriekšējā rakstā.
Piespraudes nosaukums |
Citi vārdi |
Apraksts |
Gnd |
Zeme |
Moduļa zemējuma tapa |
Vdd |
Vcc, 5V |
Barošanas tapa (3-5V pieļaujama) |
SCK |
D0, SCL, CLK |
Darbojas kā pulksteņa tapa. Izmanto gan I2C, gan SPI |
SDA |
D1, MOSI |
Moduļa datu tapa. Izmanto gan IIC, gan SPI |
RES |
RST, ATIESTATĪT |
Modulis tiek atiestatīts (noderīgs SPI laikā) |
DC |
A0 |
Datu komandas piespraude. Izmanto SPI protokolam |
CS |
Chip Select |
Noderīgi, ja SPI protokolā tiek izmantoti vairāki moduļi |
OLED specifikācijas:
- OLED draivera IC: SSD1306
- Izšķirtspēja: 128 x 64
- Vizuālais leņķis:> 160 °
- Ieejas spriegums: 3.3V ~ 6V
- Pikseļu krāsa: zila
- Darba temperatūra: -30 ° C ~ 70 ° C
Uzziniet vairāk par OLED un tā saskarni ar dažādiem mikrokontrolleriem, sekojot saitei.
Ķēdes shēma
Arduino gravitācijas analogā infrasarkanā CO2 sensora saskarnes shēmas shēma ir sniegta zemāk:
Ķēde ir ļoti vienkārša, jo mēs savienojam tikai Gravity infrasarkano staru CO2 sensoru un OLED displeja moduli ar Arduino Nano. Infrasarkanais CO2 sensors un OLED displeja modulis tiek darbināti ar + 5V un GND. CO2 sensora signāla (analogās izejas) tapa ir savienota ar Arduino Nano A0 tapu. Tā kā OLED displeja modulis izmanto SPI komunikāciju, mēs esam izveidojuši SPI komunikāciju starp OLED moduli un Arduino Nano. Savienojumi ir parādīti zemāk esošajā tabulā:
S.No |
OLED moduļa tapa |
Arduino tapa |
1 |
GND |
Zeme |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Pēc aparatūras pievienošanas saskaņā ar shēmu tai vajadzētu izskatīties šādi:
Arduino kods CO2 koncentrācijas mērīšanai
Pilns šī projekta Arduino Gravity Analog infrasarkanā CO2 sensora kods ir norādīts dokumenta beigās. Šeit mēs izskaidrojam dažas svarīgas koda daļas.
Kods izmanto Adafruit_GFX , un Adafruit_SSD1306 bibliotēkas. Šīs bibliotēkas var lejupielādēt no bibliotēku pārvaldnieka Arduino IDE un instalēt to no turienes. Lai to izdarītu, atveriet Arduino IDE un dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas . Tagad meklējiet Adafruit GFX un instalējiet Adafruit GFX bibliotēku.
Līdzīgi instalējiet Adafruit SSD1306 bibliotēkas. Infrasarkanajam CO2 sensoram nav nepieciešama bibliotēka, jo sprieguma vērtības mēs nolasām tieši no Arduino analogās tapas.
Pēc bibliotēku instalēšanas Arduino IDE sāciet kodu, iekļaujot nepieciešamos bibliotēkas failus. Putekļu sensoram nav nepieciešama bibliotēka, jo lasīšana tiek veikta tieši no Arduino analogās tapas.
# iekļaut
Pēc tam definējiet OLED platumu un augstumu. Šajā projektā mēs izmantojam 128 × 64 SPI OLED displeju. Mainītājus SCREEN_WIDTH un SCREEN_HEIGHT varat mainīt atbilstoši savam displejam.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Pēc tam definējiet SPI sakaru tapas, kur ir pievienots OLED displejs.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Pēc tam izveidojiet Adafruit displeja gadījumu ar platumu un augstumu, kas iepriekš noteikts ar SPI sakaru protokolu.
Adafruit_SSD1306 displejs (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Pēc tam definējiet Arduino tapu vietā, kur ir pievienots CO2 sensors.
int sensorsIn = A0;
Tagad iestatīšanas () funkcijas iekšpusē inicializējiet sērijas monitoru ar 9600 datu pārraides ātrumu atkļūdošanas vajadzībām. Inicializējiet arī OLED displeju ar sākuma () funkciju.
Sērijas sākums (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Funkcijas loop () iekšpusē vispirms nolasiet signāla vērtības Arduino analogajā tapā, izsaucot funkciju analogRead () . Pēc tam pārveidojiet šīs analogās signāla vērtības sprieguma vērtībās.
void loop () {int sensorsValue = analogRead (sensorIn); pludiņa spriegums = sensorsValue * (5000 / 1024,0);
Pēc tam salīdziniet sprieguma vērtības. Ja spriegums ir 0 V, tas nozīmē, ka ar sensoru ir notikusi kāda problēma. Ja spriegums ir lielāks par 0 V, bet mazāks par 400 V, tas nozīmē, ka sensors joprojām atrodas iepriekšējas sildīšanas procesā.
if (spriegums == 0) {Serial.println ("Bojājums"); } else if (spriegums <400) {Serial.println ("priekšsildīšana"); }
Ja spriegums ir vienāds vai lielāks par 400 V, tad pārveidojiet to par CO2 koncentrācijas vērtībām.
else {int voltage_diference = spriegums-400; pludiņa koncentrācija = sprieguma starpība * 50,0 / 16,0;
Pēc tam iestatiet teksta izmēru un krāsu, izmantojot setTextSize () un setTextColor () .
display.setTextSize (1); display.setTextColor (BALTS);
Pēc tam nākamajā rindā definējiet pozīciju, kurā teksts sākas, izmantojot metodi setCursor (x, y) . Un izdrukājiet CO2 vērtības OLED displejā, izmantojot display.println () funkciju.
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentrācija);
Un pēdējā, izsauciet display () metodi, lai parādītu tekstu OLED Display.
display.display (); display.clearDisplay ();
Gravitācijas infrasarkanā CO2 sensora mijiedarbības pārbaude
Kad aparatūra un kods ir gatavi, ir pienācis laiks pārbaudīt sensoru. Lai to izdarītu, pievienojiet Arduino klēpjdatoram, atlasiet Board un Port un nospiediet augšupielādes pogu. Pēc tam atveriet sērijveida monitoru un pagaidiet kādu laiku (priekšsildīšanas process), tad jūs redzēsiet galīgos datus.
Vērtības tiks parādītas OLED displejā, kā parādīts zemāk:
Piezīme: Pirms sensora izmantošanas ļaujiet sensoram uzkarsēt apmēram 24 stundas, lai iegūtu pareizas PPM vērtības. Kad sensoru darbināju pirmo reizi, izejas CO2 koncentrācija bija no 1500 PPM līdz 1700PPM un pēc 24 stundu ilgas uzsildīšanas izejas CO2 koncentrācija samazinājās līdz 450 PPM līdz 500 PPM, kas ir pareizās PPM vērtības. Tāpēc ir nepieciešams kalibrēt sensoru pirms tā izmantošanas CO2 koncentrācijas mērīšanai.
Šādi infrasarkano staru CO2 sensoru var izmantot precīzas CO2 koncentrācijas mērīšanai gaisā. Pilns kods un darba video ir norādīts zemāk. Ja jums ir kādas šaubas, atstājiet tos komentāru sadaļā vai izmantojiet mūsu forumus tehniskai palīdzībai.