Przejdź do treści
17.09.2026
Home Assistant

Czujnik CO2 SCD40 z ESPHome w Home Assistant: automatyzacje wentylacji

Czym jest czujnik CO2 SCD40 i dlaczego warto go mieć w inteligentnym domu

SCD40 to cyfrowy czujnik dwutlenku węgla oparty na technologii NDIR, czyli niedyspersyjnej podczerwieni. Mierzy stężenie CO2 w powietrzu w zakresie od około 400 do 5000 ppm. Do tego dokłada pomiar temperatury i wilgotności względnej. Wszystko w jednej małej obudowie, którą podłączasz przez I2C do ESP32 albo ESP8266.

Dlaczego to ma znaczenie? Bo poziom CO2 to najlepszy wskaźnik jakości powietrza w pomieszczeniu, jaki możemy mierzyć tanio i wiarygodnie. Świeże powietrze ma stężenie około 400-450 ppm. Gdy w sypialni robi się 1500 ppm i więcej, zaczynasz odczuwać senność, spadek koncentracji i bóle głowy. Nie zawsze zdajesz sobie sprawę z przyczyny.

Typowy przykład: pracujesz kilka godzin w zamkniętym gabinecie. Czujesz zmęczenie, myślisz że to po prostu gorszy dzień. Tymczasem czujnik pokazuje 1800 ppm, a okno było ostatnio otwierane rano. Wentylacja mechaniczna z automatyką włączyłaby się dawno temu.

Poziom CO2 Odczucia i skutki Zalecane działanie
400-800 ppm Powietrze dobre, pełna koncentracja Nic nie robisz, jest w porządku
800-1200 ppm Lekkie zmęczenie, spadek wydajności Krótkie wietrzenie lub zwiększenie nawiewu
1200-2000 ppm Senność, bóle głowy, gorsze samopoczucie Intensywna wymiana powietrza
Powyżej 2000 ppm Wyraźne pogorszenie funkcji poznawczych Natychmiastowe działanie, otwarcie okien

Moim zdaniem SCD40 bije na głowę tańsze czujniki VOC czy eCO2, ponieważ mierzy rzeczywiste stężenie dwutlenku węgla metodą optyczną, a nie szacuje je na podstawie innych gazów. Czujniki eCO2 potrafią przekłamać wynik o kilkaset ppm, szczególnie w pomieszczeniach z gotowaniem albo dymem. W automatyzacji wentylacji taka pomyłka oznacza albo przewentylowany dom, albo niedowentylowany. Żadna z tych opcji nie jest dobra.

Podłączenie SCD40 do ESP32 i konfiguracja w ESPHome

SCD40 gada po I2C. To dobra wiadomość, bo większość płytek ESP32 ma ten interfejs dostępny od ręki i nie trzeba nic lutować poza czterema przewodami. Podłączasz VCC do 3,3 V, GND do masy, SDA i SCL do wybranych pinów. Reszta to kwestia konfiguracji.

Typowy układ wygląda tak: moduł SCD40 wisi na krótkich kablach, najwyżej kilkanaście centymetrów od płytki. Dłuższe przewody przy I2C to proszenie się o kłopoty, zwłaszcza gdy obok pracuje przekaźnik albo zasilacz impulsowy. Jeśli musisz iść dalej, zejdź z prędkością magistrali albo dodaj pull-upy. Diabeł tkwi w szczegółach.

W ESPHome wpisujesz czujnik przez platformę scd4x i wskazujesz adres I2C. Domyślny to 0x62. Poniżej zestawienie najważniejszych parametrów, które warto ustawić od razu:

Parametr Wartość Uwagi
update_interval 60 s krótszy nie ma sensu, czujnik i tak uśrednia
address 0x62 standard dla SCD40 i SCD41
temperature_offset zależnie od obudowy ciepło z ESP32 podnosi odczyt
automatic_self_calibration true działa tylko przy regularnym kontakcie ze świeżym powietrzem

Moim zdaniem warto najpierw uruchomić czujnik na biurku i porównać odczyty z drugim, niezależnym miernikiem, zanim wrzucisz go do docelowej obudowy. Powód jest prosty: ESP32 grzeje się w pracy, a SCD40 mierzy temperaturę wewnątrz swojego układu. Bez korekty temperatury odczyt CO2 też potrafi dryfować, bo pomiar jest kompensowany termicznie. Lepiej złapać ten błąd na etapie testów niż potem szukać go tygodniami.

Kalibracja ASC wymaga, żeby czujnik co jakiś czas widział powietrze o stężeniu zbliżonym do 400 ppm. Zamknięta szafka w piwnicy to zły pomysł. A co jeśli pomieszczenie faktycznie rzadko bywa przewietrzane?

Integracja czujnika z Home Assistant i wizualizacja danych

Po wgraniu konfiguracji przez ESPHome czujnik SCD40 pojawia się w Home Assistant automatycznie, jako osobne encje. Widzisz je od razu w ustawieniach urządzenia. Nie musisz nic dopisywać ręcznie, chyba że chcesz zmienić nazwy encji albo przypisać je do konkretnego pomieszczenia.

Samo pojawienie się encji to dopiero połowa roboty. Diabeł tkwi w szczegółach, czyli w tym, jak dane są zapisywane i prezentowane. Domyślnie historia encji trwa tyle, ile ustawiony rekorder. Bez dodatkowej konfiguracji po restarcie tracisz część wykresów.

Do wizualizacji używam zwykle dwóch podejść: karty history-graph dla szybkiego podglądu oraz Mini Graph Card dla bardziej rozbudowanych widoków. Pierwsza działa od razu, bez instalacji HACS. Druga wymaga dodatkowej integracji, ale daje większą kontrolę nad osiami i kolorami.

Encja Typ danych Zastosowanie Próg alarmowy
sensor.co2_sypialnia ppm Główny wskaźnik jakości powietrza 1200 ppm
sensor.temperatura_sypialnia °C Korekta odczytu CO2 brak
sensor.wilgotnosc_sypialnia % Komfort i ryzyko pleśni 65%
binary_sensor.co2_alert on/off Wyzwalacz automatyzacji wentylacji stan on

Moim zdaniem lepiej trzymać progi w osobnym input_number niż wpisywać je na sztywno w automatyzacji, ponieważ zmiana wartości zajmuje wtedy kilka sekund z panelu, a nie edycję YAML. To zwłaszcza przydatne zimą, gdy chcesz podnieść tolerancję CO2, żeby nie wychładzać mieszkania zbyt częstym przewietrzaniem.

Typowy scenariusz wygląda tak: budzisz się rano, patrzysz na wykres z nocy i widzisz, że stężenie CO2 w sypialni przekroczyło 1500 ppm już około drugiej w nocy. Wentylacja mechaniczna nie zadziałała, bo próg był ustawiony na 1800 ppm. Kilka kliknięć w ustawieniach i problem znika na kolejną noc.

Automatyzacje wentylacji oparte na poziomie CO2

Sam pomiar to dopiero połowa roboty. Druga połowa to reakcja systemu, która sprawia, że wentylacja działa wtedy, kiedy naprawdę trzeba. W Home Assistant progi ustawia się na podstawie odczytów z SCD40, a automatyzacja włącza lub wyłącza wentylator. Brzmi prosto. Tylko że diabeł tkwi w szczegółach, bo źle dobrany próg potrafi męczyć domowników szumem albo przewietrzać pomieszczenie, gdy nikt w nim nie przebywa.

Moim zdaniem lepiej oprzeć automatyzację na kilku progach niż na jednej wartości, ponieważ pojedynczy punkt odcięcia powoduje ciągłe załączanie i wyłączanie wentylatora przy wahaniach w okolicy progu. Wartości poniżej około 800 ppm uznaje się powszechnie za świeże powietrze, przedział 800-1200 ppm to sygnał do rozważenia wymiany powietrza, a powyżej 1200 ppm wiele osób zgłasza spadek koncentracji i senność. Te liczby nie są sztywne, bo wiele zależy od kubatury i liczby osób w pomieszczeniu.

Typowy przykład: czujnik w sypialni pokazuje 700 ppm wieczorem, a nad ranem, przy zamkniętych drzwiach, wartość rośnie do 1400 ppm. Automatyzacja z histerezą włącza wentylację przy 1000 ppm i wyłącza dopiero przy 750 ppm, dzięki czemu wentylator nie pracuje non stop. Do tego warto dodać warunek obecności, na przykład stan czujnika ruchu, żeby nie wentylować pustego pokoju.

Poziom CO2 Interpretacja Reakcja automatyzacji Tryb pracy
do 800 ppm powietrze świeże wentylacja wyłączona czuwanie
800-1000 ppm akceptowalnie brak działania lub bieg niski monitoring
1000-1400 ppm wymaga wymiany bieg średni praca ciągła
powyżej 1400 ppm powietrze zużyte bieg wysoki wzmocnienie

A co jeśli czujnik zawiedzie albo zgubi połączenie z siecią? Warto ustawić w automatyzacji warunek, który przy braku danych utrzymuje wentylację na niskim biegu, zamiast zostawiać ją wyłączoną. To zabezpieczenie kosztuje kilka linijek kodu, a ratuje komfort w sytuacji, gdy nikt nie patrzy na wykresy.

Kalibracja, dokładność pomiarów i typowe problemy

SCD40 to czujnik NDIR, który mierzy CO2 metodą optyczną. To ważne, bo oznacza, że nie wymaga kalibracji tak często jak tańsze czujniki VOC czy eCO2. Producent zaleca kalibrację automatyczną (ASC), która działa, gdy czujnik przez dłuższy czas widzi świeże powietrze. Brzmi prosto. Tylko że w praktyce wiele osób trzyma czujnik w zamkniętym pokoju i ASC nigdy nie ma szansy zadziałać.

Typowy scenariusz: czujnik wisi w sypialni, okno otwierane raz na dobę. Wartości powoli dryfują w górę, a użytkownik zastanawia się, dlaczego w pustym pokoju widzi 800 ppm. To nie awaria. To brak referencji.

ProblemObjawCo pomagaKiedy reagować
Dryf bazowej liniiStałe zawyżenie lub zaniżenieWietrzenie lub kalibracja FRCGdy odchylenie przekracza ~50 ppm
KondensacjaSkoki i spadki bez związku z wentylacjąOchrona przed wilgocią, obudowaPo każdym zalaniu czujnika
Zakłócenia I2CBrak odczytu, błędy w logach ESPHomeKrótsze przewody, pull-upyGdy pojawiają się losowe restarty
Zbyt rzadki odczytOpóźniona reakcja automatyzacjiInterwał 30-60 sZawsze przy sterowaniu wentylacją

Moim zdaniem kalibracja ręczna FRC ma sens tylko wtedy, gdy masz pewne odniesienie, na przykład czujnik wystawiony na zewnątrz w stabilny dzień. Wartość referencyjna CO2 w powietrzu zewnętrznym to około 420 ppm, choć w mieście bywa wyższa. Bez tego lepiej zaufać ASC i zadbać o regularne wietrzenie.

Diabeł tkwi w szczegółach. SCD40 mierzy też temperaturę i wilgotność, ale podaje je z własnego układu, który się nagrzewa. Do precyzyjnych odczytów lepiej użyć osobnego czujnika, jak w artykule o czujniku DHT22 w ESPHome.

Najczęściej zadawane pytania (FAQ)

Zebrałam pytania, które najczęściej wracają przy okazji SCD40 i ESPHome. Krótko, konkretnie, bez owijania w bawełnę.

Czy SCD40 wymaga kalibracji?

Producent przewiduje kalibrację automatyczną, opartą na założeniu, że w ciągu tygodnia czujnik "widzi" okresy świeżego powietrza. W praktyce mało kto wietrzy dom o tej samej porze każdego dnia, więc wyniki bywają przekłamane. Ręczna kalibracja do znanego poziomu odniesienia bywa skuteczniejsza szerzej opisaliśmy to w artykule "Esphome czujnik temperatury wilgotnosci dht22".

Jeśli pomieszczenie rzadko jest puste, kalibracja automatyczna może dryfować. To zmienia wszystko, gdy automatyzacja wentylacji opiera się na błędnych odczytach.

Jak często czytać dane z SCD40?

  • Tryb ciągły co kilka sekund sprawdza się przy sterowaniu wentylacją na bieżąco.
  • Odczyt co minutę wystarcza, gdy interesuje Cię trend w ciągu dnia.
  • Tryb niski pobór energii przydaje się w urządzeniach zasilanych bateryjnie.
  • Zbyt częste odpytywanie po I2C potrafi zapchać magistralę, jeśli na niej wiszą inne układy.

SCD40 czy SCD41?

SCD41 ma szerszy zakres pomiarowy i lepiej radzi sobie przy niskich stężeniach. SCD40 wystarcza w typowym mieszkaniu, gdzie poziomy CO2 rzadko przekraczają górne widełki. Różnica w cenie bywa odczuwalna, więc warto zastanowić się, czy faktycznie potrzebujesz zapasu.

Cecha SCD40 SCD41
Zakres pomiarowy do 40 000 ppm do 40 000 ppm, lepsza czułość na dole skali
Typowe zastosowanie dom, biuro dom, biuro, pomieszczenia z niskim stężeniem
Interfejs I2C I2C
Wsparcie w ESPHome tak, gotowy komponent tak, gotowy komponent

Moim zdaniem w większości domowych instalacji SCD40 jest lepszym wyborem niż SCD41, ponieważ różnica w dokładności przy typowych stężeniach jest niewielka, a oszczędność pozwala dołożyć kolejny czujnik w innym pomieszczeniu.

Czy SCD40 nadaje się do łazienki lub kuchni?

Wilgoć i tłuszcz to nie są warunki, które ten czujnik lubi. W takich miejscach lepiej sprawdza się rozwiązanie oparte na czujniku temperatury i wilgotności, jak opisane w artykule o ESPHome z DHT22, a samo CO2 mierzyć w pokoju obok.

Typowy przykład: czujnik w sypialni pokazuje wzrost CO2 w nocy, a wentylacja wyciągowa w łazience działa niezależnie od tego odczytu. Dwa osobne układy, jeden wspólny cel.

Udostępnij: Facebook Twitter
Ten artykuł powstał przy wsparciu technologii AI.
Avatar Renata Lejek

Renata Lejek

Autor serwisu SmartHome

Interesuję się automatyką budynkową i tym, jak łączyć różne technologie smart home bez zamykania się w jednym ekosystemie. Staram się aktualizować treści, gdy zmieniają się standardy (Zigbee, Matter, Home Assistant).

Czy ten artykuł był pomocny?
Bądź pierwszy!

Komentarze (0)

Dodaj komentarz

Podobne artykuły

Więcej