ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
Część 2 z 5 serii Home Assistant bez chmury

Spis treści
ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
Komercyjnie dostępne monitory jakości powietrza często opierają się na zamkniętych ekosystemach chmurowych, co generuje opóźnienia, podatności bezpieczeństwa oraz zależność od zewnętrznych serwerów. Zaprojektowanie własnych czujników środowiskowych w oparciu o mikrokontrolery ESP32 i oprogramowanie ESPHome umożliwia pełną lokalną autonomię, sekundową telemetrię i bezpośrednią integrację z Home Assistant. Zastosowanie prawdziwych czujników NDIR (niedyspersyjnej podczerwieni) takich jak Sensirion SCD40 lub SCD30 wraz z modułami LZO (VOC) oraz precyzyjnego pomiaru temperatury i wilgotności dostarcza dane o dokładności laboratoryjnej, które nie opuszczają izolowanej sieci lokalnej VLAN.
1. Architektura sprzętowa i projekt magistrali I2C
Precyzyjny pomiar jakości powietrza wymaga doboru czujników mierzących rzeczywiste stężenia gazów na podstawie fizycznych właściwości, zamiast polegania na matematycznych estymacjach z tanich czujników metalo-tlenkowych. Podłączenie wielu modułów do wspólnej magistrali I2C wymaga odpowiedniego doboru rezystorów podciągających oraz stabilnego zasilania:
- Sensirion SCD40 / SCD30 (CO2): Działając w oparciu o fotoakustyczną lub optyczną metodę NDIR, moduły te mierzą rzeczywiste stężenie dwutlenku węgla w zakresie od 400 ppm do 5000 ppm z wysoką dokładnością i niskim dryfem w czasie.
- Moduły VOC i termohigrometrów: Równoległa integracja czujników takich jak Bosch BME680 lub Sensirion SGP40 wraz z SHT40 pozwala na monitorowanie indeksu lotnych związków organicznych oraz skompensowanej temperaturowo wilgotności względnej na tych samych liniach danych 3.3 V I2C (SDA/SCL).
2. Implementacja oprogramowania za pomocą ESPHome YAML
ESPHome kompiluje lekki, wysoce zoptymalizowany kod w języku C++ bezpośrednio z uporządkowanych plików konfiguracyjnych YAML. Aktywacja procedur automatycznej kalibracji – takich jak Automatic Self-Calibration (ASC) dla czujników NDIR – gwarantuje długoterminową stabilność linii bazowej bez konieczności ręcznej ingerencji.
# Przykład: Konfiguracja ESPHome dla ESP32 z czujnikiem SCD40 i pomiarem środowiskowym
esphome:
name: "env-monitor-office"
platform: ESP32
board: esp32dev
wifi:
ssid: "IoT_VLAN_20"
password: "StrongVLANPasswordHere"
api:
encryption:
key: "32CharacterBase64EncodedKey====="
i2c:
sda: GPIO21
scl: GPIO22
scan: true
frequency: 100kHz
sensor:
- platform: scd4x
co2:
name: "Office CO2"
accuracy_decimals: 0
temperature:
name: "Office Temperature"
accuracy_decimals: 1
humidity:
name: "Office Humidity"
accuracy_decimals: 1
update_interval: 30s
automatic_self_calibration: true
3. Izolacja w sieci VLAN i natywne API Home Assistant
W celu maksymalizacji bezpieczeństwa sieciowego, własnoręcznie zbudowane czujniki ESP32 powinny funkcjonować w dedykowanej sieci wirtualnej IoT VLAN z zablokowanym dostępem do Internetu na poziomie zapory sieciowej. Komunikacja z Home Assistant realizowana jest lokalnie przez natywne API ESPHome (port TCP 6053) z wykorzystaniem szyfrowania Noise Protocol. Architektura ta zapobiega wyciekom danych, zapewniając natychmiastową aktualizację stanów dla systemów sterowania wentylacją mechaniczną, rekuperacją oraz powiadomień o wietrzeniu pomieszczeń.
Podsumowanie
Budowa własnych czujników środowiskowych przy użyciu mikrokontrolerów ESP32, modułów NDIR Sensirion SCD40 i platformy ESPHome eliminuje zależność od chmury oraz zamkniętych silosów danych. Umieszczenie sensorów w izolowanej sieci VLAN i połączenie ich przez szyfrowane, natywne API Home Assistant gwarantuje laboratoryjną dokładność telemetrii, maksymalną prywatność oraz najwyższą stabilność działania.
Źródła
Home Assistant bez chmury
- Zigbee2MQTT vs. ZHA: Budowa bezawaryjnej sieci Mesh w Home Assistant
- ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
- Presence Detection 2.0: Radary mmWave (LD2410/LD2450) w automatyzacji oświetlenia
- WireGuard i Tailscale DMZ: Bezpieczny dostęp z zewnątrz do Home Assistant i własnych serwerów
- Lokalny system zarządzania energią: Integracja falowników PV i magazynów energii przez Modbus TCP
Komentarze: 2
Wybór prawdziwego czujnika NDIR zamiast przeliczanego zamiennika to rada, która oszczędza rozczarowania — tanie moduły MOX pokazują ładne wykresy niezwiązane z CO2.
Pytanie o montaż: SCD40 na jednej płytce z ESP32 grzeje się od sąsiada, a temperatura wchodzi przecież do kompensacji wilgotności. Jak sobie z tym poradzić?
To najczęstszy błąd przy własnych czujnikach i widać go od razu: temperatura o dwa do czterech stopni wyższa niż w pokoju, a za nią zaniżona wilgotność względna.
Pierwsza część rozwiązania jest fizyczna: czujnik na krótkim przewodzie, poza obudową modułu, z otworami zapewniającymi przepływ powietrza i bez umieszczania go nad stabilizatorem napięcia. Sam ESP32 potrafi grzać kilkaset miliwatów, a w zamkniętym pudełku to wystarczy.
Druga część to nastawa: SCD4x ma własne przesunięcie temperatury, ustawiane w ESPHome przez
temperature_offset, i kalibruje się je względem termometru odniesienia po kilku godzinach pracy. Warto wiedzieć, że nie jest to poprawka wyłącznie kosmetyczna — czujnik używa temperatury do własnej kompensacji, więc błędne przesunięcie przesuwa również odczyt CO2, choć w mniejszym stopniu niż wilgotność.