Czujnik CO2 - ESP32 + MH-Z19

Cześć,
Po wielu bojach udało mi się wpiąć czujnik CO2 do HA.
Połączenie realizowane jest za pomocą ESP oraz integracje ESPHome.
Jak ktoś zainteresowany to podziele się wiedzą :slight_smile:

Efekt końcowy:
image

Marcin

@ozzinse a może jakiś poradnik krok po kroku? :wink:

@ozzinse No pewnie - dziel się, wprawdzie jeśli ktoś używa ESPHome to raczej da radę

ale jeśli wrzucisz gotowy konfig z informacją na jakim module ESP to oparłeś (sam używam chyba z 10 różnych modułów oczywiście różniących się definicjami sprzętu) to uruchomienie tego dla kogoś innego będzie kwestą parunastu minut (by “spapugować” lub zmodyfikować twoje rozwiązanie i dostosować gotowca do swoich warunków).

PS ile dałeś za czujnik? (kiedyś się zastanawiałem nad nim ale do tanich nie należał)

PPS początkującym radzę popróbować ESPHome nieco bardziej “na sucho” tj. pobawić się dowolnym modułem ESP32 lub ESP8266 nawet bez dokładania jakichkolwiek czujników (nawet “goły” moduł już ma jakieś możliwości, a już pewnością dydaktyczne :stuck_out_tongue: )

Może wg tego Czujnik CO2 na ESP8266 (CP2102) / ESPHome - HejDom.

Konfig poniżej:

esphome:
  name: co2sensor
  platform: ESP32
  board: esp32dev
  
substitutions:
   #Modify variables based on your settings
  hostname: 'esp_co2'
 
 
    wifi:
      ssid: "Twoja sieć"
      password: "Twoje hasło"
    #Tutaj wpisujemy swoje ustawienia
      manual_ip:
        static_ip: 
        gateway: 
        subnet: 

     #Enable Web
    web_server:
      port: 80

     #Enable logging
    logger:
      level: DEBUG

    #Enable Home Assistant API
    api:
      password: "hasło do API"
    ota:
      safe_mode: True
      password: "Hasło do OTA"

    #Tutaj podajemy na których pinach działa nasz czujnik 
    uart:
      rx_pin: 3
      tx_pin: 1
      baud_rate: 9600

    sensor:
      - platform: mhz19
        co2:
          name: "MH-Z19 CO2 Value"
        update_interval: 60s

    binary_sensor:
      - platform: status
        name: $hostname status

uart podajemy zgodnie z jakim modułem mamy ja mam esp32 devkit v1 więc mój schemat jest taki:

1 polubienie

@ozzinse SUPER, byłoby jeszcze fajnie gdybyś użył zanczników kodu (</> w menu edytora forum) lub linijki z ``` przed i za blokiem kodu.

1 polubienie

off-topic: @szopen jak się formatuje przekreślony tekst?

tak się to robi :wink: . Podstawy HTML (s) tylko w ptaszkach :wink: <>

1 polubienie

tak jak pogrubiony tylko zamiast ** dajesz ~~

aaa no można też s w “ptaszkach”, ale z tyldami mniej pisania

1 polubienie

Post został podzielony na nowy temat: Czujnik dymu Tuya

TuTek na Wemos d1 mini

obraz

składanka

ważne ale musi być ten czujnik! miałem inny i nie ruszył a tanie nie są.
obraz

Tasmota konfiguracja

obraz

karta

type: horizontal-stack
cards:
  - type: gauge
    entity: sensor.czujnik_co2_mhz19b_carbondioxide
    needle: true
    severity:
      green: 400
      yellow: 1200
      red: 2000
    min: 0
    max: 3000
    name: CO2 sypialnia
  - type: custom:mini-graph-card
    entities:
      - entity: sensor.czujnik_co2_mhz19b_carbondioxide
        color: '#FDCA40'
        name: CO2 Sypialnia stężenie
        show_state: true
        smoothing: true
    font_size: 100
    font_size_header: 15
    footer: null
    hour24: true
    hours_to_show: 12
    icon: mdi:flash
    line_width: 1.5
    name: CO2 Sypialnia stężenie
    points_per_hour: 24
    show:
      fill: fade
      icon: false
      name: true
      points: false
      state: true
      labels: false
      labels_secondary: true
    animate: true

2 polubienia

Podaj co to za “ten” czujnik. Jakieś namiary techniczne…

mhz19b jest kilka z pozoru wyglądają tak samo, pierwszy kupiłem z kabelkami w zestawie i nie ruszył (70 parę złotych - zaoszczędziełem :frowning: i była lipa, drugi kupiłem ten z wlutowanymi stykami 0-5000ppm taki jak poniżej też mhz19b i be problemu poszło, ale kwota już 120zł

u góry ma taką charakterystyczne wybrzuszenie, na hejdom miał właśnie ten czujnik

obraz

Tego nie kupujcie, chyba że coś źle zrobiłem
obraz

a propo CO2, proponuje poczytać trochę na na temat tego gazu i kiedy staje się on dla nas niebezpieczny i jakie ma skutki, stąd ta cała nagonka na CO2.
W skrócie:
400ppm - standard na zewnątrz - mój wskazuje 402ppm - wiec pomiar jest super
1200ppm - w pomieszczeniu granica zielonej skali, robi się nie ciekawie
.>1200ppm - robi się nie zdrowo, jesteśmy zmęczeni, apatyczni, nie wysypiamy się itd

a tu mój wykres, w sypialni, wzrost widoczny jest od razy jak ktoś zaśnie, pomaga jedynie pełne otwarcie okna na na 5minut, żeby wymienić powietrze - CO2 jest gazem ciężkim i wypełnia pomieszczenie od podłogi, wiec wypiera tlen do wentylacji - niespodzianka, a sam się gromadzi i zaczynamy nim oddychać.

w tym tygodniu żona ma nocna zmianę i poszła spać po 10tej
sam też późno poszedłem spać, a rano jak wstałem to otworzyłem okno, stąd nagły spadek.

4 polubienia

Przymierzam się do zakupu MH-Z19B. Trochę czasu minęło i mam pytanie do osób używających tych czujników. Czy z biegiem czasu są jakieś mankamenty z tym sprzętem? Trzeba na coś zwarć uwagę?
Czy nada się na sterowanie w połączeniu do HA z wentylacją mechaniczną w domu?
A może ktoś poleci inny czujnik, który pomoże w zautomatyzowaniu pracy CW? Może coś sprawdzonego z Zigbee?

image
Mam taki problem, że niby coś tam gada z czujnikiem, ale nie do końca, ktoś się spotkał z takim czymś?

Mam podobnie, tylko u mnie chyba nic nie gada… nie zmieniałem nic ani w hardware’rze ani w konfiguracji. Czy mogło się coś zmienić po upgrade ESPHome czy padł czujnik?

[00:29:53][E][uart:015]: Reading from UART timed out at byte 0!
[00:29:53][W][mhz19:034]: Reading data from MHZ19 failed!
[00:29:53][W][component:204]: Component mhz19.sensor took a long time for an operation (0.11 s).
[00:29:53][W][component:205]: Components should block for at most 20-30ms.
#MH-Z19B - czujnik CO₂
  - id: uart_mhz19b
    rx_pin: GPIO3 #RX
    tx_pin: GPIO1 #TX
    baud_rate: 9600

Macie jakiś sprawdzony sposób na kalibrację? Wystawiłem czujnik za okno na 20 minut i skalibrowałem go, ale teraz pokazuje w pokoju 391 ppm. Przed samą kalibracją miał około 4000 ppm, a po 20 minutach trochę ponad 3000 ppm.

Tak.

  1. Jeśli to nowy czujnik daj mu się wysezonować przez 2-4 tygodnie w warunkach normalnych (raczej tam gdzie będziesz go eksploatował) a dopiero potem zajmij się kalibracją (muszą zwietrzeć substancje stosowane w procesie technologicznym).
  2. Kalibrację wykonać tak - najpierw go wystawić na działanie czystego powietrza dłuższy czas, a po włączeniu zasilania pozostawić w czystym powietrzu dłuższy czas, a nie kilka minut (nie wiem ile ten konkretnie sensor wymaga, ale to raczej minimum kilkanaście minut jeśli nie kilka godzin) (ostatnio absolutnie czyste powietrze ma ~426ppm CO2, a nie 400 jak producenci często przyjmują)
  3. Nie przerywać już nigdy zasilania (musi pracować 24/7 od momentu rozpoczęcia kalibracji)
1 polubienie

Z miejsca docelowego, gdzie ma pracować, mam do okna 5m, więc raczej będę musiał go odłączać do i po kalibracji. Czy to ma duży wpływ? I jak z kalibracją w ujemnych temperaturach? Można wystawić ESP z czujnikiem na mróz?

Moim zdaniem w ten sposób nie ma szans się udać.

Gwałtowna zmiana temperatur może w dodatku powodować kondensację pary wodnej (a ten czujnik projektowano bardzo dawno, więc raczej nie ma wbudowanego termohigrometru).

Zajrzałem w datasheet i ten sensor domyślnie ma włączoną okresową autokalibrację i korekcję punktu zera, więc zostaw go w spokoju, jeśli po godzinnym wietrzeniu w czasie zbliżonym do południa (najmniejsze zanieczyszczenia) wskazania nie spadną mu do ~400ppm to jest coś nie w porządku.

Jeśli skalibrowałeś go w zanieczyszczonym powietrzu przy stosunkowo dużym stężeniu CO2 to będziesz miał bzdurne wskazania (lepiej było nie dotykać kalibracji), zostaw go zasilanego na 2 tygodnie i nie grzeb.

Wskazania rzędu kilku tysięcy ppm CO2 są prawdopodobne w pomieszczeniach gdzie przebywają ludzie i/lub zwierzęta.
Nie umieszczaj sensora przy podłodze, w domu optymalna wysokość od podłogi to zwykle jakieś 150cm (no chyba, że chcesz mierzyć co masz w sypialni, to wtedy na wysokości głowy w trakcie snu, ale NIE przy głowie, tylko jak najdalej).

I jeszcze jedno nawet dokumentacja ESPHome mówi o braku stabilnych wskazań zaraz po włączeniu - te wskazania można i należy ignorować…

ustaw warmup_time na 90 sekund

1 polubienie