- Komponenter kreves
- 0,96 'OLED-skjermmodul
- Klargjøre MQ-135-sensoren
- Kretsdiagram til grensesnitt MQ135 med Arduino
- Beregning av R
- Kode for å måle CO2 ved hjelp av Arduino MQ135-sensor
- Testing av grensesnittet til MQ-135-sensoren
Jordens atmosfæriske CO2-nivå øker dag for dag. Det globale gjennomsnittlige atmosfæriske karbondioksidet i 2019 var 409,8 deler per million, og i oktober 2020 er det 411,29. Karbondioksid er en viktig klimagass og er ansvarlig for omtrent tre fjerdedeler av utslippene. Så CO2-nivåovervåking har også begynt å få betydning.
I vårt forrige prosjekt brukte vi Gravity Infrared CO2-sensoren til å måle CO2-konsentrasjonen i luft. I dette prosjektet skal vi bruke en MQ-135 sensor med Arduino for å måle CO2-konsentrasjonen. De målte CO2-konsentrasjonsverdiene vil vises på OLED-modulen, og sist vil vi også sammenligne Arduino MQ-135 sensoravlesninger med infrarød CO2-sensoravlesning. Bortsett fra CO2 har vi også målt konsentrasjonen av LPG, røyk og ammoniakk med Arduino.
Komponenter kreves
- Arduino Nano
- MQ-135 sensor
- Jumper Wires
- 0,96 'SPI OLED-skjermmodul
- Brettbrett
- 22KΩ motstand
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. Du kan også lære mer om det grunnleggende om OLED-skjerm og dets typer ved å lese den koblede artikkelen. Pinnene og dens funksjoner er forklart i tabellen nedenfor:
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
Klargjøre MQ-135-sensoren
MQ-135 gassføler er en luftkvalitetssensor for å oppdage et bredt spekter av gasser, inkludert NH3, NOx, alkohol, benzen, røyk og CO2. MQ-135-sensoren kan enten kjøpes som en modul eller bare som en sensor alene. I dette prosjektet bruker vi en MQ-135 sensormodul for å måle CO2-konsentrasjonen i PPM. Kretsskjemaet for MQ-135-kortet er gitt nedenfor:
Lastmotstanden RL spiller en veldig viktig rolle for å få sensoren til å fungere. Denne motstanden endrer motstandsverdien i henhold til konsentrasjonen av gass. I følge MQ-135-databladet kan belastningsmotstandsverdien variere fra 10KΩ til 47KΩ. Dataarket anbefaler at du kalibrerer detektoren for 100 ppm NH3 eller 50 ppm Alkoholkonsentrasjon i luft og bruker en verdi for lastmotstand (RL) på ca. 20 KΩ. Men hvis du sporer PCB-sporene dine for å finne verdien av RL-en din i kortet, kan du se en 1KΩ (102) belastningsmotstand.
Så for å måle de aktuelle CO2-konsentrasjonsverdiene, må du erstatte 1KΩ motstanden med en 22KΩ motstand.
Kretsdiagram til grensesnitt MQ135 med Arduino
Det komplette skjemaet for å koble MQ-135 gassensor med Arduino er gitt nedenfor:
Kretsen er veldig enkel, siden vi bare kobler MQ-135-sensoren og OLED-skjermmodulen med Arduino Nano. MQ-135 gassensor og OLED-skjermmodul får begge strøm med + 5V og GND. Analog ut-pinnen til MQ-135-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 tilkobling av maskinvaren i henhold til kretsskjemaet, bør Arduino MQ135-sensoroppsettet se ut som nedenfor:
Beregning av R
Nå som vi vet verdien av RL, la oss fortsette med hvordan vi beregner R o- verdiene i ren luft. Her skal vi bruke MQ135.h for å måle CO2-konsentrasjonen i luften. Så last først ned MQ-135 Library, og forvarm deretter sensoren i 24 timer før du leser R o- verdiene. Etter forvarmingsprosessen, bruk koden nedenfor for å lese R o- verdiene:
#include "MQ135.h" ugyldig oppsett () {Serial.begin (9600); } ugyldig sløyfe () {MQ135 gasSensor = MQ135 (A0); // Fest sensoren til pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); forsinkelse (1000); }
Når du har fått R o- verdiene, går du til Dokumenter> Arduino> biblioteker> MQ135- hovedmappen og åpner MQ135.h- filen og endrer RLOAD & RZERO-verdiene.
/// Lastmotstanden på tavlen #define RLOAD 22.0 /// Kalibreringsmotstand på atmosfærisk CO2-nivå #define RZERO 5804.99
Rull nå ned og erstatt ATMOCO2-verdien med gjeldende atmosfæriske CO2 som er 411,29
/// Atmosfærisk CO2-nivå for kalibreringsformål #definer ATMOCO2 397.13
Kode for å måle CO2 ved hjelp av Arduino MQ135-sensor
Den komplette koden for grensesnitt MQ-135 Sensor med Arduino er gitt på slutten av dokumentet. Her forklarer vi noen viktige deler av MQ135 Arduino-koden.
Koden bruker Adafruit_GFX , og Adafruit_SSD1306 , og MQ135.h biblioteker. Disse bibliotekene kan lastes ned fra Library Manager i Arduino IDE og installere den derfra. For det, åpne Arduino IDE og gå til Sketch <Include Library <Manage Libraries . Søk nå etter Adafruit GFX og installer Adafruit GFX-biblioteket av Adafruit.
På samme måte installerer du Adafruit SSD1306-bibliotekene av Adafruit. MQ135-biblioteket kan lastes ned herfra.
Etter at du har installert bibliotekene til Arduino IDE, starter du koden ved å inkludere de nødvendige biblioteksfilene.
# inkluderer "MQ135.h" # inkluderer
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 MQ-135-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); display.clearDisplay ();
Inne i loop () -funksjonen, les først signalverdiene ved den analoge pinnen til Arduino ved å ringe til analogRead () -funksjonen.
val = analogRead (A0); Serial.print ("raw =");
Så i neste linje, ring gasSensor.getPPM () for å beregne PPM-verdiene. PPM-verdiene blir beregnet ved hjelp av belastningsmotstanden, R 0, og avlesning fra den analoge pinnen.
flyte ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
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.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Og til slutt, ring display () -metoden for å vise teksten på OLED Display.
display.display (); display.clearDisplay ();
Testing av grensesnittet til MQ-135-sensoren
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:
Slik kan en MQ-135 sensor brukes til å måle nøyaktig CO2 i luften. Den komplette MQ135 Arduino-koden for luftkvalitetssensor og arbeidsvideo er gitt nedenfor. Hvis du er i tvil, la dem være i kommentarseksjonen.