Go to file
Matias Mas Viehl 6a6061aa26 ESP-01 E1-Fehler dokumentiert, Python-Backend, robusterer CCS811-Start
- README: Hardware-Belegung, Start im Hotspot und Fehlerbehebung "WLAN Fehler E1"
  (TX/RX muessen gekreuzt sein, gemeinsame Masse, 3,3-V-Versorgung, Durchreiche-Test)
- backend: Node-Server durch Python-Server ersetzt (laeuft unter Windows ohne Installation),
  prueft beim Start SERVER_IP gegen die Laptop-IP; start.bat, firewall_freigeben.bat
- firmware: CCS811 erst nach dem WLAN starten und bei Fehler erneut versuchen,
  WLAN-Neuverbindung hoechstens einmal pro Minute; wifi_config.example.h; ccs811_diagnose

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 12:40:55 +01:00
backend ESP-01 E1-Fehler dokumentiert, Python-Backend, robusterer CCS811-Start 2026-10-27 12:40:55 +01:00
docs ESP-01 E1-Fehler dokumentiert, Python-Backend, robusterer CCS811-Start 2026-10-27 12:40:55 +01:00
firmware ESP-01 E1-Fehler dokumentiert, Python-Backend, robusterer CCS811-Start 2026-10-27 12:40:55 +01:00
frontend Wifi Module and frontend 2026-10-20 10:38:48 +02:00
.gitignore Wifi Module and frontend 2026-10-20 10:38:48 +02:00
CLAUDE.md Grundstruktur Repo 2026-10-08 11:10:15 +02:00
README.md ESP-01 E1-Fehler dokumentiert, Python-Backend, robusterer CCS811-Start 2026-10-27 12:40:55 +01:00

README.md

UCPS Projekt – Gruppe C

Dynamische, kontextsensitive Steuerung des Lernklimas im Vorlesungsraum: Sensordaten (Arduino) werden mit Live-Präferenzen von Dozierenden und Studierenden aggregiert und in einem Webinterface samt 3D-Digitalem-Zwilling dargestellt.

Das vollständige Konzept steht in docs/aggregationskonzept.md.

Datenfluss

Sensoren (Arduino UNO) ➔ WiFi/Bluetooth ➔ Backend (Aggregation & Regeln) ➔ Frontend (Webinterface + 3D-Zwilling)

Aktuell umgesetzt:

DHT11 + CCS811 ─▶ Arduino Uno ─Serial (Pin 0/1)─▶ ESP-01 ─WLAN (Handy-Hotspot)─▶ Laptop: backend/server.py :3000 ◀── Browser

Repo-Struktur

Ordner Inhalt
docs/ Konzept, Architektur- und Entscheidungsdokumente
firmware/ Arduino-Sketches für Sensorik und Übertragung
backend/ Aggregationslogik (Durchschnitt, CO2-Hard-Constraint, Kontext-Sperren), API, Wetterdaten
frontend/ Responsive Webinterface (Live-Werte, Präferenz-Slider) und 3D-Raum

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).

Hardware

Bauteil Anschluss am Uno
DHT11 Daten → Pin 2
LCD 16×2 RS 7, E 8, D4–D7 → 9–12, RW → GND, V0 → Poti
CCS811 (CJMCU-811) VCC → 3,3 V, GND, SDA → A4, SCL → A5, WAK → GND, ADD → GND (Adresse 0x5A)
ESP-01 TX → Pin 0, RX → Pin 1 (gekreuzt!), VCC + EN → 3,3 V, GND; RST, GPIO0, GPIO2 frei

Der 3,3-V-Pin des Uno liefert nur ca. 150 mA, der ESP-01 braucht beim Start kurz bis zu 300 mA. Wir versorgen den ESP deshalb aus einer eigenen 3,3-V-Quelle (zweiter Uno); deren GND muss mit dem GND des Haupt-Uno verbunden sein.

Starten

  1. firmware/dht11_lcd/wifi_config.example.h als wifi_config.h kopieren und Hotspot-Name, Passwort und Laptop-IP eintragen (die Datei ist in .gitignore).
  2. iPhone-Hotspot mit „Maximale Kompatibilität“ einschalten (ESP-01 kann nur 2,4 GHz), Laptop verbinden.
  3. Einmalig backend/firewall_freigeben.bat als Administrator ausführen.
  4. backend/start.bat starten – muss „OK: SERVER_IP … passt“ melden, sonst die angezeigte IP in wifi_config.h eintragen.
  5. ESP-Datenkabel von Pin 0/1 abziehen, firmware/dht11_lcd hochladen, Kabel wieder anstecken, Reset.
  6. LCD zeigt „WLAN OK“, Website: http://localhost:3000

Fehlerbehebung: „WLAN Fehler E1“ (ESP antwortet nicht)

Symptom: Das LCD zeigte nach dem Start immer „WLAN Fehler E1“, egal wie TX/RX gesteckt waren; esp_test zeigte bei jeder Baudrate „keine Antwort“. Zeitweise meldete außerdem der CCS811 „CCS811 Fehler!“.

Ursachen (es waren mehrere gleichzeitig):

  1. TX/RX nach Instructables-Anleitung verkabelt. Die Anleitung „Add WiFi to Arduino UNO“ benutzt den Uno nur als USB-Adapter (leerer Sketch, der Laptop spricht mit dem ESP). Dafür wird gerade verbunden (ESP TX → Pin 1, ESP RX → Pin 0), weil der USB-Chip des Uno intern schon kreuzt. In unserem Projekt spricht aber der Uno selbst mit dem ESP – dann muss gekreuzt werden: ESP TX → Pin 0 (RX), ESP RX → Pin 1 (TX).
  2. Keine gemeinsame Masse. Der ESP hing an der 3,3 V eines zweiten Uno, dessen GND nicht mit dem Haupt-Uno verbunden war. Ohne gemeinsame Masse kommen auf TX/RX keine sauberen Signale an (der ESP läuft trotzdem, die blaue LED blinkt beim Start).
  3. Zu schwache 3,3-V-Versorgung. Hingen ESP und CCS811 gemeinsam am 3,3-V-Pin des Uno, brach die Spannung beim Start des ESP ein: Der ESP startete unzuverlässig, und der CCS811 antwortete beim Initialisieren nicht („CCS811 Fehler!“). Der Sketch startet den CCS811 deshalb jetzt erst nach dem WLAN und versucht es bei Fehlern erneut.

So haben wir es eingegrenzt (Durchreiche-Test, ohne eigenen Sketch):

  1. Leeren Sketch (Datei → Beispiele → 01.Basics → BareMinimum) auf den Uno laden.
  2. ESP gerade anschließen: TX → Pin 1, RX → Pin 0, gemeinsame Masse.
  3. Serial Monitor auf 74880 Baud, ESP neu einstecken → lesbare Bootmeldung (SDK ver: …) heißt: ESP lebt, TX-Leitung ok.
  4. Serial Monitor auf 115200 Baud und „Sowohl NL als auch CR“, AT senden → OK heißt: ESP voll funktionsfähig.
  5. AT+CWMODE=1 und AT+CWJAP="<SSID>","<Passwort>" → WIFI CONNECTED, WIFI GOT IP, OK heißt: Hotspot ok.
  6. Optional AT+UART_DEF=9600,8,1,0,0: ESP dauerhaft auf 9600 Baud (vom Uno zuverlässiger empfangen, der Sketch erkennt 9600 automatisch).
  7. Danach für dht11_lcd wieder gekreuzt anschließen.
LCD Bedeutung
WLAN Fehler E1 ESP antwortet nicht: TX/RX nicht gekreuzt, GND fehlt, Strom zu schwach
WLAN Fehler E2 ESP antwortet, Station-Modus nicht setzbar
WLAN Fehler E3 Hotspot nicht erreichbar: SSID/Passwort, „Maximale Kompatibilität“ aus, Hotspot aus
CCS811 Fehler! Sensor antwortet nicht am I2C: Verkabelung prüfen, firmware/ccs811_diagnose zeigt den genauen Schritt