Jste zde

Přidejte senzory kvality vzduchu do správy budov

Přidáním snímačů kvality vzduchu do inteligentních systémů budov získáme včasné varování před nahromaděním nebezpečných plynů a chemikálií. Běžně dostupné snímače kvality vzduchu postrádají potřebnou konektivitu k inteligentní budově. Požadovaný procesní výkon a bezdrátovou konektivitu získáme pomocí dostupných vývojových sad. Tento článek nám ukáže jak na to.

Nejobvyklejší typ zařízení pro měření kvality ovzduší pro stanovení ppm koncentrace CO2 nebo těkavých organických sloučenin (VOC) v prostředí je založen na polovodičovém elektrochemickém prvku, který generuje výstupní napětí úměrné koncentraci daného plynu nebo chemikálie. Přesnost měření je ovlivněna jak teplotou, tak vlhkostí. Snímače teploty a vlhkosti, které poskytují důležitá data pro kompenzaci nejsou běžně integrovány do tohoto typu snímače.

Navíc drtivá většina snímačů kvality ovzduší postrádá bezdrátovou konektivitu pro připojení k inteligentním sítím budov. Nicméně existují vývojové sady, které obsahují senzory kvality ovzduší i snímače teploty, vlhkosti a bezdrátovou konektivitu. Tento článek popisuje použití těchto vývojových sad, které vedou ke zkrácení vývoje moderního inteligentního senzoru kvality ovzduší.

Vlastnosti senzoru MOS

Existuje několik typů snímačů pro monitorování kvality ovzduší - elektrochemické (EC), nedisperzní infračervené (NDIR), fotoionizační detektory (PID), termické a polovodičové (MOS). Polovodičový senzor na bázi kovového oxidu (MOS) nejvíce odpovídá požadavkům pro monitorování kvality vzduchu v inteligentních instalacích.

Přístroje jsou kompaktní, poměrně levné, mohou být napájeny bateriemi (s dostatečnou kapacitou k pravidelnému napájení ohřívače snímače MOS) a rozsah detekce odpovídá typickým koncentracím CO2 a VOC (těkavé organické sloučeniny) uvnitř budov (obrázek 1).

Obrázek 1: Změna koncentrace CO2 a VOC v ložnici po celý den. (Zdroj obrázku: IDT)

Během provozu se snímač ohřívá na několik set stupňů Celsia. Přesná teplota se určuje dle druhu monitorovaného plynu či chemické látky. Citlivost závisí na tloušťce materiálu.

Snímače jsou vyráběny buď s polovodičovými materiály (oxidy zinku, cínu, wolframu, india) typu n nebo typu p. Snímač buď absorbuje (p-typ) nebo uvolňuje (n-typ) cílovou chemickou látku a elektrochemická reakce s cílovou sloučeninou buď přidává nebo odstraňuje elektrony z vodivého pásma polovodičů. To znamená, že na povrchu tohoto materiálu se vytvoří ve vzduchu rovnovážný stav s molekulami kyslíku, který se za přítomnosti jiného plynu poruší a způsobí změnu vodivosti (obrázek 2).

Obr. 2: Odpor senzorového prvku MOS se mění lineárně v reakci na změnu koncentrace dané chemické látky. V tomto příkladu se jedná o koncentraci ethanolu. (Zdroj obrázku: IDT)

 

Jeden komerční snímač MOS pro inteligentní domácí aplikace je dodáván firmou ams. Konkrétně digitální MOS senzor CCS811B, který obsahuje mikrokontrolér, analogově-digitální převodník (ADC) a rozhraní I2C (obr. 3). Zařízení zpracovává surové naměřené hodnoty přímo z čidla a převádí je na hodnoty " equivalent total VOC " (eTVOC) a " equivalent CO2 " (eCO2). Snímač je k dispozici v pouzdře o velikosti 2,7 x 4,0 x 1,1 mm.

Obrázek 3: Digitální snímač MOS CCS811B obsahuje mikroprocesor pro zpracování dat přímo z čidla. (Zdroj obrázku: ams)

Každý MOS senzor má charakteristický základní odpor pro odpovídající konkrétnímu složení vzduchu, teplotě a vlhkosti. Tato vlastnost se použije jako základ pro výpočet koncentrace plynů nebo chemických látek. Rozdíl v odporu od základní hodnoty je úměrný dané koncentraci.

V terénu ovlivňuje okolní teplota a vlhkost základní odpor senzorového prvku, a tím mění citlivost a přesnost. Zvýšení okolní teploty zvyšuje odpor čidla (pro danou vlhkost), zatímco zvýšení vlhkosti může snížit odpor (pro danou teplotu). Výrobci snímačů doporučují doplnit snímač kvality vzduchu o senzory teploty a vlhkosti, aby mikroprocesor mohl neustále kompenzovat změny výchozího odporu.

Oblíbeným zařízením pro tuto problematiku je BME280 od společnosti Bosch Sensortec. BME280 má integrován senzor vlhkosti, tlaku a teploty a je nabízen v pouzdře LGA o velikosti 2,5 x 2,5 x 0,93 mm. Snímač má rozhraní I2C pro komunikaci s externím mikroprocesorem a vyžaduje napájení od 1,71 do 3,6 V. Když je snímač v režimu spánku, spotřeba klesne na 0,1 μA.

Komerční snímače MOS postrádají možnost bezdrátové komunikaci. Existuje však mnoho bezdrátových čipů s malou spotřebou, které jsou navrženy přímo pro spolupráci se snímači.

Mnohé z těchto zařízení mají integrovány dostatečně výkonné mikroprocesory, které jsou schopny provádět zpracování surových dat ze snímačů a jejich kompenzaci dle vlhkosti a teploty. Více informací o vhodných bezdrátových technologiích pro tuto aplikaci naleznete v článku "Porovnání bezdrátových technologií s nízkou spotřebou".

Vývoj základního snímače kvality vzduchu

Pro sestavení bezdrátového senzoru kvality vzduchu je potřeba spojit diskrétní snímač MOS, snímač vlhkosti a teploty, bezdrátový transceiver a mikroprocesor do jednoho systému. Což znamená časově náročný úkol. Máme však na výběr z hotových vývojových sestav, které výrazně usnadňuje celý proces vývoje. Například SEN-14348 Combo Breakout od SparkFun Electronics je osazen snímačem kvality vzduchu CCS811B a snímačem BME280 pro měření teploty a vlhkosti pro následnou kompenzaci. Obsahuje dvě fyzická I2C rozhraní, která jsou vyvedeny na 4 pinové konektory Qwiic (Obrázek 4).

Obrázek 4: SEN-14348 od společnosti SparkFun kombinuje snímač CCS811B se zařízením BME280 pro kompenzaci teploty a vlhkosti. (Zdroj obrázku: SparkFun)

Přestože SEN-14348 může být použit jako základ pro návrh snímače kvality vzduchu kompenzované teplotou a vlhkostí, není to komplexní řešení. CCS811B sice obsahuje mikroprocesor, ale jeho výkon je dostatečný jen pro zpracování dat z pravidelného měření a k provádění kompenzaci. Složitější aplikace, například sledování mezních hodnot kvality vzduchu nebo výpočet dlouhodobých plynových nebo chemických koncentrací, jsou mimo schopnost tohoto mikroprocesoru. Pro podporu pokročilejších aplikací je nutné SEN-14348 připojit k výkonnějšímu mikroprocesoru.

Pro prvotní vývoj SparkFun doporučuje propojení SEN-14348 se systémem Arduino, jako je například RedBoard. RedBoard se připojuje k počítači pomocí USB kabelu pro nahrávání kódu z IDE Arduino. USB kabel slouží také k napájení desky RedBoard. Chcete-li používat zařízení RedBoard s konektory Qwiic, je nutné použít modul DEV-14352 Qwiic. Modul obsahuje konektory I2C a také převádí napětí z 5 V na hodnotu 3,3 V, která je potřebná pro snímače na desce SEN-14348.

K dispozici jsou knihovny pro SparkFun CCS811 a BME280 od společnosti Github. Senzory je nutné nakonfigurovat přes Arduino IDE. Konfigurační parametry jsou vzorkovací frekvence, koeficienty filtru konečné impulzní odezvy (FIR) a režimy převzorkování.

Část kódu níže zobrazuje rutinu pro inicializaci snímače BME280 před vyčtením naměřených hodnot (inicializační rutina pro CCS811 je podobná).


#include <SparkFunBME280.h>
#include <SparkFunCCS811.h>
#define CCS811_ADDR 0x5B //Default I2C Address
//#define CCS811_ADDR 0x5A //Alternate I2C Address
//Global sensor objects
CCS811 myCCS811(CCS811_ADDR);
BME280 myBME280;
void setup()
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("Apply BME280 data to CCS811 for compensation.");
  //This begins the CCS811 sensor and prints error status of .
begin()
  CCS811Core::status returnCode = myCCS811.begin();
  if (returnCode != CCS811Core::SENSOR_SUCCESS)
  {
    Serial.println("Problem with CCS811");
    printDriverError(returnCode);
  }
else {
    Serial.println("CCS811 online");
  }
  //Initialize BME280
  //For I2C, enable the following and disable the SPI section
  myBME280.settings.commInterface = I2C_MODE;
  myBME280.settings.I2CAddress = 0x77;
  myBME280.settings.runMode = 3; //Normal mode
  myBME280.settings.tStandby = 0;
  myBME280.settings.filter = 4;
  myBME280.settings.tempOverSample = 5;
  myBME280.settings.pressOverSample = 5;
  myBME280.settings.humidOverSample = 5;
 
 //Calling .begin() causes the settings to be loaded
  delay(10);  //Make sure sensor had enough time to turn on. BME280 requires 2ms to start up.
  byte id = myBME280.begin(); //Returns ID of 0x60 if successful
  if (id != 0x60)
  {
    Serial.println("Problem with BME280");
  }
else {
    Serial.println("BME280 online");
  }
}    

Část kódu 1: Inicializační rutina pro snímač BME280 před odečtením hodnot. (Zdroj kódu: SparkFun)

 

Chcete-li vyčíst hodnoty ze snímačů, musí být k části kódu 1 přidána následující smyčka (the Arduino „sketch“) (Část kódu 2).


void loop() {
if (myCCS811.dataAvailable()) //Check to see if CCS811 has n ew data (it's the slowest sensor)
  {
    myCCS811.readAlgorithmResults(); //Read latest from CCS811 and update tVOC and CO2 variables
    //getWeather(); //Get latest humidity/pressure/temp data from BME280
    printData(); //Pretty print all the data
}
  else if (myCCS811.checkForStatusError()) //Check to see if CCS811 has thrown an error
  {
    Serial.println(myCCS811.getErrorRegister()); //Prints what ever CSS811 error flags are detected
  }
  delay(2000); //Wait for next reading
}

Část kódu 2: Rutina pro snímání a čtení z čidla CCS811. (Zdroj kódu: SparkFun)

Enviromentální údaje ("ENV_DATA") z BME280 jsou zapsány do CCS811 tak, aby mohla být provedena kompenzace vůči vlivu teploty a vlhkosti. Vlhkost a teplota jsou reprezentovány jako unsigned 16bitový integer s rozlišením 1/512% RH a 1/512 stupňů. Výchozí hodnota pro vlhkost je 50% (= 0x64, 0x00). Například vlhkost 48,5%  = 0x61, 0x00.  Výchozí teplota je 25 ° C (= 0x64, 0x00). Například 23,5 ° C = 0x61, 0x00. Naměřené  hodnoty teploty a vlhkosti z BME280 umožňují mikroprocesoru použít speciální kompenzační algoritmy (Část kódu 3).


void loop() {
  //Check to see if data is available
  if (myCCS811.dataAvailable())
  {
    //Calling this function updates the global tVOC and eCO2 variables
    myCCS811.readAlgorithmResults();
    //printData fetches the values of tVOC and eCO2
    printData();
    float BMEtempC = myBME280.readTempC();
    float BMEhumid = myBME280.readFloatHumidity();
    Serial.print("Applying new values (deg C, %): ");
    Serial.print(BMEtempC);
    Serial.print(",");
    Serial.println(BMEhumid);
    Serial.println();
    //This sends the temperature data to the CCS811
    myCCS811.setEnvironmentalData(BMEhumid, BMEtempC);
  }
  else if (myCCS811.checkForStatusError())
  {
    Serial.println(myCCS811.getErrorRegister()); //Prints what ever CSS811 error flags are detected
}
  delay(2000); //Wait for next reading
}

 

Část kódu 3: Údaje o teplotě a vlhkosti, které umožňují snímači CCS811 provést kompenzační algoritmus. (Zdroj kódu: SparkFun)

 

Přidání snímače kvality vzduchu do systému

Zatímco SparkFun SEN-14348 breakout, počítač Arduino a modul DEV-14352 Qwiic umožňuje zpracování údajů o kvalitě ovzduší, systém nenabízí žádné bezdrátové připojení. Pioneer  CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer Kit od Cypress Semiconductor obsahuje bezdrátovou konektivitu a je navržený tak, aby pomáhal při vývoji bezdrátových senzorových aplikací.

Sada umožňuje kódovat a kompilovat aplikace a pak přenést firmware na Cypress 'PSoC 4 Bluetooth low energy SoC. SoC obsahuje 32bitový procesor Arm Cortex-M0 s frekvencí 48 MHz a Bluetooth transceiver. V tomto případě jsou kompenzované údaje o kvalitě ovzduší předávány prostřednictvím I2C komunikace. Kromě přijímání dat z rozhraní I2C je procesor schopen resetu, vzbuzení a uvedení čidel do režimu spánku.

Cypress nabízí nástroj CySmart Host Emulation pro emulaci hostitelského systému v prostředí Windows (běžící na počítači) a Bluetooth dongle pro lepší debugging a testování. Jak dongle, tak souprava Pioneer mohou být současně připojeny k běžnému hostitelskému počítači během celého vývojového procesu (obrázek 5).

Obrázek 5: Společnost Cypress dodává vývojové nástroje pro technologii Bluetooth včetně donglu, které napomáhají vývoji firmwaru v sestavě s PSoC 4 BLE Pioneer Kit. (Zdroj obrázku: Cypress Semiconductor)

 

Vývoj s CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer Kit se skládá ze čtyř etap:

  • Vytvoření návrhu v PSoC Creator
  • Napsáním firmware pro inicializaci a zpracování událostí Bluetooth Low Energy
  • Naprogramování Bluetooth SoC pomocí sady Pioneer
  • Test systému pomocí nástroje Emulation Host CySmart (nebo mobilní aplikace)

Další informace o vývoji aplikací s Bluetooth Low Energy naleznete v článku "Bluetooth 4.1, 4.2 a 5 Kompatibilní technologie Bluetooth Low Energy a nástroje splňující nároky IoT".

Aplikační firmware používá technologii Bluetooth ke shromažďování a zpracování dat ze snímačů a přenáší je například do pc nebo inteligentního telefonu pro další analýzu či přehledné zobrazení.

Údaje ze senzoru mohou být přesměrovány ze smartphonu na cloudový server, aby se uložili a mohla se spustit notifikační rutina "If That Then That" (IFTTT). Například trvale vysoké hodnoty CO2 v ložnici dítěte by mohly vyvolat upozornění na smartphonu rodičů, aby zajistily ventilaci nebo se ventilace automaticky provedla.

Připojení ke cloudu přímo ze snímače je trochu složitější. V sítích Bluetooth Low Energy od Cypress obecně chybí síťová vrstva IPv6. Řešením je odeslat data Bluetooth do "brány", která využívá alternativní protokol pro připojení k cloudu (například Wi-Fi).

Cypress a SparkFun společně nabízí řešení. Použitím Pioneer Kit CY8CKIT-062-BLE PSoC 6 BLE od společnosti Cypress a doplňkovým modulem Pioneer IoT DEV-14531 PSoC od společnosti SparkFun (vybavený modulem XB2B-WFWT-001 XBee Wi-Fi) můžete vyvinout síť, která čte kompenzovaná data o kvalitě ovzduší ze snímače, přenáší je přes Bluetooth z Pioneer Kit CY8CKIT-042-BLE-PSoC 4 BLE do sady CY8CKIT-062-BLE PSoC 6 BLE Pioneer a odtud (přes Wi-Fi) do cloudu (obrázek 6). Více informací o používání modulů Wi-Fi pro připojení ke cloudu naleznete v technickém článku  "Moduly 802.11x a vývojové sady mohou pomoci zjednodušit vývoj bezdrátové sítě IoT".

Obrázek 6: Bezdrátový systém postavený na vývojových sadách Cypress a SparkFun využívá technologie Bluetooth Low Energy a Wi-Fi pro odesílání dat senzoru kvality vzduchu do cloudu. (Zdroj obrázku: Digi-Key Electronics)

Závěr

Vzhledem k rostoucímu povědomí o škodlivých účincích těkavých organických sloučenin (VOC) a vysoké koncentraci plynů, jako je CO2 je žádoucí mít senzory kvality ovzduší integrované v systému správy budov. Komerční snímače kvality vzduchu v současné době postrádají výkonný mikroprocesor a bezdrátovou konektivitu. Nicméně pomocí vývojových sad a dostupných nástrojů můžeme rychle sestavit systém, který nám poskytuje údaje o kvalitě vzduchu, a to včetně kompenzace vůči teplotě a vlhkosti. Navíc tyto data bezdrátově přenáší pomocí Bluetooth do mobilních telefonů nebo prostřednictvím wifi modulu přímo do cloudu, kde dochází k dalšímu zpracování.

 

Článek vyšel v originále " Add Compensated Air Quality Sensors to the Internet of Things)"  na webu DigiKey.com

Hodnocení článku: