Initial commit ESP32 Feuchtigkeit Sensor Projekt
This commit is contained in:
167
test/README
Normal file
167
test/README
Normal 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 (0–100 %) | `42.3` |
|
||||
| `home/feuchte/sensor2` | Feuchtewert Sensor 2 (0–100 %) | `85.7` |
|
||||
| `home/feuchte/sensor3` | Feuchtewert Sensor 3 (0–100 %) | `10.4` |
|
||||
| `home/feuchte/sensor4` | Feuchtewert Sensor 4 (0–100 %) | `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)**
|
||||
Reference in New Issue
Block a user