Powrót do strony głównej

Czujnik CO₂ z analogowym manometrem na Tasmota

Artykuł opisuje montaż analogowego manometru CO₂ na bazie SenseAir S8, silnika krokowego X27-168 i Tasmota. Szczegółowo: wybór komponentów, modyfikacja biblioteki, modele 3D, integracja z inteligentnym domem. Kod i STL pod GPLv3.

Niestandardowy analogowy czujnik CO₂ do inteligentnego domu
Advertisement 728x90

# Analogowy manometr CO₂ na bazie silnika krokowego i Tasmota

Stworzono urządzenie do monitorowania poziomu CO₂ z wyświetlaniem na wskaźniku strzałkowym, imitującym samochodowy lub lotniczy manometr. Wykorzystano czujnik SenseAir S8, silnik krokowy X27-168 z driverem VID6608 oraz firmware Tasmota. Urządzenie integruje się z systemami inteligentnego domu, obsługuje interfejs webowy do konfiguracji i aktualizacji OTA. Komponenty są dostępne na całym świecie, montaż nie wymaga rzadkich części.

Wymagania wobec urządzenia: precyzyjne pomiary CO₂, temperatury, wilgotności, ciśnienia; analogowy wskaźnik z podświetleniem; opcje stylu (lotniczy/retro), podświetlenia (żarówka/RGB); działanie bez programatora dla użytkownika końcowego.

Wybór komponentów i mechaniki

Silnik krokowy X27-168 — standard w samochodowych deskach rozdzielczych (OPEL, VAZ-2110). Rodzina silników obejmuje warianty z czujnikami zera i modele dwストrelochnymi. Driver VID6608 realizuje mikrokroki (1/12 podziału, ~0,028° na krok), zmniejszając hałas i zwiększając precyzję zgodnie z datasheetem.

Google AdInline article slot

Alternatywy jak serwomotory odrzucono ze względu na hałas, niską precyzję i mały kąt obrotu. Analogowe woltomierze nie nadają się: mały kąt (90°), kruchość, egzotyczność części zamiennych. Gotowe manometry z AliExpress są nastawione na street racing, niewygodne do integracji.

Czujnik CO₂ — SenseAir S8 (autorytet w segmencie). Dodatkowo: czujniki klimatyczne (temperatura, wilgotność, ciśnienie). Bez czujników urządzenie działa na komendy z inteligentnego domu.

Prototypowanie drivera:

Google AdInline article slot
  • Początkowo test przez H-Bridge: niska precyzja, wysoki hałas.
  • Z VID6608: płynny ruch, naturalna dynamika wskazówki.

Integracja z Tasmota

Biblioteka SwitecX25 dla ESP32 ma błędy: przepełnienie char (unsigned w ESP32), brak timeoutów zgodnie z datasheetem VID6608. Opracowano nową bibliotekę opartą na SwitecX25:

  • Obsługa tylko driverów typu VID6608 (bezpośrednie sterowanie jest nieefektywne).
  • Konfigurowalne krzywe przyspieszenia.
  • Poprawne timeouty i mikrokroki.
  • Integracja bezpośrednio w Tasmota (bez submodułów).

Tasmota wybrano za gotowe wsparcie inteligentnego domu (MQTT, HTTP), interfejs webowy, OTA. Dodano obsługę instrumentalnych silników krokowych.

Przykład podstawowej konfiguracji w Tasmota (przez interfejs webowy):

Google AdInline article slot
SwitecX25:
  enable: true
  driver: VID6608
  steps: 28800  # Pełny obrót
  acceleration: 500

Obudowa i druk 3D

Obudowa na bazie dawcy ze starych zegarków-budzików. Wydrukowane części na Ender-3: skale (lotnicze/retro), wskazówka, uchwyty. Kąt obrotu ~300° zapewnia czytelność.

Warianty zestawu:

  • Styl: lotniczy (metaliczny wygląd) / retro (vintage).
  • Podświetlenie: bez / żarówka (imitacja żarówki) / RGB (adresowy pasek LED).
  • Czujniki: CO₂ + klimat / tylko klimat / tylko CO₂ / bez czujników.

Montaż: PCB z ESP32, driverem, złączami. Globalna dostępność: silniki ~2€, drivery ~1,5€, SenseAir S8 ~25€.

Funkcjonalność i kalibracja

Wyświetlacz pokazuje aktualny CO₂ (400-2000 ppm, skala z zonami: norma/wietrzyć/krytycznie). Odświeżanie co 5-10 s z wygładzaniem dla płynności.

Algorytm ruchu wskazówki:

  • Obliczenie pozycji: target_pos = map(co2_ppm, 400, 2000, 0, max_steps).
  • Przyspieszanie/hamowanie po krzywej S dla realistycznej inercji.
  • Mikrokroki minimalizują wibracje.

Integracja: tematy MQTT dla CO₂, temp, humidity. Interfejs webowy: wykresy, kalibracja zera, tryb testowy.

Co ważne

  • Precyzja: SenseAir S8 ±50 ppm +30°C, reakcja <20 s.
  • Kompatybilność: Tasmota + Home Assistant/MQTT bez dodatkowej firmware.
  • Powtarzalność: wszystkie części na DigiKey/AliExpress, Gerber w repo.
  • Licencja: GNU GPLv3, kod/3D/STL otwarte.
  • Rozszerzenie: wskazówka pokazuje dowolną metrykę przez MQTT.

— Editorial Team

Advertisement 728x90

Czytaj dalej