Powrót do strony głównej

Kompensacja danych czujnika gleby na ESP32: modele naukowe i agrorekomendacje

Artykuł opisuje firmware open-source dla mikrokontrolera ESP32, który zapewnia naukową kompensację danych wielofunkcyjnego czujnika gleby JXCT. Omówiono modele korekcji, system agrorekomendacji dla 24 upraw i integrację z popularnymi platformami IoT.

Precyzyjny agromonitoring: naukowa kompensacja czujnika gleby na ESP32
Advertisement 728x90

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:

Google AdInline article slot
  • 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))

Google AdInline article slot
  • 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.

Google AdInline article slot

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

Advertisement 728x90

Czytaj dalej