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.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
cs:co2 [2017/02/14 23:36]
kaklik [MH-Z19]
cs:co2 [2017/02/19 17:02]
Řá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. 
- 
  
cs/co2.txt · Poslední úprava: 2017/02/19 17:02 (upraveno mimo DokuWiki)