- Komponenter kreves
- Gravity Infrarød CO2-sensor
- 0,96 'OLED-skjermmodul
- Kretsdiagram
- Arduino-kode for å måle CO2-konsentrasjon
- Testing av grensesnittet for gravitasjonsinfrarød CO2-sensor
Den økende konsentrasjonen av karbondioksid i luften har blitt et alvorlig problem nå. I følge NOAA-rapporten har CO2-konsentrasjonen av ozon nådd 0,0385 prosent (385 ppm) og er den høyeste mengden på 2,1 millioner år. Dette betyr at det er 385 partikler av karbondioksid i en million luftpartikler. Dette økende CO2-nivået har påvirket miljøet dårlig og ført oss til å møte situasjonen som klimaendringer og global oppvarming. Det er mange måleenheter for luftkvalitet som er installert på veiene for å fortelle CO2-nivået, men vi kan også bygge en DIY CO2-måleenhet og kan installere den i vårt område.
I denne opplæringen skal vi grensesnitt Gravity Infrared CO2 Sensor med Arduino for å måle CO2-konsentrasjonen i PPM. Gravity Infrarød CO2-sensor er en analog analog CO2-sensor med høy presisjon. Den måler CO2-innholdet i området 0 til 5000 ppm. Du kan også sjekke våre tidligere prosjekter der vi brukte MQ135 gassføler, Sharp GP2Y1014AU0F-sensor og Nova PM-sensor SDS011 for å bygge en luftkvalitetsmonitor.
Komponenter kreves
- Arduino Nano
- Gravity Infrarød CO2-sensor V1.1
- Jumper Wires
- 0,96 'SPI OLED-skjermmodul
- Brettbrett
Gravity Infrarød CO2-sensor
Gravity Infrared CO2 Sensor V1.1 er den siste analoge infrarøde CO2-sensoren med høy presisjon, utgitt av DFRobot. Denne sensoren er basert på ikke-dispersiv infrarød (NDIR) teknologi og har god selektivitet og oksygenfri avhengighet. Den integrerer temperaturkompensasjon og støtter DAC-utgang. Det effektive måleområdet til denne sensoren er fra 0 til 5000 ppm med en nøyaktighet på ± 50 ppm + 3%. Denne infrarøde CO2-sensoren kan brukes i HVAC, overvåking av innendørs luftkvalitet, industriell prosess og sikkerhetsbeskyttelse, landbruk og husdyrproduksjon.
Infrarød CO2-sensor Pinout:
Som nevnt tidligere kommer infrarød CO2-sensor med en 3-pinners kontakt. Figuren og tabellen nedenfor viser pin-tildelingene for infrarød CO2-sensor:
Pin nr. |
Pin-navn |
Beskrivelse |
---|---|---|
1 |
Signal |
Analog utgang (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5V) |
3 |
GND |
GND |
Infrarød CO2-sensor Spesifikasjoner og funksjoner:
- Gassdeteksjon: karbondioksid (CO2)
- Driftsspenning: 4,5 ~ 5,5V DC
- Forvarmingstid: 3min
- Svartid: 120s
- Driftstemperatur: 0 ~ 50 ℃
- Driftsfuktighet: 0 ~ 95% RF (ingen kondens)
- Vanntett og korrosjonshindrende
- Liv med høy syklus
- Anti-vanndamp interferens
0,96 'OLED-skjermmodul
OLED (Organic Light-Emitting Diodes) er en selvlysende teknologi, konstruert ved å plassere en serie organiske tynne filmer mellom to ledere. Et sterkt lys produseres når en elektrisk strøm tilføres disse filmene. OLED-er bruker samme teknologi som TV-apparater, men har færre piksler enn i de fleste av våre TV-er.
For dette prosjektet bruker vi en monokrom 7-pin SSD1306 0,96 ”OLED-skjerm. Den kan fungere på tre forskjellige kommunikasjonsprotokoller: SPI 3 Wire-modus, SPI firetrådsmodus og I2C-modus. Pinnene og dens funksjoner er forklart i tabellen nedenfor:
Vi har allerede dekket OLED og dens typer i detalj i forrige artikkel.
Pin-navn |
Andre navn |
Beskrivelse |
Gnd |
Bakke |
Jordingsstift på modulen |
Vdd |
Vcc, 5V |
Strømstift (3-5 V tolerabel) |
SCK |
D0, SCL, CLK |
Fungerer som klokken. Brukes til både I2C og SPI |
SDA |
D1, MOSI |
Datapinnen til modulen. Brukes til både IIC og SPI |
RES |
RST, RESET |
Tilbakestiller modulen (nyttig under SPI) |
DC |
A0 |
Data Command pin. Brukes til SPI-protokoll |
CS |
Chip Select |
Nyttig når mer enn én modul brukes under SPI-protokoll |
OLED Spesifikasjoner:
- OLED Driver IC: SSD1306
- Oppløsning: 128 x 64
- Visuell vinkel:> 160 °
- Inngangsspenning: 3,3V ~ 6V
- Pikselfarge: Blå
- Arbeidstemperatur: -30 ° C ~ 70 ° C
Lær mer om OLED og dets grensesnitt med forskjellige mikrokontrollere ved å følge lenken.
Kretsdiagram
Kretsdiagram for grensesnitt Gravity Analog Infrarød CO2-sensor for Arduino er gitt nedenfor:
Kretsen er veldig enkel, ettersom vi bare kobler til Gravity Infrared CO2 Sensor og OLED Display-modul med Arduino Nano. Infrarød CO2-sensor og OLED-skjermmodul er begge drevet med + 5V og GND. Signal (Analog Out) -pinnen til CO2-sensoren er koblet til A0-pinnen til Arduino Nano. Siden OLED Display-modulen bruker SPI-kommunikasjon, har vi etablert en SPI-kommunikasjon mellom OLED-modulen og Arduino Nano. Tilkoblingene er vist i tabellen nedenfor:
S. nr |
OLED-modulstift |
Arduino Pin |
1 |
GND |
Bakke |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
1. 3 |
6 |
DC |
11 |
7 |
CS |
12 |
Etter å ha koblet til maskinvaren i henhold til kretsskjemaet, bør den se ut som nedenfor:
Arduino-kode for å måle CO2-konsentrasjon
Den komplette koden for dette Gravity Analog Infrared CO2 Sensor for Arduino- prosjektet er gitt på slutten av dokumentet. Her forklarer vi noen viktige deler av koden.
Koden bruker Adafruit_GFX , og Adafruit_SSD1306 biblioteker. Disse bibliotekene kan lastes ned fra Library Manager i Arduino IDE og installere den derfra. For det, åpne Arduino IDE og gå til Skisse> Inkluder bibliotek> Administrer biblioteker . Søk nå etter Adafruit GFX og installer Adafruit GFX-biblioteket av Adafruit.
På samme måte installerer du Adafruit SSD1306-bibliotekene av Adafruit. Infrarød CO2-sensoren krever ikke noe bibliotek da vi leser spenningsverdiene direkte fra den analoge pinnen til Arduino.
Etter at du har installert bibliotekene på Arduino IDE, starter du koden ved å inkludere de nødvendige biblioteksfilene. Støvsensor krever ikke noe bibliotek da lesing er hentet direkte fra den analoge pinnen til Arduino.
#inkludere
Definer deretter OLED-bredde og høyde. I dette prosjektet bruker vi en 128 × 64 SPI OLED-skjerm. Du kan endre variablene SCREEN_WIDTH og SCREEN_HEIGHT i henhold til skjermen.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Definer deretter SPI-kommunikasjonspinnene der OLED Display er koblet til.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Opprett deretter en Adafruit-skjermforekomst med bredden og høyden definert tidligere med SPI-kommunikasjonsprotokollen.
Adafruit_SSD1306-skjerm (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Deretter definerer du Arduino-pinnen der CO2-sensoren er koblet til.
int sensorIn = A0;
Nå i setup () -funksjonen, initialiser du Serial Monitor med en overføringshastighet på 9600 for feilsøkingsformål. Initialiser også OLED-skjermen med start () -funksjonen.
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analog referanse (standard);
Inne i loop () -funksjonen, les først signalverdiene ved den analoge pinnen til Arduino ved å ringe til analogRead () -funksjonen. Deretter konverterer du disse analoge signalverdiene til spenningsverdier.
void loop () {int sensorValue = analogRead (sensorIn); flytespenning = sensorValue * (5000 / 1024.0);
Deretter sammenligner du spenningsverdiene. Hvis spenningen er 0 V, betyr det at det har oppstått noe problem med sensoren. Hvis spenningen er større enn 0 V, men mindre enn 400 V, betyr det at sensoren fortsatt er i forvarmingsprosessen.
if (voltage == 0) {Serial.println ("Feil"); } annet hvis (spenning <400) {Serial.println ("forvarming"); }
Hvis spenningen er lik eller større enn 400 V, så konverter den til CO2-konsentrasjonsverdier.
annet {int voltage_diference = voltage-400; flytekonsentrasjon = spenningsdifferanse * 50,0 / 16,0;
Deretter angir du tekststørrelse og tekstfarge ved å bruke setTextSize () og setTextColor () .
display.setTextSize (1); display.setTextColor (HVIT);
Så i neste linje, definer posisjonen der teksten begynner å bruke metoden setCursor (x, y) . Og skriv ut CO2-verdiene på OLED-skjermen ved hjelp av display.println () -funksjonen.
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (konsentrasjon);
Og til slutt, ring display () -metoden for å vise teksten på OLED Display.
display.display (); display.clearDisplay ();
Testing av grensesnittet for gravitasjonsinfrarød CO2-sensor
Når maskinvaren og koden er klar, er det på tide å teste sensoren. For det, koble Arduino til den bærbare datamaskinen, velg Board og Port, og trykk på opplastingsknappen. Åpne deretter den serielle skjermen og vent litt (forvarmingsprosess), så ser du de endelige dataene.
Verdiene vises på OLED-skjermen som vist nedenfor:
Merk: La sensoren varmes opp i ca 24 timer før sensoren brukes for å få riktige PPM-verdier. Da jeg drev sensoren for første gang, var utdata CO2-konsentrasjonen 1500 PPM til 1700PPM, og etter en 24-timers oppvarmingsprosess reduserte CO2-konsentrasjonen til 450 PPM til 500 PPM som er de riktige PPM-verdiene. Så det er nødvendig å kalibrere sensoren før du bruker den til å måle CO2-konsentrasjonen.
Slik kan en infrarød CO2-sensor brukes til å måle den nøyaktige CO2-konsentrasjonen i luft. Den komplette koden og arbeidsvideoen er gitt nedenfor. Hvis du er i tvil, kan du legge dem i kommentarseksjonen eller bruke forumene våre for teknisk hjelp.