LW IT Solutions
« Blog Overview /Smart Home / ESPHome i ESP32 w praktyce: Własne czujniki...
This post in other languages:

ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury

Część 2 z 5 serii Home Assistant bez chmury

ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
Spis treści
  1. ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
  2. 1. Architektura sprzętowa i projekt magistrali I2C
  3. 2. Implementacja oprogramowania za pomocą ESPHome YAML
  4. 3. Izolacja w sieci VLAN i natywne API Home Assistant
  5. Podsumowanie
  6. Źródła

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).
Szkic połączeń: ESP32 połączony przez I²C z czujnikiem SCD40, którego trzy odczyty trafiają szyfrowanym łączem lokalnym do Home Assistanta
Całe urządzenie to dwa przewody i plik konfiguracyjny. To, co mierzy, idzie szyfrowanym łączem prosto do własnej instancji — nic nie nadkłada drogi przez producenta.

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.

Home Assistant bez chmury

  1. Zigbee2MQTT vs. ZHA: Budowa bezawaryjnej sieci Mesh w Home Assistant
  2. ESPHome i ESP32 w praktyce: Własne czujniki środowiskowe bez chmury
  3. Presence Detection 2.0: Radary mmWave (LD2410/LD2450) w automatyzacji oświetlenia
  4. WireGuard i Tailscale DMZ: Bezpieczny dostęp z zewnątrz do Home Assistant i własnych serwerów
  5. Lokalny system zarządzania energią: Integracja falowników PV i magazynów energii przez Modbus TCP
Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Komentarze: 2

  1. Wiesław Domagała

    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ć?

    1. Lukas Wojcik Autor

      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ść.

Napisanie komentarza

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Śledź tę kategorię przez RSS

Data Privacy

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (43) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (25) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (15) Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Śledź tę kategorię przez RSS