Initial commit ESP32 Feuchtigkeit Sensor Projekt

This commit is contained in:
Ismail Ali
2026-03-11 21:40:51 +01:00
commit 10bfd3075a
11 changed files with 503 additions and 0 deletions

167
test/README Normal file
View File

@@ -0,0 +1,167 @@
# 🌡️ ESP32 Feuchtesensor mit MQTT & Home Assistant
Dieses Projekt liest mehrere analoge Feuchtesensoren über den **ESP32** aus und sendet die Messwerte per **MQTT** an **Home Assistant**.
Ein definierter Schwellenwert löst zusätzlich einen **Feuchtealarm** aus.
---
## ⚙️ Hardware
- ESP32 Dev-Board (z. B. UPesy Wroom)
- bis zu **4 analoge Bodenfeuchtesensoren**
- USB-Kabel für Programmierung
- WLAN mit Zugang zu Home Assistant (im gleichen Netzwerk)
---
## 🧙‍♂️ Projektstruktur
```
ESP32-FEUCHTE/
├── src/
│ └── main.cpp # Hauptprogramm mit Sensorlogik und MQTT
├── platformio.ini # Build- und Upload-Konfiguration
├── lib/ # (optional) weitere Libraries
├── test/ # Tests
├── README.md # Projektbeschreibung (diese Datei)
└── docs/ # Entwickler- und Benutzerhandbuch
```
---
## ⚖️ Einrichtung
### 1. PlatformIO öffnen
Projekt im VS Code öffnen und sicherstellen, dass die Erweiterung **PlatformIO** installiert ist.
### 2. WLAN- und MQTT-Daten anpassen
In `main.cpp` die folgenden Werte ändern:
```cpp
const char* ssid = "DEIN_WLAN";
const char* password = "DEIN_PASSWORT";
const char* mqtt_server = "192.168.x.x"; // IP deines Home Assistant
const char* mqtt_user = "mqttuser";
const char* mqtt_pass = "mqttpasswort";
```
### 3. ESP32 flashen
USB-Port im `platformio.ini` prüfen:
```ini
upload_port = COM4
monitor_speed = 115200
```
Dann über **PlatformIO → Upload** das Programm kompilieren und flashen.
---
## 🌐 MQTT-Struktur
Der ESP32 veröffentlicht folgende Topics:
| Topic | Beschreibung | Beispiel |
| ---------------------- | ------------------------------ | -------- |
| `home/feuchte/sensor1` | Feuchtewert Sensor 1 (0100 %) | `42.3` |
| `home/feuchte/sensor2` | Feuchtewert Sensor 2 (0100 %) | `85.7` |
| `home/feuchte/sensor3` | Feuchtewert Sensor 3 (0100 %) | `10.4` |
| `home/feuchte/sensor4` | Feuchtewert Sensor 4 (0100 %) | `70.1` |
| `home/feuchte/alarm` | 1 = Feucht, 0 = Trocken | `1` |
---
## 🏠 Integration in Home Assistant
1. **MQTT-Integration aktivieren**
→ Einstellungen → Geräte & Dienste → Integration hinzufügen → MQTT
→ Broker konfigurieren oder den internen Broker von Home Assistant nutzen.
2. **Entitäten anlegen** (in `configuration.yaml` oder per GUI):
```yaml
binary_sensor:
- name: "Feuchte Alarm"
state_topic: "home/feuchte/alarm"
payload_on: "1"
payload_off: "0"
device_class: moisture
sensor:
- name: "Feuchte Sensor 1"
state_topic: "home/feuchte/sensor1"
unit_of_measurement: "%"
- name: "Feuchte Sensor 2"
state_topic: "home/feuchte/sensor2"
unit_of_measurement: "%"
- name: "Feuchte Sensor 3"
state_topic: "home/feuchte/sensor3"
unit_of_measurement: "%"
- name: "Feuchte Sensor 4"
state_topic: "home/feuchte/sensor4"
unit_of_measurement: "%"
```
3. **Neuladen:**
→ Entwicklerwerkzeuge → YAML → _Manuell konfigurierte MQTT-Entitäten neu laden_
4. **Prüfen:**
→ Entwicklerwerkzeuge → Zustände → Suchbegriff „feuchte“
→ Werte sollten live aktualisiert werden.
---
## 🔔 Optionale Automationen
Beispiel: Benachrichtigung, wenn Feuchtealarm aktiv ist:
```yaml
automation:
- alias: "Feuchtealarm"
trigger:
- platform: state
entity_id: binary_sensor.feuchte_alarm
to: "on"
action:
- service: notify.mobile_app_iphone
data:
message: "🚨 Feuchte erkannt! Bitte prüfen!"
```
---
## 🧠 Entwicklerhinweise
- **Kalibrierung:**
Werte in `main.cpp` anpassen:
```cpp
float V_TROCKEN = 2.80f; // Spannung an Luft
float V_NASS = 1.20f; // Spannung im Wasser
float ALERT_THRESHOLD = 70.0f; // Alarm ab 70%
```
- **Sampling:**
Jeder Sensor wird 16× gemessen und gemittelt (`SAMPLES = 16`).
- **Logging:**
Serielle Ausgabe mit `monitor_speed = 115200`.
---
## 📘 Lizenz
MIT License
Autor: Ismail Ali
© 2025
---
## 📂 Weitere Dokumentation
Siehe `docs/`-Ordner für:
- **Installationsanleitung Schritt-für-Schritt**
- **Troubleshooting (WLAN, MQTT, HA)**
- **Kalibrierung & Erweiterung (mehr Sensoren, Relais, Displays)**