Wissenschaftliche Datenkorrektur für ESP32-Bodensensor: Von Rohwerten zu präzisen Agrar-Empfehlungen
Der JXCT 7-in-1 Bodensensor liefert rohe Modbus-RTU-Daten, aber ohne Temperatur- und Feuchtigkeitskorrektur sind EC-, pH- und NPK-Werte stark verzerrt. Diese Open-Source-Firmware für ESP32 wendet forschungsbasierte Korrekturalgorithmen an, integriert sich in führende IoT-Plattformen und gibt maßgeschneiderte Empfehlungen für 24 wichtige Kulturen.
Systemarchitektur und Verdrahtung
Das System basiert auf einem ESP32-Mikrocontroller, der über RS485 mit einem SP3485E-Transceiver mit dem Sensor kommuniziert. Der Sensor benötigt eine separate 12–24V-Stromversorgung, während ESP32 und SP3485E mit 3,3 V betrieben werden.
Wichtige Verdrahtungskomponenten:
- ESP32 GPIO16 (RX) und GPIO17 (TX) für serielle Kommunikation.
- GPIO4 und GPIO5 zur Steuerung der DE/RE-Pins des Transceivers.
- Essenzielle Masseverbindung (GND) zwischen ESP32, SP3485E und Sensor-Stromversorgung.
- Korrekte RS485-Polarität (A+/B-) und 120Ω-Terminierung bei langen Kabelstrecken.
Wissenschaftliche Grundlagen der Messwertkorrektur
Die Firmware nutzt eine zweistufige Datenverarbeitungspipeline. Stufe eins wendet grundlegende SensorCorrection mit Skalierungs- und Offset-Faktoren an. Stufe zwei, optional, verwendet den SensorCompensationService mit peer-reviewed Modellen.
Implementierte Korrekturmodelle:
- Elektrische Leitfähigkeit (EC): Modell von Rhoades et al. (1989). EC steigt um ca. 2,1 % pro °C über 25 °C.
EC_comp = EC_raw × (1 + 0,021 × (T - 25))
- pH: Nernst-Gleichung nach Ross et al. (2008). pH sinkt um 0,003 Einheiten pro °C über 25 °C.
pH_comp = pH_raw - 0,003 × (T - 25)
- NPK-Gehalt: Modell von Delgado et al. (2020) unter Berücksichtigung von Temperatur, Feuchtigkeit und Bodentyp (13 Typen, von Sand bis Torf).
N_comp = N_raw × e^(δ_N(T-20)) × (1 + ε_N(θ-30))
Der NutrientInteractionService berücksichtigt zudem antagonistische (N↔K, P↔Zn) und synergistische (N+S, Ca+B) Nährstoffinteraktionen.
Empfehlungs-Engine für Kulturen
Die CropRecommendationEngine umfasst Profile für 24 Kulturen, von Gemüse (Tomaten, Gurken) und Beeren (Erdbeeren, Himbeeren) über Obstbäume (Äpfel, Weintrauben) bis zu Ackerfrüchten (Weizen, Sojabohnen). Jede hat optimale Bereiche für alle sieben Sensormessgrößen.
Faktoren für Empfehlungen:
- Bodentyp (13 Klassifikationen).
- Jahreszeit (Frühling, Sommer, Herbst, Winter).
- Anbaubedingungen (Freiland, Gewächshaus, Indoor).
Das System verwendet farbkodierte Statusanzeigen: normal, Vorsicht, Warnung, kritisch.
Kalibrierung und Verwaltung
Die Kalibrierung unterstützt Lab-CSV-Uploads (Roh-/Korrigierte-Werte-Paare) oder Echtzeit-Anpassungen über REST-API.
Wichtige API-Endpunkte für Kalibrierung:
POST /api/calibration/{parameter}— Kalibrierungspunkt für spezifisches Messgröße hinzufügen.GET /api/calibration/export&POST /api/calibration/import— Kalibrierungstabellen exportieren/importieren.GET /api/correction/factors— Basis-Korrekturkoeffizienten (Steigung/Offset) verwalten.
Integration in IoT-Ökosysteme
Mehrere Ausgabe- und Steuerkanäle werden unterstützt.
Unterstützte Plattformen und Protokolle:
- Weboberfläche: Integrierter responsiver Server für WiFi/MQTT-Setup, Echtzeit-Datenansicht und Firmware-Updates.
- REST API (v1): Programmatischer Zugriff auf Sensordaten (
/api/v1/sensor), Diagnosen und Konfigurationsverwaltung. - MQTT: Publikation in benutzerdefinierte Topics mit Delta-Filterung für Änderungen nur. Home Assistant Auto-Discovery unterstützt.
- ThingSpeak: Daten an Kanäle in konfigurierbaren Intervallen mit integrierter Validierung.
Erweiterte Funktionen und Einsatz
Die Firmware bietet Zuverlässigkeits-Booster: Bewässerungsereigniserkennung über Feuchtigkeitsspitzen, standortbasierte saisonale Anpassungen, Datenfilterung (Kalman, Median), Watchdog-Timer und OTA-Updates mit SHA256-Integritätsprüfung.
Quick Start für Entwickler:
- Repo klonen:
git clone https://github.com/Gfermoto/soil-sensor-7in1.git - Abhängigkeiten installieren:
pip install -r requirements.txt - Firmware mit PlatformIO bauen und flashen:
pio run -t upload - Dateisystem hochladen:
pio run -t uploadfs - Mit ESP32-Access-Point verbinden für initiales Netzwerk-Setup.
Tech-Stack: C++17, PlatformIO, Arduino-Framework, Modbus RTU. Lizenz: AGPL-3.0.
Zusammenfassung der Schlüsselpunkte
- Rohe Bodensensordaten brauchen Temperatur- und Feuchtigkeitskorrektur für genaue EC-, pH- und NPK-Werte.
- Firmware wendet bewährte Modelle (Rhoades, Nernst, Delgado) und Nährstoffinteraktionen an.
- Maßgeschneiderte Empfehlungen für 24 Kulturen basierend auf Boden, Jahreszeit und Anbaubedingungen.
- Nahtlose Integration mit Home Assistant, MQTT, ThingSpeak und REST API.
- Open Source mit vollständiger Dokumentation für Anpassungen.
— Editorial Team
Noch keine Kommentare.