Zintegrowany system do monitorowania upraw i automatycznego nawadniania, łączący aplikacje z urządzeniami ESP32.
Dostarczony zakres
- API ASP.NET Core, PostgreSQL i model domenowy dla użytkowników, organizacji oraz urządzeń
- Portal React, intranet administracyjny i aplikacja mobilna React Native
- Trzy moduły ESP32 do nawadniania, pomiaru gleby i światła oraz warunków powietrza
Konkretne rezultaty
- Działający przepływ danych od fizycznego czujnika do interfejsu użytkownika
- Wspólne reguły dostępu i logika biznesowa dla klientów webowych i mobilnych
- Architektura pozwalająca rozwijać firmware, backend i aplikacje niezależnie
Problem
W uprawie domowej i profesjonalnej kontrola warunków jest często ręczna i okresowa, a pomiary z osobnych czujników nie tworzą spójnej historii. Utrudnia to analizę trendów i opóźnia reakcję na nieprawidłową wilgotność gleby, temperaturę, wilgotność powietrza lub natężenie światła.
Rozwiązanie
System łączy trzy moduły ESP32 z API ASP.NET Core, bazą PostgreSQL oraz aplikacjami React i React Native. Urządzenia cyklicznie wysyłają pomiary i pobierają komendy, a backend zapisuje historię, porównuje dane z progami gatunków, tworzy alerty i może uruchomić podlewanie. Użytkownik zarządza roślinami, strefami, czujnikami, zaworami i harmonogramami z aplikacji webowej lub mobilnej.
- Izolacja danych organizacji i użytkowników przez TenantId.
- Alerty dla temperatury, wilgotności, światła i stanu urządzeń.
- Ręczne, harmonogramowe i automatyczne nawadnianie.
- Sekwencyjne sterowanie zaworami z lokalnym limitem 120 sekund na zawór.
- Intranet administracyjny, ogłoszenia i edycja statycznych treści portalu.
- Współdzielona logika TypeScript pomiędzy webem i aplikacją mobilną.
- Testy xUnit dla API, Vitest i Testing Library dla webu oraz Jest dla aplikacji mobilnej.
Najważniejsze decyzje
Logika biznesowa i reguły dostępu pozostają po stronie API, a klienci dostają gotowe uprawnienia sekcyjne. Dzięki temu portal i aplikacja mobilna zachowują spójne reguły, mimo że oferują różny zakres interfejsu.
Warstwa urządzeń używa osobnych identyfikatorów i sekretów sprzętowych. Dane pomiarowe uruchamiają zdarzenia domenowe, które odpowiadają za alerty i decyzje o podlewaniu.
Rezultat
Projekt pokazuje pełny przepływ od fizycznego czujnika, przez API i bazę PostgreSQL, po interfejs użytkownika. Architektura pozwala rozwijać web, mobile i firmware niezależnie, bez duplikowania kluczowych reguł.





