Files
ESP32-FeuchtigkeitSensoren/test/README
2026-03-11 21:40:51 +01:00

168 lines
4.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🌡️ 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)**