Uživatelské nástroje

Nástroje pro tento web


cs:co2

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
Poslední revize
cs:co2 [2017/02/19 16:02] kaklik
Řádek 1: Řádek 1:
 +====== Snímač koncentrace CO2 ======
 +
 +Běžné měřící metody koncentrace plynů používají převážně dva principy buď [[https://en.wikipedia.org/wiki/Electrochemical_gas_sensor|elektrolytické měření]] v pevném elektrolytu. Takové senzory vypadají obvykle následovně: 
 +
 +{{:cs:modules:sensors:co2_sensor_c.jpg?400|}}
 +
 +A nebo [[https://en.wikipedia.org/wiki/Nondispersive_infrared_sensor|optické NDIR měření]]. Zástupci těchto senzorů vypadají následovně: 
 +
 +{{:cs:modules:sensors:mh-z19.jpg?300|}} {{:cs:modules:sensors:mh-z14.jpg?300|}}
 +
 +Elektrochemické senzory mají výhodu, že jsou obvykle velmi levné a odolné. Jejich nevýhodou je poměrně velká energetická spotřeba, protože elektrolyt se musí neustále vyhřívat na pracovní teplotu. Jsou také poměrně nepřesné, protože v nich s časem dochází k chemickým změnám.
 +
 +Oproti tomu optické senzory těmito problémy netrpí, ale zase jsou citlivé na čistotu měřeného plynu. 
 +
 +
 +===== MH-Z19 =====
 +
 +V MLABu jsme se rozhodli vyzkoušet optický NDIR snímač [[https://revspace.nl/MHZ19|MH-Z19]]. Jeho výstupem je digitální hodnota vyčítaná přes UART rozhraní. Senzor měří sám v 5s intervalech a jednou za 24 hodin se "autokalibruje". Další podrobnosti a komunikační protokol jsou popsány v [[http://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf|datasheetu MH-Z19B]]
 +
 +
 +{{:cs:modules:sensors:usb232r01b_mh-z19.jpg?400| Snímač CO2 MH-Z19 připojený do MLABu}}
 +
 +Pro základní vyčítání snímače lze ale využít následující Python skript: 
 +
 +<code>
 +#!/usr/bin/env python
 +# http://eleparts.co.kr/data/design/product_file/SENSOR/gas/MH-Z19_CO2%20Manual%20V2.pdf
 +import serial
 +import time
 +
 +def mh_z19():
 +  ser = serial.Serial('/dev/ttyUSB1',
 +                      baudrate=9600,
 +                      bytesize=serial.EIGHTBITS,
 +                      parity=serial.PARITY_NONE,
 +                      stopbits=serial.STOPBITS_ONE,
 +                      timeout=1.0)
 +  #ser.write("\xff\x01\x99\x00\x00\x00\x07\xD0\x8F") # set measurement range to 0-2000ppm 
 +  time.sleep(1)
 +  while 1:
 +    result=ser.write("\xff\x01\x86\x00\x00\x00\x00\x00\x79")
 +    s=ser.read(9)
 +    if s[0] == "\xff" and s[1] == "\x86":     
 +        return {'co2': ord(s[2])*256 + ord(s[3]), 'temp': ord(s[4])-40 }
 +    break
 +
 +if __name__ == '__main__':
 +    try:
 +        while True:
 +            value = mh_z19()
 +            print "CO2:", value["co2"], "ppm", "Temp:", value["temp"]
 +            time.sleep(6)
 +    except KeyboardInterrupt:
 +     sys.exit(0)
 +</code>
 +
 +Výstupem tohoto skriptu je naměřená koncentrace CO2 a teplota v [[https://cs.wikipedia.org/wiki/Parts_per_million|jednotkách ppm]] a stupních Celsia. Příkladem je třeba následující výstup:
 +
 +<code>
 +CO2: 859 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 860 ppm Temp: 20
 +CO2: 862 ppm Temp: 20
 +CO2: 863 ppm Temp: 20
 +CO2: 864 ppm Temp: 20
 +CO2: 864 ppm Temp: 20
 +CO2: 864 ppm Temp: 20
 +CO2: 864 ppm Temp: 20
 +</code>
 +
 +Čidlo lze také vyčítat pomocí nástroje [[cs:esp#espeasy|ESPEasy]], což je programový balík založený na Arduinu a mikrokontroleru ESP8266. Výsledkem pak může být například takovýto graf: 
 +
 +{{:cs:modules:sensors:co2_levels.png?600|}}
 +
 +Na grafu je vidět, že čidlo je velmi citlivé na závany vzduchu. V době měření grafu bylo v místnosti společně s čističkou vzduchu, která byla zapnutá přibližně od 15:30, jak ukazují hodnoty s velkým rozptylem. Umístěním čidla do obalu, který brání přímému průtoku vzduchu a umožňuje pouze difuzi, lze tomuto jevu předejít.
 +
 +<WRAP center round help 80%>
 +Pro tento projekt je dostupná profesionální podpora od firmy [[http://www.ust.cz/about.cs.php|Universal Scientific Technologies s.r.o.]]
 +</WRAP>
 +
 +
 +
  
cs/co2.txt · Poslední úprava: 2017/02/19 16:02 (upraveno mimo DokuWiki)