- Komponenter krävs
- Gravity Infraröd CO2-sensor
- 0,96-tums OLED-skärmmodul
- Kretsschema
- Arduino-kod för att mäta CO2-koncentration
- Testa gränssnittet mellan gravitation infraröd CO2-sensor
Den ökande koncentrationen av koldioxid i luften har blivit ett allvarligt problem nu. Enligt NOAA-rapporten har CO2-koncentrationen i ozon nått 0,0385 procent (385 ppm) och är den högsta mängden på 2,1 miljoner år. Det innebär att det i en miljon luftpartiklar finns 385 koldioxidpartiklar. Denna stigande koldioxidnivå har påverkat miljön dåligt och fått oss att möta situationen som klimatförändringar och global uppvärmning. Det finns många luftkvalitetsmätare installerade på vägar för att berätta CO2-nivån, men vi kan också bygga en DIY CO2-mätanordning och kan installera den i vårt område.
I den här handledningen ska vi ansluta Gravity Infrared CO2 Sensor med Arduino för att mäta CO2-koncentrationen i PPM. Gravity Infrared CO2 Sensor är en hög precision analog CO2-sensor. Den mäter CO2-halten i området 0 till 5000 ppm. Du kan också kontrollera våra tidigare projekt där vi använde MQ135 gassensor, Sharp GP2Y1014AU0F-sensor och Nova PM-sensor SDS011 för att bygga en luftkvalitetsmonitor.
Komponenter krävs
- Arduino Nano
- Gravity Infrared CO2 Sensor V1.1
- Bygeltrådar
- 0,96 'SPI OLED-skärmmodul
- Bakbord
Gravity Infraröd CO2-sensor
Gravity Infrared CO2 Sensor V1.1 är den senaste analoga infraröda CO2-sensorn med hög precision som släpptes av DFRobot. Denna sensor är baserad på icke-dispersiv infraröd (NDIR) -teknik och har god selektivitet och syrefritt beroende. Den integrerar temperaturkompensering och stöder DAC-utgång. Det effektiva mätområdet för denna sensor är från 0 till 5000 ppm med en noggrannhet på ± 50 ppm + 3%. Denna infraröda CO2-sensor kan användas för HVAC, övervakning av luftkvaliteten inomhus, industriell process och säkerhetsskydd, jordbruk och uppfödning av djurhållningsprocesser.
Infraröd CO2-sensor Pinout:
Som tidigare nämnts levereras den infraröda CO2-sensorn med en 3-polig kontakt. Nedanstående figur och tabell visar stifttilldelningarna för den infraröda CO2-sensorn:
Stift nr. |
Pin-namn |
Beskrivning |
---|---|---|
1 |
Signal |
Analog utgång (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5V) |
3 |
GND |
GND |
Infraröd CO2-sensor Specifikationer och funktioner:
- Gasavkänning: Koldioxid (CO2)
- Driftspänning: 4,5 ~ 5,5V DC
- Förvärmningstid: 3 min
- Svarstid: 120s
- Arbetstemperatur: 0 ~ 50 ℃
- Luftfuktighet vid drift: 0 ~ 95% RH (ingen kondens)
- Vattentät och korrosionsskyddande
- Hög cykel liv
- Anti-vattenånga störningar
0,96-tums OLED-skärmmodul
OLED (Organic Light-Emitting Diodes) är en självljusemitterande teknik, konstruerad genom att placera en serie organiska tunna filmer mellan två ledare. Ett starkt ljus produceras när en elektrisk ström appliceras på dessa filmer. OLED-enheter använder samma teknik som tv-apparater, men har färre pixlar än i de flesta av våra tv-apparater.
För detta projekt använder vi en monokrom 7-stifts SSD1306 0,96 ”OLED-skärm. Det kan fungera på tre olika kommunikationsprotokoll: SPI 3 Wire-läge, SPI-fyrtrådsläge och I2C-läge. Stiften och dess funktioner förklaras i tabellen nedan:
Vi har redan behandlat OLED och dess typer i detalj i föregående artikel.
Pin-namn |
Andra namn |
Beskrivning |
Gnd |
Jord |
Jordens stift på modulen |
Vdd |
Vcc, 5V |
Strömstift (3-5 V acceptabelt) |
SCK |
D0, SCL, CLK |
Fungerar som klockstift. Används för både I2C och SPI |
SDA |
D1, MOSI |
Modulens datapinne. Används för både IIC och SPI |
RES |
RST, RESET |
Återställer modulen (användbar under SPI) |
DC |
A0 |
Data Command pin. Används för SPI-protokoll |
CS |
Chip Select |
Användbar när mer än en modul används under SPI-protokollet |
OLED-specifikationer:
- OLED Driver IC: SSD1306
- Upplösning: 128 x 64
- Synvinkel:> 160 °
- Ingångsspänning: 3,3V ~ 6V
- Pixelfärg: Blå
- Arbetstemperatur: -30 ° C ~ 70 ° C
Läs mer om OLED och dess gränssnitt med olika mikrokontroller genom att följa länken.
Kretsschema
Kretsschema för gränssnitt Gravity Analog Infraröd CO2-sensor för Arduino ges nedan:
Kretsen är väldigt enkel eftersom vi bara ansluter Gravity Infrared CO2 Sensor och OLED Display-modul med Arduino Nano. Infraröd CO2-sensor och OLED-skärmmodul drivs båda med + 5V och GND. Signalstiften (Analog ut) på CO2-sensorn är ansluten till A0-stiftet på Arduino Nano. Eftersom OLED Display-modulen använder SPI-kommunikation har vi upprättat en SPI-kommunikation mellan OLED-modulen och Arduino Nano. Anslutningarna visas i nedanstående tabell:
S. nr |
OLED-modulstift |
Arduino Pin |
1 |
GND |
Jord |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Efter att ha anslutit hårdvaran enligt kretsschemat bör det se ut som nedan:
Arduino-kod för att mäta CO2-koncentration
Den kompletta koden för detta Gravity Analog Infrared CO2 Sensor för Arduino- projektet ges i slutet av dokumentet. Här förklarar vi några viktiga delar av koden.
Koden använder Adafruit_GFX , och Adafruit_SSD1306 bibliotek. Dessa bibliotek kan laddas ner från Library Manager i Arduino IDE och installera det därifrån. För det, öppna Arduino IDE och gå till Skiss> Inkludera bibliotek> Hantera bibliotek . Sök nu efter Adafruit GFX och installera Adafruit GFX-biblioteket av Adafruit.
Installera på samma sätt Adafruit SSD1306-biblioteken av Adafruit. Infraröd CO2-sensorn kräver inget bibliotek eftersom vi läser spänningsvärdena direkt från Arduinos analoga stift.
När du har installerat biblioteken på Arduino IDE startar du koden med de biblioteksfiler som behövs. Dammsensorn kräver inget bibliotek eftersom läsningen hämtas direkt från Arduinos analoga stift.
#omfatta
Definiera sedan OLED-bredd och höjd. I det här projektet använder vi en 128 × 64 SPI OLED-skärm. Du kan ändra variablerna SCREEN_WIDTH och SCREEN_HEIGHT enligt din skärm.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Definiera sedan SPI-kommunikationsnålarna där OLED Display är ansluten.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Skapa sedan en Adafruit-skärminstans med bredden och höjden definierad tidigare med SPI-kommunikationsprotokollet.
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Därefter definierar du Arduino-stiftet där CO2-sensorn är ansluten.
int sensorIn = A0;
Nu inne i setup () funktion, initiera Serial Monitor vid en baudhastighet av 9600 för felsökning. Initiera även OLED-skärmen med funktionen start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Inuti loop () -funktionen, läs först signalvärdena vid den analoga stiftet i Arduino genom att ringa funktionen analogRead () . Därefter konverterar du dessa analoga signalvärden till spänningsvärden.
void loop () {int sensorValue = analogRead (sensorIn); flottörspänning = sensorValue * (5000 / 1024.0);
Jämför sedan spänningsvärdena. Om spänningen är 0 V betyder det att något problem har uppstått med sensorn. Om spänningen är större än 0 V men mindre än 400 V, betyder det att sensorn fortfarande är i förvärmningsprocessen.
if (voltage == 0) {Serial.println ("Fel"); } annars om (spänning <400) {Serial.println ("förvärmning"); }
Om spänningen är lika med eller större än 400 V, konvertera den sedan till CO2-koncentrationsvärden.
annars {int voltage_diference = voltage-400; flottörkoncentration = spänningsdifferens * 50,0 / 16,0;
Därefter ställer du in textstorlek och textfärg med setTextSize () och setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
Definiera sedan i nästa rad positionen där texten börjar med metoden setCursor (x, y) . Och skriv ut CO2-värdena på OLED-skärmen med funktionen display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentration);
Och till sist, ring display () -metoden för att visa texten på OLED Display.
display.display (); display.clearDisplay ();
Testa gränssnittet mellan gravitation infraröd CO2-sensor
När hårdvaran och koden är klara är det dags att testa sensorn. För det ansluter du Arduino till den bärbara datorn, väljer styrelsen och porten och trycker på uppladdningsknappen. Öppna sedan din seriella bildskärm och vänta en stund (förvärmningsprocess), då ser du slutdata.
Värdena visas på OLED-skärmen enligt nedan:
Obs! Låt sensorn värmas upp i ca 24 timmar innan du använder sensorn för att få korrekta PPM-värden. När jag slog på sensorn för första gången var CO2-koncentrationen 1500 PPM till 1700 PPM och efter en 24-timmars uppvärmningsprocess minskade CO2-koncentrationen till 450 PPM till 500 PPM, vilket är de korrekta PPM-värdena. Så det är nödvändigt att kalibrera sensorn innan du använder den för att mäta CO2-koncentrationen.
Således kan en infraröd CO2-sensor användas för att mäta den exakta CO2-koncentrationen i luft. Den fullständiga koden och arbetsvideoen ges nedan. Om du är osäker, lämna dem i kommentarsektionen eller använd våra forum för teknisk hjälp.