diff --git a/README.md b/README.md index 75d528d293979e219055da09446cd3eb51ceac14..599840db6658a00fe20b3bcf0d55017a3bccbf12 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,76 @@ +# Additions by pervasive computing workgroup + + + +## Anleitung + +- **Frontend + Backend:** + [co2ampel2 / Web · GitLab](https://transfer.hft-stuttgart.de/gitlab/co2ampel2/web) + +- **Firmware:** + [co2ampel2 / co2-ampel · GitLab](https://transfer.hft-stuttgart.de/gitlab/co2ampel2/co-2-ampel) + +> **Hinweis:** In der `Config.h` Datei die WLAN-Zugangsdaten und die korrekte Adresse der Ampel anpassen. +Frontend und Backend laufen nun – allerdings ist **InfluxDB noch nicht korrekt mit dem Django-Ninja-Backend verbunden**, da API-Calls auf InfluxDB-Daten **nicht authentifiziert** sind. +Bei Problemen mit dem flashen erstmal schauen ob richtige CH340/CH341 Treiber installiert sind. !!! +## Projekt starten + +```bash +docker-compose up --build +``` +## InfluxDB einrichten + +1. Öffne InfluxDB im Browser: + [http://localhost:8086/signin](http://localhost:8086/signin) - oder Server URL und entsprechender Port + +2. Melde dich an mit: + + - **Username:** `admin` + + - **Password:** `password` + +3. Token generieren: + + - Klicke auf **Python**: + ![[Pasted image 20250627200456.png]] + + - Klicke dann auf **"Get Token"**: + ![[Pasted image 20250627200618.png]] + +4. Token kopieren und in der Datei `.env.docker` im Verzeichnis `backend` **ersetzen**. + +5. Container neu starten: + + +```bash +docker-compose down +docker-compose up --build +``` + +--- + +## Testdaten generieren (für Entwicklung) + +1. Ins Daten-Generator-Verzeichnis wechseln: +```bash +cd data_generation +``` + +2. Virtuelle Umgebung einrichten: +```bash +uv sync +``` + +3. Umgebung aktivieren: +```bash +source .venv/bin/activate +``` + +4. Skript starten: +```bash +python main.py +``` + # CO2 Ampel *CO2 Ampel* is an open-source project, written in C++ for [ESP8266](https://en.wikipedia.org/wiki/ESP8266) or [ESP32](https://en.wikipedia.org/wiki/ESP32). @@ -150,3 +223,6 @@ The commands can be sent via the Serial interface, from the webpage or via MQTT. Copyright © 2022, [HfT Stuttgart](https://www.hft-stuttgart.de/) [GPLv3](https://choosealicense.com/licenses/gpl-3.0/) + + +I was here diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp index ddb10848f6a13d8638bdffaa8c4a2c8c2e95accb..80a7f5bbc5659311b219243c9c3e9879c6cb028c 100644 --- a/ampel-firmware/mqtt.cpp +++ b/ampel-firmware/mqtt.cpp @@ -39,7 +39,7 @@ namespace mqtt { void initialize(const char *sensorId) { json_sensor_format = PSTR("{\"time\":\"%s\", \"co2\":%d, \"temp\":%.1f, \"rh\":%.1f}"); - snprintf(publish_topic, sizeof(publish_topic), "%s%s", config::mqtt_topic_prefix, sensorId); + snprintf(publish_topic, sizeof(publish_topic), "%s%s", config::mqtt_topic_prefix, sensorId); //TODO if (config::mqtt_encryption) { // The sensor doesn't check the fingerprint of the MQTT broker, because otherwise this fingerprint should be updated