# 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.
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:
- 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):
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
Brak komentarzy.