README: Aufgaben der Hardware- und Software-Komponenten erklaert

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Phase1Deliverables
Matias Mas Viehl 2026-10-27 12:45:40 +01:00
parent 6a6061aa26
commit 14f58515cd
1 changed files with 35 additions and 1 deletions

View File

@ -23,7 +23,41 @@ DHT11 + CCS811 ─▶ Arduino Uno ─Serial (Pin 0/1)─▶ ESP-01 ─WLAN (Hand
## Status
Live-Messwerte laufen Ende-zu-Ende: Der Arduino misst Temperatur, Luftfeuchte, eCO₂ und TVOC, zeigt sie auf dem LCD und sendet sie per ESP-01 an `backend/server.py`; die Website (`frontend/`) zeigt sie live mit Verlauf und CO₂-Alarm. Aggregation/Präferenzen und 3D-Zwilling fehlen noch (siehe [docs/offene-punkte.md](docs/offene-punkte.md)).
## Hardware
## Komponenten und ihre Aufgabe
### Hardware
| Komponente | Aufgabe |
|---|---|
| **Arduino Uno** (Haupt-Uno) | Herz der Messstation: liest alle 2 s die Sensoren, zeigt die Werte auf dem LCD und gibt sie an den ESP weiter. |
| **DHT11** | Misst **Temperatur** (°C) und **Luftfeuchte** (%). Langsam, braucht ca. 2 s zwischen zwei Messungen. |
| **CCS811 / CJMCU-811** | Misst die Luftqualität: **eCO₂** (ppm) und **TVOC** (ppb, flüchtige organische Stoffe). eCO₂ ist ein aus den Gasen *geschätzter* CO₂-Wert, keine echte CO₂-Messung. Temperatur und Feuchte vom DHT11 bekommt er zur Korrektur. In den ersten ~20 min nach dem Einschalten oft 400 ppm / 0 ppb. |
| **LCD 16×2** | Zeigt die Werte direkt an der Station. Nur 2 Zeilen, daher Wechsel zwischen Temp/Luft und CO2/TVOC. Beim Start zeigt es den WLAN-Status („WLAN OK“ oder „Fehler E1“ …). |
| **Potentiometer** | Stellt den Kontrast des LCD ein. |
| **ESP-01 (ESP8266)** | WLAN-Modul, da der Uno selbst kein WLAN hat. Der Uno schickt ihm Textbefehle („AT-Befehle“), der ESP verbindet sich mit dem Hotspot und schickt die Werte an den Laptop. |
| **Zweiter Uno** | Liefert dem ESP nur Strom (3,3 V), weil der Haupt-Uno zu wenig Strom für den ESP hat. Braucht **gemeinsame Masse** (GND) mit dem Haupt-Uno. |
| **Handy-Hotspot** | Das WLAN, in dem sich ESP und Laptop treffen. Muss 2,4 GHz anbieten (iPhone: „Maximale Kompatibilität“). |
| **Laptop** | Empfängt die Messwerte und stellt die Website bereit. |
### Software
| Datei | Aufgabe |
|---|---|
| `firmware/dht11_lcd/dht11_lcd.ino` | **Hauptprogramm** auf dem Uno: Sensoren lesen, LCD anzeigen, Senden anstoßen. Speichert außerdem stündlich die Kalibrierung („Baseline“) des CCS811 im EEPROM, damit die Werte nach einem Neustart schneller stimmen. |
| `firmware/dht11_lcd/esp_wifi.h` | Steuert den ESP: Baudrate finden, mit dem Hotspot verbinden, Messwerte als **HTTP-POST** an den Laptop schicken. |
| `firmware/dht11_lcd/wifi_config.h` | Zugangsdaten (Hotspot-Name, Passwort, Laptop-IP). Nicht im Repo, Vorlage: `wifi_config.example.h`. |
| `backend/server.py` | **Server** auf dem Laptop (Port 3000): nimmt die Messwerte vom ESP an, merkt sich die letzten 100 und liefert die Website aus. |
| `backend/start.bat` | Startet den Server per Doppelklick und prüft, ob die Laptop-IP zu `wifi_config.h` passt. |
| `backend/firewall_freigeben.bat` | Gibt Port 3000 in der Windows-Firewall frei, damit der ESP den Laptop erreicht. |
| `backend/simulator.py` | Schickt erfundene Werte – zum Testen ohne Arduino. |
| `frontend/` | **Website**: fragt alle 2 s beim Server die neuesten Werte ab und zeigt Kacheln, Verlaufsdiagramm und CO₂-Alarm ab 1000 ppm. |
| `firmware/esp_test`, `firmware/ccs811_test`, `firmware/ccs811_diagnose` | Testprogramme zur Fehlersuche, im normalen Betrieb nicht nötig. |
### Ablauf einer Messung
1. Der **Uno** liest **DHT11** und **CCS811** aus und zeigt die Werte auf dem **LCD**.
2. Etwa alle 4 s schickt er sie über Pin 0/1 an den **ESP-01**.
3. Der ESP sendet sie über den **Hotspot** an den **Laptop** (`server.py`, Port 3000).
4. Der **Browser** fragt den Server alle 2 s nach den neuesten Werten und zeigt sie auf der Website.
## Hardware (Verkabelung)
| Bauteil | Anschluss am Uno |
|---|---|
| DHT11 | Daten → Pin 2 |