- Tarvittavat komponentit
- Painovoimainen infrapuna-CO2-anturi
- 0,96 tuuman OLED-näyttömoduuli
- Piirikaavio
- Arduino-koodi CO2-pitoisuuden mittaamiseksi
- Painovoima-infrapuna-CO2-anturin rajapinnan testaaminen
Hiilidioksidin lisääntyvästä ilmapitoisuudesta on tullut vakava ongelma. NOAA-raportin mukaan otsonin hiilidioksidipitoisuus on saavuttanut 0,0385 prosenttia (385 ppm) ja se on korkein määrä 2,1 miljoonassa vuodessa. Tämä tarkoittaa, että miljoonassa ilmapartikkelissa on 385 hiilidioksidihiukkaa. Tämä nouseva hiilidioksiditaso on vaikuttanut ympäristöön huonosti ja johtanut meidät kohtaamaan esimerkiksi ilmastonmuutoksen ja ilmaston lämpenemisen. Tielle on asennettu useita ilmanlaadun mittauslaitteita CO2-tason ilmoittamiseksi, mutta voimme myös rakentaa DIY-CO2-mittalaitteen ja asentaa sen alueellemme.
Tässä opetusohjelmassa aiomme liittää painovoima-infrapuna-CO2-anturin Arduinoon mittaamaan hiilidioksidipitoisuutta PPM: ssä. Gravity Infrared CO2 Sensor on erittäin tarkka analoginen CO2-anturi. Se mittaa hiilidioksidipitoisuuden välillä 0 - 5000 ppm. Voit myös tarkistaa edelliset projektimme, joissa käytimme MQ135-kaasuanturia, Sharp GP2Y1014AU0F -anturia ja Nova PM -anturia SDS011 rakentaaksemme ilmanlaatumittarin.
Tarvittavat komponentit
- Arduino Nano
- Painovoimainen infrapuna-CO2-anturi V1.1
- Neulalangat
- 0,96 tuuman SPI OLED -näyttömoduuli
- Leipälauta
Painovoimainen infrapuna-CO2-anturi
Gravity Infrared CO2 Sensor V1.1 on viimeisin erittäin tarkka analoginen infrapuna-CO2-anturi, jonka DFRobot on julkaissut. Tämä anturi perustuu ei-dispergoituvaan infrapunatekniikkaan (NDIR), ja sillä on hyvä valikoivuus ja happivapaus. Se integroi lämpötilan kompensoinnin ja tukee DAC-lähtöä. Tämän anturin tehollinen mittausalue on 0-5000ppm tarkkuudella ± 50ppm + 3%. Tätä infrapuna-CO2-anturia voidaan käyttää LVI: ssä, sisäilman laadun seurannassa, teollisuusprosessissa ja turvallisuussuojauksessa, maataloudessa ja karjanhoitoprosessien seurannassa.
Infrapuna-CO2-anturin pinout:
Kuten aiemmin mainittiin, infrapuna-CO2-anturissa on 3-napainen liitin. Seuraava kuva ja taulukko esittävät infrapuna-CO2-anturin nastojen määritykset:
PIN-numero |
PIN-nimi |
Kuvaus |
---|---|---|
1 |
Signaali |
Analoginen lähtö (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Infrapuna-CO2-anturin tekniset tiedot ja ominaisuudet:
- Kaasun tunnistus: Hiilidioksidi (CO2)
- Käyttöjännite: 4,5 ~ 5,5 V DC
- Esilämmitysaika: 3min
- Vasteaika: 120 s
- Käyttölämpötila: 0 ~ 50 ℃
- Käyttökosteus: 0 ~ 95% RH (ei kondensoitumista)
- Vedenpitävä ja korroosionesto
- Korkea elinkaari
- Vesihöyryn esto
0,96 tuuman OLED-näyttömoduuli
OLED (Organic Light-Emitting Diodes) on itse valoa lähettävä tekniikka, joka on rakennettu asettamalla sarja orgaanisia ohuita kalvoja kahden johtimen väliin. Kirkas valo syntyy, kun sähkövirta kohdistetaan näihin kalvoihin. OLED-laitteet käyttävät samaa tekniikkaa kuin televisiot, mutta niissä on vähemmän pikseleitä kuin useimmissa televisioissamme.
Tässä projektissa käytämme yksiväristä 7-nastaista SSD1306 0,96 tuuman OLED-näyttöä. Se voi toimia kolmella eri tiedonsiirtoprotokollalla: SPI 3 -johdotila, nelijohtiminen SPI-tila ja I2C-tila. Nastat ja sen toiminnot on selitetty alla olevassa taulukossa:
Olemme jo käsitelleet OLED: ää ja sen tyyppejä yksityiskohtaisesti edellisessä artikkelissa.
PIN-nimi |
Muut nimet |
Kuvaus |
Gnd |
Maa |
Moduulin maadoitettu tappi |
Vdd |
Vcc, 5 V |
Virtatappi (3-5V siedettävä) |
SCK |
D0, SCL, CLK |
Toimii kellotapina. Käytetään sekä I2C: lle että SPI: lle |
SDA |
D1, MOSI |
Moduulin datanasta. Käytetään sekä IIC: lle että SPI: lle |
RES |
RST, NOLLAA |
Nollaa moduulin (hyödyllinen SPI: n aikana) |
DC |
A0 |
Data Command -tappi. Käytetään SPI-protokollaan |
CS |
Sirun valinta |
Hyödyllinen, kun SPI-protokollassa käytetään useampaa kuin yhtä moduulia |
OLED-tekniset tiedot:
- OLED-ohjaimen IC: SSD1306
- Tarkkuus: 128 x 64
- Visuaalinen kulma:> 160 °
- Tulojännite: 3,3 V ~ 6 V
- Pikselin väri: sininen
- Käyttölämpötila: -30 ° C ~ 70 ° C
Lue lisää OLED: stä ja sen liitännöistä eri mikro-ohjaimiin linkkiä seuraamalla.
Piirikaavio
Kytkentäkaavio Arduinon painovoima-analogisen infrapuna-CO2-anturin rajapinnalle:
Piiri on hyvin yksinkertainen, koska yhdistämme vain gravitaatio-infrapuna-CO2-anturin ja OLED-näyttömoduulin Arduino nanoon. Infrapuna-CO2-anturi ja OLED-näyttömoduuli saavat virran + 5 V: lla ja GND: llä. CO2-anturin Signal (Analog Out) -tappi on kytketty Arduino Nanon A0-napaan. Koska OLED-näyttömoduuli käyttää SPI-viestintää, olemme perustaneet SPI-tiedonsiirron OLED-moduulin ja Arduino Nanon välille. Liitännät on esitetty alla olevassa taulukossa:
S. ei |
OLED-moduulin tappi |
Arduino Pin |
1 |
GND |
Maa |
2 |
VCC |
5 V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Kun laitteisto on kytketty kytkentäkaavion mukaisesti, sen pitäisi näyttää jotain alla olevalta:
Arduino-koodi CO2-pitoisuuden mittaamiseksi
Tämän Arduino- projektin Gravity Analog -infrapuna-CO2-anturin täydellinen koodi on asiakirjan lopussa. Tässä selitämme joitain tärkeitä koodin osia.
Koodi käyttää Adafruit_GFX , ja Adafruit_SSD1306 kirjastot. Nämä kirjastot voidaan ladata Arduino IDE: n Library Managerista ja asentaa se sieltä. Tätä varten avaa Arduino IDE ja siirry kohtaan Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja . Etsi nyt Adafruit GFX ja asenna Adafruit GFX -kirjasto.
Asenna vastaavasti Adafruit SSD1306 -kirjastot. Infrapuna-CO2-anturi ei vaadi kirjastoa, koska luemme jännitearvot suoraan Arduinon analogisesta nastasta.
Kun olet asentanut kirjastot Arduino IDE -ohjelmaan, käynnistä koodi sisällyttämällä tarvittavat kirjastotiedostot. Pölyanturi ei vaadi kirjastoa, koska lukeminen otetaan suoraan Arduinon analogisesta nastasta.
#sisältää
Määritä sitten OLED-leveys ja -korkeus. Tässä projektissa käytämme 128 × 64 SPI OLED -näyttöä. Voit muuttaa muuttujia SCREEN_WIDTH ja SCREEN_HEIGHT näytön mukaan.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Määritä sitten SPI-tiedonsiirtonastat, joihin OLED-näyttö on kytketty.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Luo sitten Adafruit-näyttöesimerkki, jonka leveys ja korkeus on määritelty aiemmin SPI-yhteyskäytännöllä.
Adafruit_SSD1306-näyttö (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Määritä sen jälkeen Arduino-nasta, johon CO2-anturi on kytketty.
int-anturiIn = A0;
Aloita nyt setup () -toiminnon sisällä Serial Monitor 9600 -siirtonopeudella virheenkorjausta varten. Alusta myös OLED-näyttö Start () -toiminnolla.
Sarjan alku (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (OLETUS);
Loop- toiminnon sisällä lue ensin Arduinon analogisen nastan signaaliarvot kutsumalla analogRead () -toimintoa. Muunna tämän jälkeen nämä analogisen signaalin arvot jännite-arvoiksi.
void loop () {int sensorValue = analogRead (sensorIn); kelluva jännite = anturin arvo * (5000 / 1024,0);
Tämän jälkeen vertaa jännitearvoja. Jos jännite on 0 V, se tarkoittaa, että anturissa on tapahtunut jokin ongelma. Jos jännite on yli 0 V, mutta alle 400 V, se tarkoittaa, että anturi on edelleen esilämmitysprosessissa.
if (jännite == 0) {Sarja.println ("vika"); } else if (jännite <400) {Serial.println ("esilämmitys"); }
Jos jännite on yhtä suuri tai suurempi kuin 400 V, muunna se sitten CO2-pitoisuusarvoiksi.
else {int jännitteen_ero = jännite-400; kellukonsentraatio = jännite-ero * 50,0 / 16,0;
Tämän jälkeen määritä tekstin koko ja tekstin väri käyttämällä setTextSize () ja setTextColor () .
display.setTextSize (1); display.setTextColor (VALKOINEN);
Määritä sitten seuraavalla rivillä sijainti, josta teksti alkaa käyttää setCursor (x, y) -menetelmää. Ja tulosta CO2-arvot OLED-näytölle käyttämällä toimintoa display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (pitoisuus);
Ja viimeisessä, kutsu näyttö () -menetelmää näyttääksesi tekstin OLED-näytössä.
display.display (); display.clearDisplay ();
Painovoima-infrapuna-CO2-anturin rajapinnan testaaminen
Kun laitteisto ja koodi ovat valmiit, on aika testata anturi. Liitä Arduino kannettavaan tietokoneeseen, valitse alusta ja portti ja paina latauspainiketta. Avaa sitten sarjamittari ja odota jonkin aikaa (esilämmitys), niin näet lopulliset tiedot.
Arvot näytetään OLED-näytöllä alla olevan kuvan mukaisesti:
Huomaa: Anna anturin lämmetä noin 24 tuntia ennen anturin käyttöä saadaksesi oikeat PPM-arvot. Kun kytkin sensorin päälle ensimmäistä kertaa, lähtö CO2-pitoisuus oli 1500 - 1700 PPM ja 24 tunnin lämmitysprosessin jälkeen lähtö CO2-pitoisuus laski 450 PPM: stä 500 PPM: ään, jotka ovat oikeita PPM-arvoja. Joten anturi on kalibroitava ennen sen käyttöä CO2-pitoisuuden mittaamiseen.
Näin infrapuna-CO2-anturia voidaan käyttää mittaamaan tarkka CO2-pitoisuus ilmassa. Koko koodi ja toimiva video on annettu alla. Jos sinulla on epäilyksiä, jätä ne kommenttiosioon tai käytä foorumeitamme tekniseen apuun.