CO2 (oglekļa dioksīda) sensors iekštelpām

Kam to vajag?
Āra gaisā CO2 koncentrācija ir ap 400ppm. Labs gaiss iekštelpās ir līdz CO2 koncentrācijai 1000ppm, virs tā iespējama ietekme uz veselību un pašsajūtu, bet pie lielām koncentrācijām galvassāpes un darba spēju zudums).

Tāpat svarīgs arī relatīvais gaisa mitrums, kam jābūt 30-70% robežās, bet vislabāk 50-60%. Tomēr nevēdināt pārāk bieži, jo paradokss ir apstāklī, ka, piemēram, ļoti mitrs āra gaiss ar 1C un 95% relatīvo mitrumu rada ļoti sausu gaisu iekštelpās – ap 27% pie 21C. Abos gadījumos tie ir 5g ūdens uz kubikmetru gaisa.

Projektā iesakām izmantot NDIR (nondispersive infrared) tehnoloģijas sensorus MH-Z14A, MH-Z19B vai SenseAir S8, kādu izmanto arī Aranet4.

Detaļu saraksts:

1) CO2 NDIR sensors: MH-Z14A / MH-Z19B / SenseAir S8 (nav testēts)
2) a – Ekrāns 0.95″ OLED SSD1331 SPI , b – Ekrāns 1.44″ SPI TFT (novērota neliela apgaismojuma raustīšanās)
3) a – NANO v3.0 / UNO R3 vai b – NodeMCU ESP8266 (ESP8266 kods būs drīz).
4) Savienošanas vadi 10cm
5) Temperatūras un mitruma sensors DHT22 (vai DHT11)
6) Powerbank 5000mAh
7) Mini USB kabelis vai Micro USB kabelis

Slēgums (Nano, Uno)

CO2 sensors

TX – 6, RX – 5, Vin – 5V, GND – Ground.

Ekrāns

a – 0.95″ OLED SSD1331 96×64 SPI:
GND – Ground | VCC – 5V | SCL (Clock Line) – 13 | SDA (Mosi) – 11 | RES (Reset) – 9 | DC (Data/Demand) – 8 | CS (Chip Select) – 10.

b – 1.44″ TFT 128×128 SPI:
LED ->3.3V | SCK (SCK) -> 13 | SDA (MOSI) -> 11 | A0 (DC) – 8 | RESET (RST) -> 9 | CS -> 10 | GND -> Ground | VCC -> 5V;

DHT22 (skatoties no restotās priekšas ar kājām uz leju)

VCC – 5V
Data – 2
NC – tukšs
Ground – GND

Slēgums (NodeMCU)

CO2 sensors

a – TX – D6, RX – D5, Vin – 5V, GND – Ground.

Ekrāns

a – 0.95″ OLED SSD1331 96×64 SPI:
GND – GND | VCC – VU vai Vin | SCL (Clock) – D5 | SDA (Mosi) – D7 | RES (Reset) – D2 | DC (Data/Demand) – D1 | CS (Chip Select) – D3.

b – 1.44″ TFT 128×128 SPI:
LED ->3V3 | SCK (Clock) -> D5 | SDA (Mosi) -> D7 | A0 (DC) – D1 | RESET (RST) -> D2 | CS -> D3 | GND -> GND | VCC -> VU vai Vin;

DHT22 (skatoties no restotās priekšas ar kājām uz leju)

VCC – 5V
Data – D4
NC – tukšs
Ground – GND

Bibliotēkas

Arduino IDE programmā jāielādē bibliotēkas:

  1. Bibliotēkas SoftwareSerial.h un SPI.h jau ir Arduino IDE programmā.
  2. DHT.h – pielikt Arduino IDE programmā (Rīki – Pārvaldīt bibliotēkas – Meklēt dht – DHT sensor library by Adafruit – Instalēt).
  3. a – Adafruit_SSD1331.h un Adafruit_GFX.h – lejuplādējamas Arduino IDE programmā (Rīki – Pārvaldīt bibliotēkas – Meklēt – Instalēt).
    b – TFT_ILI9163C.h – github.com/sumotoy/TFT_ILI9163C – Lejuplādēt un ielikt mapi Arduino/Libraries mapē.
    ! Labojums bibliotēkā:
    Bibliotēkas TFT_ILI9163C failā _settings/TFT_ILI9163C_settings.h teksta redaktorā jālabo cipari:
    #define _TFTWIDTH 131
    #define _GRAMWIDTH 131
    #define __OFFSET 1

Programma

Arduino IDE koda lejuplāde: https://github.com/Orient-lv/co2
Clone or download – Download ZIP – Atzipot – Mapi ielikt Arduino mapē, kura parasti atrodas zem Documents.
NodeMCU ESP8266 programma tiks publicēta drīz..

Kalibrēšana

Automātiskā kalibrēšana darbojas visiem 3 sensoru modeļiem – ABC funkcija reizi 24 stundās kalibrē zemāko vērtību, kāda bijusi pēdējās dienās, uz 400ppm. Lai tas notiktu precīzi, sensoram ir nedēļas laikā uz 1 stundu jāatrodas svaigā gaisā.

Manuālā kalibrēšana – svaigā gaisā CO2 sensora Pin8 (MH-Z14A) vai HD (MH-Z19B)  ir jāsavieno uz vairāk kā 7 sekundēm ar Ground un jāatstāj svaigā gaisā vairāk kā uz 20 minūtēm.
(par Senseair S8 manuālo kalibrēšanu vēl jāprecizē – digitāls signāls ? uz CAL pinu starp 4 un 8 sekundēm)
Vienmēr var pārbaudīt kalibrāciju, iznesot sensoru svaigā gaisā. Tam ir jārāda 395 – 410ppm.

Specifikācijā norādīts uzsilšanas laiks 3 min., tātad korekti rādījumi būs līdz 3 minūtēm pēc ieslēgšanas.

Ievietošana korpusā

Ievietojot iekārtu korpusā, ir jāatstāj brīva gaisa pieplūde sensora daļām, kur tas ieplūst/izplūst.
Termometru vēlams stiprināt ārpusē.

Var noderēt iesācējiem – Arduino pamati

1.nodarbība – Arduino pieslēgšana datoram, pirmā programma
4.nodarbība – Arduino digitālā seriālā nolasīšana ar Seriālo monitoru un ploteri
11.nodarbība – LCD ekrāns
12.nodarbība – Temperatūras un mitruma sensors, bibliotēku ielādēšana