Analoger CO₂-Anzeiger mit Schrittmotor und Tasmota
Wir haben ein Gerät zur Überwachung von CO₂-Werten entwickelt, das auf einem Nadelanzeiger dargestellt wird, der Automobil- oder Flugzeuginstrumente nachahmt. Es verwendet den SenseAir S8 Sensor, den X27-168 Schrittmotor mit VID6608-Treiber und Tasmota-Firmware. Das Gerät lässt sich in Smart-Home-Systeme integrieren und bietet eine Weboberfläche für Konfiguration und OTA-Updates. Alle Komponenten sind weltweit erhältlich, und der Zusammenbau erfordert keine exotischen Teile.
Anforderungen an das Gerät: präzise Messung von CO₂, Temperatur, Feuchtigkeit und Druck; analoger Anzeiger mit Hintergrundbeleuchtung; Stiloptionen (Luftfahrt/Retro) sowie Beleuchtungsvarianten (Glühfaden/RGB); Bedienung durch Endnutzer ohne Programmierkenntnisse.
Auswahl der Komponenten und Mechanik
Der X27-168 Schrittmotor ist Standard in Automobil-Instrumentenblättern (OPEL, VAZ-2110). Die Motorfamilie umfasst Varianten ohne Nullstell-Sensor und Modelle mit Doppelzeiger. Der VID6608-Treiber realisiert Mikroschritte (1/12-Teilung, ~0,028° pro Schritt) und reduziert so Geräusche sowie verbessert die Genauigkeit gemäß Datenblatt.
Alternativen wie Servos scheiterten an Geräuschentwicklung, geringer Genauigkeit und begrenztem Drehbereich. Analoge Voltmeter eignen sich nicht: kleiner Winkel (90°), empfindlich, exotische Teile. Fertig-Anzeiger von AliExpress zielen auf Street-Racing ab und sind für Integration unpraktisch.
CO₂-Sensor: SenseAir S8 (Branchenstandard). Zusätzliche Klimasensoren (Temperatur, Feuchtigkeit, Druck). Ohne Sensoren arbeitet das Gerät auf Smart-Home-Befehle.
Treiber-Prototyping:
- Zunächst getestet mit H-Brücke: geringe Genauigkeit, hoher Lärm.
- Mit VID6608: flüssige Bewegung, natürliche Zeigerdynamik.
Tasmota-Integration
Die SwitecX25-Bibliothek für ESP32 hat Fehler: char-Überlauf (unsigned in ESP32), fehlende Timeouts gemäß VID6608-Datenblatt. Es wurde eine neue Bibliothek auf Basis von SwitecX25 entwickelt:
- Unterstützung nur für VID6608-ähnliche Treiber (direkte Steuerung ineffizient).
- Konfigurierbare Beschleunigungskurven.
- Korrekte Timeouts und Mikroschritte.
- Direkte Integration in Tasmota (keine Submodule).
Tasmota wurde wegen der integrierten Smart-Home-Unterstützung (MQTT, HTTP), Weboberfläche und OTA gewählt. Hinzugefügt wurde die Unterstützung für Instrumenten-Schrittmotoren.
Beispielhafte Basis-Tasmota-Konfiguration (über Weboberfläche):
SwitecX25:
enable: true
driver: VID6608
steps: 28800 # Volle Drehung
acceleration: 500
Gehäuse und 3D-Druck
Gehäuse basierend auf Gehäusen von Spender-Weckern. Gedruckte Teile auf Ender-3: Skalen (Luftfahrt/Retro), Zeiger, Halterungen. ~300° Drehbereich gewährleistet gute Ablesbarkeit.
Konfigurationsoptionen:
- Stil: Luftfahrt (metallisch) / Retro (vintage).
- Hintergrundbeleuchtung: keine / Glühfaden (Nachbildung von Glühlampe) / RGB (adressierbare Leiste).
- Sensoren: CO₂ + Klima / nur Klima / nur CO₂ / keine Sensoren.
Zusammenbau: Platine mit ESP32, Treiber, Anschlüssen. Weltweite Verfügbarkeit: Motoren ~2 €, Treiber ~1,50 €, SenseAir S8 ~25 €.
Funktionalität und Kalibrierung
Der Anzeiger zeigt den aktuellen CO₂-Wert (400–2000 ppm, Skala mit Zonen: normal/belüften/kritisch). Updates alle 5–10 Sekunden mit Glättung für flüssige Bewegung.
Zeiger-Bewegungsalgorithmus:
- Schrittberechnung:
target_pos = map(co2_ppm, 400, 2000, 0, max_steps). - Beschleunigung/Verzögerung via S-Kurve für realistische Trägheit.
- Mikroschritte minimieren Vibrationen.
Integration: MQTT-Topics für CO₂, Temperatur, Feuchtigkeit. Weboberfläche: Diagramme, Nullkalibrierung, Testmodus.
Wichtige Punkte
- Genauigkeit: SenseAir S8 ±50 ppm ±3 % bei 30 °C, Reaktionszeit <20 Sekunden.
- Kompatibilität: Tasmota + Home Assistant/MQTT ohne zusätzliche Firmware.
- Reproduzierbarkeit: Alle Teile bei DigiKey/AliExpress, Gerber-Dateien im Repository.
- Lizenz: GNU GPLv3, Code/3D/STL Open Source.
- Erweiterbarkeit: Zeiger zeigt beliebige Metriken via MQTT an.
— Editorial Team
Noch keine Kommentare.