Freyr's Eye — Oko Freja 🌱⚔️
AIoT strażnik świętych ogrodów dla Inteligentnego Miasta Wikingów. Nie pozwól, by gniew bogów zniszczył Twoje uprawy. 💡 Inspiracja: Zima nadchodzi
"Kiedy zima trwała osiem miesięcy, a gród liczył dwieście dusz, strata upraw oznaczała śmierć. Wikingowie nie mogli sobie pozwolić na zwiędłą roślinę."
Inteligentne miasto to nie tylko sensory ruchu i zarządzanie ruchem ulicznym. To także produkcja żywności — od ogrodów społecznościowych po uprawy w skansenach i historycznych grodach (np. Wolin czy Biskupin). Współczesne aplikacje ogrodnicze pokazują tylko suche wykresy i ogólnikowe porady. My chcieliśmy stworzyć system monitoringu upraw, który rozumie kontekst — zarówno fizyczny (warunki w konkretnej doniczce), jak i kulturowy (narracja i immersja).
Tak powstało Freyr's Eye — fizyczny sensor i cyfrowy skald, który pilnuje upraw w imieniu nordyckiego boga płodności. ⚙️ Co to robi?
Freyr's Eye to kompleksowy system składający się z energooszczędnego sensora wbijanego w ziemię oraz aplikacji mobilnej zasilanej sztuczną inteligencją.
Magia Inicjacji (Vision AI): Użytkownik robi zdjęcie swojej roślinie. Nasz system, napędzany przez Google Gemini 3 Flash, natychmiast identyfikuje gatunek, podaje jego staronordyjską nazwę (np. Lín dla lnu), historyczne zastosowanie i dobiera optymalne parametry wzrostu.
Wzrok Freja (Hardware): Wbity w ziemię czujnik stale monitoruje temperaturę, wilgotność powietrza i gleby oraz natężenie światła.
Cyfrowy Skald-Zielarz (Kontekstowe AI): Aplikacja nie rzuca tylko suchymi danymi. LLM analizuje odczyty na tle optymalnych zakresów i generuje wieszczbę. Pykasz w aplikację i pytasz: "Czemu liście żółkną?", a system odpowiada językiem Sagi: "Len ten woła o wodę. Jeśli do wieczora nie spadnie deszcz Thora, podlej go dwiema czerpakami. Inaczej Freja odwróci od tej grządki wzrok."
🛠 Jak to zbudowaliśmy (Tech Stack) 🗡️ Hardware & Firmware
Mózg: Nordic nRF54L15-DK działający na Zephyr RTOS. Wykorzystujemy Bluetooth Low Energy (BLE 5.4) z autorskim profilem GATT do komunikacji z telefonem.
Zmysły (Sensory): BME280 (I²C) dla mikroklimatu, TEMT6000 (ADC) dla światła oraz pojemnościowy czujnik HW-390 dla wilgotności gleby.
Proximity Wake-Up: Użyliśmy czujnika ToF (VL53L1X). Urządzenie jest domyślnie uśpione. Gdy zbliżysz do niego dłoń, wybudza ono monochromatyczny ekran OLED, animując "otwarcie oka", by pokazać runiczny status rośliny.
📱 Mobile App
Zbudowana w React Native (Expo Dev Client) z wykorzystaniem react-native-ble-plx do natywnej, niskopoziomowej komunikacji BLE.
Do zarządzania stanem wykorzystaliśmy Zustand, a interfejs został zoptymalizowany pod kątem estetyki nordyckiej z czytelnymi wykresami (Victory Native).
🧠 AI & Backend
LLM: Google Gemini 3 Flash Preview (przez Google AI Studio API). Wykorzystaliśmy jego możliwości na maksa: Structured Outputs do parsowania danych rośliny, Vision do rozpoznawania zdjęć oraz Automatic Context Caching, co pozwala AI pamiętać historię pomiarów z ostatnich 24 godzin przy drastycznie niższym koszcie tokenów i opóźnieniach.
Backend to lekki proxy napisany w Node.js (Hono) zdeployowany na Cloudflare Workers.
🏆 Z czego jesteśmy najbardziej dumni
Ekstremalne zarządzanie energią (Power Management): Zoptymalizowaliśmy hardware tak, by sensory wybudzały się z Deep Sleep tylko na ułamek sekundy (0.07% duty cycle) w celu dokonania pomiaru, podczas gdy ekran OLED włącza się tylko przy interakcji (czujnik odległości). Wynik? Średni pobór to zaledwie ~0.65 mA, co pozwala urządzeniu działać do 4 miesięcy na jednym ogniwie 18650.
Design UI/UX: Zrezygnowaliśmy z generycznych dashboardów na rzecz "Sagi" — połączyliśmy wskaźniki odczytów z runami i klimatyczną, wygenerowaną przez LLM narracją (z zachowaniem pragmatycznych instrukcji pielęgnacyjnych).
Natywna Integracja Gemini: Zamiast prostego bota, stworzyliśmy system, w którym AI dynamicznie przełącza się między identyfikacją obrazu a rozumowaniem (analizą logów z czujników), dostarczając spójny Context-Aware Chat.
🚧 Wyzwania, które pokonaliśmy
Prądożerność BLE i sensorów: Domyślne parametry powodowały drenaż baterii. Musieliśmy ręcznie sterować MOSFET-em, aby odcinać zasilanie czujnika wilgotności (który domyślnie ciągnie 5mA ciągłego prądu!) oraz wdrożyć Adaptive Sampling oparty na świetle otoczenia (urządzenie próbkuje rzadziej w nocy).
Interpretacja danych I²C/ADC w Zephyrze: Prawidłowa obsługa peryferiów, kalibracja czujnika pojemnościowego i zmapowanie surowych danych na formaty przyjazne transmisji Bluetooth w ułożonym budżecie energetycznym.
🚀 Co dalej z Freyr's Eye?
Projekt jest w pełni skalowalny. Kolejnym krokiem jest stworzenie Widoku Hordy (Mesh BLE), gdzie jedna aplikacja zarządcy grodu agreguje odczyty z dziesiątek Oczu Freja rozstawionych w miejskim ogrodzie botanicznym czy szklarni edukacyjnej. Dodatkowo planujemy wdrożenie Generatora Sagi, który co wieczór będzie pisał dla rolnika krótki fragment sagi podsumowujący dzienny wzrost plonów.
Ogród to życie. Pozwól, by Freja miała na niego oko.
Log in or sign up for Devpost to join the conversation.