AGROMETEOROLOGIA • SMART AGRICULTURE • EDGE AI

Inżynieria Nawadniania i Bilans Wodny: ESP32-S3 & Waveshare 6CH

Zastępujemy archaiczne, sztywne harmonogramy czasowe autonomiczną analityką ewapotranspiracji na brzegu sieci. Wykorzystujemy instrukcje wektorowe Xtensa LX7, model bilansu wodnego FAO-56 oraz telemetrię Open-Meteo do precyzyjnego dawkowania wody bez pośrednictwa zewnętrznej chmury.

W tradycyjnych sterownikach nawadniania sekcje załączają się według sztywnego zegara RTC, ignorując fakt, że po chłodnym dniu gleba zachowuje wilgoć, a podczas fali upałów z silnym wiatrem zapotrzebowanie roślin gwałtownie wzrasta. Standardem inżynieryjnym w agrometeorologii jest model FAO-56 Penmana-Monteitha oraz jego zredukowane formy empiryczne, które pozwalają bilansować ubytki wody w profilu glebowym w czasie rzeczywistym.

W ekosystemie ProPresta IT algorytm zaimplementowany w module wykonawczym Waveshare 6CH (ESP32-S3) wylicza bezwymiarowy współczynnik nawadniania \( K_{\text{irrig}} \) będący dynamicznym mnożnikiem bazowego czasu pracy elektrozaworów:

$$K_{\text{irrig}} = \text{clamp}\left( \frac{\text{ET}_c - P_{\text{eff}}}{\text{ET}_{\text{base}}}, \; 0.0, \; 1.5 \right)$$

Fizyczna interpretacja parametrów bilansu:

  • \( \text{ET}_c \) [mm/doba] – rzeczywista ewapotranspiracja uprawy; objętość wody, która ubyła z profilu glebowego na skutek bezpośredniego parowania z gruntu oraz transpiracji aparatów szparkowych roślin.
  • \( P_{\text{eff}} \) [mm/doba] – opad efektywny; część deszczu, która rzeczywiście infiltruje w strefę korzeniową i staje się dostępna dla roślin, z pominięciem spływu powierzchniowego i retencji na liściach.
  • \( \text{ET}_{\text{base}} \) [mm/doba] – referencyjne dobowe zapotrzebowanie wodne (standardowo przyjmuje się \( 4.0\text{ mm/dzień} \)), odpowiadające zadanemu przez użytkownika bazowemu czasowi podlewania.
  • \( \text{clamp}(x, 0.0, 1.5) \) – funkcja nasycenia chroniąca przed stanami osobliwymi; zabezpiecza instalację przed pracą poniżej zera lub przekroczeniem 150% nominalnej dawki.

1. Rozbicie składowych fizycznych: Parowanie i Opad Efektywny

A. Rzeczywista ewapotranspiracja uprawy (\( \text{ET}_c \))

Zapotrzebowanie konkretnego gatunku roślin skaluje się względem parowania trawy referencyjnej za pomocą współczynnika roślinności \( K_c \):

$$\text{ET}_c = \text{ET}_0 \times K_c$$

Współczynnik \( K_c \) odzwierciedla fazę fenologiczną i architekturę rośliny (np. trawnik rekreacyjny: \( 0.80 \)–\( 0.85 \), krzewy ozdobne: \( 0.60 \), warzywa w fazie owocowania: \( 1.05 \)–\( 1.15 \)).

Na mikrokontrolerze ESP32-S3, przetwarzającym telemetrię temperatury \( T \) [°C] i wilgotności względnej \( RH \) [%] z Open-Meteo, parowanie referencyjne \( \text{ET}_0 \) wyliczane jest wariantem równania Romanenki-Turca:

$$\text{ET}_0 = 0.013 \times \left( \frac{T}{T + 15} \right) \times \left( 23.88 \times R_s + 50 \right) \times C_h$$

Współczynnik korekty wilgotnościowej \( C_h \) modeluje deficyt prężności pary wodnej (VPD). Gdy powietrze jest suche i gorące, tempo wysychania gruntu rośnie nieliniowo:

$$C_h = \begin{cases} 1.0 & \text{dla } RH \ge 50\% \\ 1.0 + \frac{50 - RH}{70} & \text{dla } RH < 50\% \end{cases}$$

B. Model opadu efektywnego (\( P_{\text{eff}} \)) wg USDA SCS

Błędem wielu prostych automatyk jest odejmowanie każdego milimetra deszczu w relacji 1:1. Drobny opad poniżej 1 mm odparowuje z nagrzanej powierzchni liści i trawy zanim dotrze do gleby. Z kolei gwałtowna ulewa przekracza prędkość infiltracji gruntu, powodując spływ powierzchniowy lub grawitacyjną ucieczkę wody poniżej bryły korzeniowej. Stosujemy aproksymację Soil Conservation Service (USDA):

$$P_{\text{eff}} = \begin{cases} 0 & \text{gdy } P_{\text{tot}} < 1.0\text{ mm} \quad (\text{retencja na liściach / parowanie}) \\ P_{\text{tot}} \times 0.8 & \text{gdy } 1.0 \le P_{\text{tot}} \le 15.0\text{ mm} \quad (\text{optymalna infiltracja}) \\ 12.0 + 0.1 \times (P_{\text{tot}} - 15.0) & \text{gdy } P_{\text{tot}} > 15.0\text{ mm} \quad (\text{nasycenie profilu glebowego}) \end{cases}$$

Gdzie skumulowany bilans deszczowy \( P_{\text{tot}} \) integruje historię opadów z ostatnich 24 godzin oraz prognozę na horyzont najbliższych 12 godzin:

$$P_{\text{tot}} = P_{\text{hist 24h}} + P_{\text{prog 12h}}$$

2. Implementacja wektorowa na ESP32-S3: Heurystyka Taylora

Bezpośrednie rozwiązywanie układu równań nieliniowych Penmana-Monteitha wymagałoby ciągłych operacji zmiennoprzecinkowych podwójnej precyzji, co na mikrokontrolerach brzegowych niepotrzebnie marnuje cykle procesora i podnosi temperaturę krzemu.

W module smart_irrigation.c zastosowaliśmy linearyzację pierwszego rzędu (rozwinięcie w szereg Taylora) wokół agrometeorologicznego punktu równowagi (\( T = 20^\circ\text{C} \), \( RH = 60\% \), \( P = 0\text{ mm} \)):

$$K_{\text{irrig}} = 1.0 + 0.03 \cdot (T - 20) + 0.008 \cdot (60 - RH) - 0.20 \cdot P_{\text{eff}}$$

Twarda blokada deszczowa (Fail-Safe Soil Interlock):

Bez względu na wyliczenia matematyczne, warunek brzegowy w przerwaniu natychmiast wymusza wyzerowanie współczynnika w przypadku deszczu w toku lub nasycenia gleby:

$$\left( P_{\text{teraz}} > 0.5\text{ mm} \quad \text{lub} \quad P_{\text{tot}} \ge 5.0\text{ mm} \right) \implies K_{\text{irrig}} = 0.0$$

3. Integracja z rejestrami sprzętowymi modułu Waveshare 6CH

Wyliczony współczynnik nie steruje przekaźnikami w sposób ciągły (co groziłoby zawieszeniem styków w stanie włączonym w razie awarii sieci). Zamiast tego modyfikuje on wartość bazową przekazywaną do sprzętowego odliczania w pamięci RAM: relay_countdown_timers[zone].

$$t_{\text{wykonawczy}} = \left\lfloor t_{\text{bazowy}} \times 60 \times K_{\text{irrig}} \right\rfloor \quad [\text{sekundy}]$$

Przykład praktyczny wdrożenia:
Użytkownik ustawił w panelu HMI 7" bazowy czas podlewania trawnika na \( t_{\text{bazowy}} = 10\text{ minut} \). Przy aktualnych warunkach (np. temperatura 16.7°C, wilgotność 92%, opad bieżący 0.4 mm) model wyliczył współczynnik \( K_{\text{irrig}} = 0.47 \). Czas wpisany do licznika wynosi:

$$t_{\text{wykonawczy}} = 10 \times 60 \times 0.47 = 282\text{ sekundy (4 minuty 42 sekundy)}$$

Oszczędność wody w tym pojedynczym cyklu wynosi aż 53%, chroniąc system korzeniowy przed rozwojem grzybów i gniciem z powodu przelania.

Parametr Typ i Zakres Źródło danych / Rejestr Funkcja w systemie
\( T \) float [-20.0 .. +50.0 °C] temperature_2m Wyliczanie składowej termicznej ewapotranspiracji
\( RH \) int [0 .. 100 %] relative_humidity_2m Ocena deficytu prężności pary wodnej (VPD)
\( P_{\text{tot}} \) float [≥ 0.0 mm] rain + hourly.precipitation Kompensacja opadowa i wyzwalanie blokady ulewowej
\( K_{\text{irrig}} \) float [0.0 .. 1.5] smart_irrigation_get_factor() Mnożnik wykonawczy czasu pracy cewki elektrozaworu
Watchdog uint32_t [sekundy] relay_countdown_timers[6] Niezależny dekrementator w przerwaniu sprzętowym 1 Hz

Podsumowanie Wdrożenia Architektury Edge AI

Zastosowanie heurystyki wektorowej na mikrokontrolerze ESP32-S3 uniezależnia instalację od zewnętrznych chmur komercyjnych, zapewniając deterministyczną automatykę mikroklimatyczną na poziomie lokalnym:

  • Autonomia decyzyjna: Współczynnik \( K_{\text{irrig}} \) obliczany jest bezpośrednio w pamięci RAM w oparciu o bieżący wektor danych środowiskowych. Instalacja realizuje podlewanie nawet w przypadku całkowitego zerwania połączenia z Internetem (w oparciu o ostatni poprawny stan równowagi).
  • Separacja rdzeniowa FreeRTOS: Złożone parsowanie JSON (buforowane w zewnętrznej pamięci Octal PSRAM) oraz obliczenia matematyczne wykonują się na Rdzeniu 1. Nie zakłócają one szyfrowanej komunikacji UDP (AES-128-GCM) ani przełączania rejestrów GPIO obsługiwanych przez Rdzeń 0.
  • Stabilność energetyczna i brak restartów: Wymuszenie stałej pracy radia modemu Wi-Fi (esp_wifi_set_ps(WIFI_PS_NONE)) w połączeniu z zasilaczem przemysłowym 12V/2A całkowicie wyeliminowało zjawisko spadków napięcia (Brownout Reset) podczas równoczesnego załączania cewek przekaźników.
  • Fail-Safe Watchdog: Odliczanie czasu w przerwaniach sprzętowych co 1 sekundę gwarantuje, że nawet w razie zawieszenia pętli programu elektrozawory zostaną bezpiecznie odcięte.

Architektura przetestowana i wdrożona na module przekaźnikowym Waveshare 6CH Relay w ramach platformy ProPresta IT.