.. | ||
.vscode | ||
data/homie | ||
host | ||
include | ||
lib | ||
src | ||
test | ||
.gitignore | ||
custom_platformio.ini.example | ||
defaultWithSmallerSpiffs.csv | ||
Doxyfile | ||
PlantControl.code-workspace | ||
platformio.ini | ||
Readme.md | ||
staticCodeAnalysis.cppcheck |
PlantControl
Hardware
Uses ESP32MiniKit
Used Pins:
- See '''include/ControllerConfiguration.h'''
Software
- MQTT topics
Hardware
Features
- Support for up to
- 7 Moister sensors
- 7 Pumps
- Sensors
- Solar powered (voltage)
- Lipo-Powered (voltage)
- Temperature
- Distance sensor [JSN-SR04T-2.0] (for waterlevel)
- Custom GPIO
Documentation of Power-Modes
https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/#esp32-deep-sleep
gpio 17 only out no hold gpio 16 only out no hold
Additional hardware
DS18B20 one wire temp sensor
Features
Empires Wunschliste
- Pflanze
- Pumpe
- Zeitspann (wann laufen darf)
- Helligkeitstrigger (Um den Morgen zum pumpen zu erkennen)
- Maximal Dauer zum Pumpen (als Zeit oder Milliliter)
- Zeitspanne zwischen zwei Pumpvorgängen
- Moister sensor
- Oberen
- Unteren Wert
- Tank
- Füllstand Anzeige (in Liter)
- Minimum Wasserstand (in cm damit Pumpen nicht leer laufen; enspricht 0 nutzbaren Liter)
- Trigger-Erinnerungen um Wasser nachzufüllen
- Maximaler Wasserstand des Tanks (in cm & Liter)
- System
- Tiefentladungsschutz vom LIPO (fest im Controller die Spannung festlegen)
- 3.5V unterschritten, dann nur noch Deepsleep
- MQTT Topic, wenn Spannung unterschritten wurde
- Lipo innerhalb 24h nicht geladen -> MQTT Topic
- Deep-Sleep
- Mode1:
- Nur Sensor werte einsameln
- Wird verlassen bei Aktionen
- Pumpe schalten
- MQTT Nachrichten
- nach x Minuten nur in Mode1
- Mode2:
- WLAN aktivieren und Werte über MQTT raus hauen
- aktuelle Werte raushauen
- MQTT lesen
- Mode3:
- Deepsleep verboten (MQTT topic, retained)
- alle Pumpen & Sensoren deaktiviert
Masterplan 2.0
- kein WLAN
- Bewässerung muss immer laufen
- Timeout um nicht ewig aufs WLAN zu warten
- Nicht mehrere Messungen vom Temp-Sensor nur warten, bis wir einen Wert bekommen
- Partitionslayout
- OW-search address in topic nutzen
- Wifi bei timout deaktivieren (damit wir entweder wlan spielen oder fallback: nur pflanzen giessen)