Naukowa kompensacja danych z czujnika gleby IoT na ESP32: od surowych wartości do precyzyjnych zaleceń agrotechnicznych
Wielofunkcyjny czujnik gleby JXCT 7-w-1 dostarcza surowe dane poprzez Modbus RTU, ale bez kompensacji temperaturowej i wilgotnościowej, odczyty przewodności elektrycznej (EC), pH i zawartości NPK są znacząco zniekształcone. Open-source firmware dla ESP32 implementuje naukowo uzasadnione algorytmy korekcji, integrację z popularnymi platformami IoT i system rekomendacji dla 24 upraw rolniczych.
Architektura systemu i podłączenie
System jest zbudowany na mikrokontrolerze ESP32, który komunikuje się z czujnikiem poprzez interfejs RS485 z użyciem transceivera SP3485E. Czujnik wymaga oddzielnego źródła zasilania 12–24 V, podczas gdy ESP32 i SP3485E działają na 3.3 V.
Kluczowe komponenty podłączenia:
- ESP32 GPIO16 (RX) i GPIO17 (TX) do komunikacji szeregowej.
- GPIO4 i GPIO5 do sterowania nadajnikiem/odbiornikiem (DE/RE) transceivera SP3485E.
- Obowiązkowe połączenie linii masy (GND) ESP32, SP3485E i zasilacza czujnika.
- Przestrzeganie polaryzacji linii RS485 (A+/B-) i ustawienie terminatora 120 Ω na długich kablach.
Naukowe podstawy kompensacji pomiarów
Firmware implementuje dwuetapowe przetwarzanie danych. Pierwszy etap – podstawowa SensorCorrection z zastosowaniem mnożnika i przesunięcia. Drugi, opcjonalny etap – SensorCompensationService, wykorzystujący opublikowane modele naukowe.
Zaimplementowane modele kompensacji:
- Przewodność elektryczna (EC): Model Rhoades et al. (1989). Wzrost EC o około 2.1% na każdy stopień Celsjusza powyżej 25°C.
EC_comp = EC_raw × (1 + 0.021 × (T - 25))
- Kwasowość (pH): Równanie Nernsta według danych Ross et al. (2008). Spadek pH o 0.003 jednostki na każdy stopień powyżej 25°C.
pH_comp = pH_raw - 0.003 × (T - 25)
- Zawartość NPK: Model Delgado et al. (2020) z uwzględnieniem temperatury, wilgotności i typu gleby (13 wariantów, od piasku do torfu).
N_comp = N_raw × e^(δ_N(T-20)) × (1 + ε_N(θ-30))
Dodatkowy serwis NutrientInteractionService uwzględnia antagonistyczne (N↔K, P↔Zn) i synergiczne (N+S, Ca+B) interakcje składników pokarmowych.
System rekomendacji dla rolnictwa
CropRecommendationEngine zawiera profile dla 24 upraw, w tym warzyw (pomidor, ogórek), owoców (truskawka, malina), drzew owocowych (jabłoń, winorośl) i upraw polowych (pszenica, soja). Dla każdej uprawy zdefiniowano optymalne zakresy dla siedmiu parametrów czujnika.
Czynniki wpływające na rekomendacje:
- Typ gleby (13 klasyfikacji).
- Sezon (wiosna, lato, jesień, zima).
- Typ środowiska uprawy (pole otwarte, szklarnia, wnętrze).
System zapewnia kolorową indykację statusu: normalny, uwaga, ostrzeżenie, krytyczny.
Kalibracja i zarządzanie
Kalibracja wspiera dwa podejścia: laboratoryjne, poprzez wczytanie pliku CSV z parami wartości (surowa/skompensowana), i programowe, poprzez REST API.
Główne punkty końcowe API do kalibracji:
POST /api/calibration/{parameter}– dodanie punktu kalibracyjnego dla konkretnego parametru.GET /api/calibration/export&POST /api/calibration/import– eksport i import tabel kalibracyjnych.GET /api/correction/factors– zarządzanie podstawowymi współczynnikami korekcji (slope/offset).
Integracja z ekosystemami IoT
System oferuje kilka kanałów wyjścia danych i zarządzania.
Wspierane platformy i protokoły:
- Interfejs webowy: Wbudowany serwer z responsywnym designem do konfiguracji WiFi, MQTT, przeglądania odczytów w czasie rzeczywistym i ładowania aktualizacji.
- REST API (v1): Programowy dostęp do danych czujnika (
/api/v1/sensor), diagnostyki systemu i zarządzania konfiguracją. - MQTT: Publikacja danych w zadane tematy. Zaimplementowano filtr delta do publikowania tylko przy znaczących zmianach. Wsparcie automatycznego wykrywania (Auto-Discovery) dla Home Assistant.
- ThingSpeak: Wysyłka danych na pola platformy z konfigurowalnym interwałem i wbudowaną walidacją.
Dodatkowe funkcje i wdrożenie
Firmware zawiera zaawansowane funkcje dla niezawodnej pracy: detektor zdarzenia podlewania po nagłej zmianie wilgotności, korekty sezonowe oparte na geolokalizacji, filtrację danych (filtr Kalmana, medianowy), watchdog-timer i OTA-aktualizacje przez powietrze z weryfikacją integralności przez SHA256.
Szybki start dla developerów:
- Sklonuj repozytorium:
git clone https://github.com/Gfermoto/soil-sensor-7in1.git - Zainstaluj zależności:
pip install -r requirements.txt - Skompiluj i załaduj firmware za pomocą PlatformIO:
pio run -t upload - Załaduj system plików:
pio run -t uploadfs - Połącz się z punktem dostępowym ESP32 do początkowej konfiguracji sieci.
Stos technologiczny: C++17, PlatformIO, Arduino framework, Modbus RTU. Projekt jest dystrybuowany na licencji AGPL-3.0.
Co ważne
- Surowne dane z czujnika gleby wymagają kompensacji temperaturowej i wilgotnościowej dla dokładności EC, pH i NPK.
- Firmware implementuje naukowe modele kompensacji (Rhoades, Nernst, Delgado) i uwzględnia interakcje składników pokarmowych.
- System oferuje rekomendacje dla 24 upraw z uwzględnieniem typu gleby, sezonu i warunków uprawy.
- Gotowa integracja z Home Assistant, MQTT, ThingSpeak i REST API ułatwia wbudowanie w istniejące systemy IoT.
- Kod open-source i szczegółowa dokumentacja pozwalają dostosować rozwiązanie do specyficznych zadań.
— Editorial Team
Brak komentarzy.