niedziela, 18 października 2026

E-SynaPsa -Moja aplikacja IoT SMART HOME

 


Mój zachwyt nad możliwościami AI przy tworzeniu własnej aplikacji nie ustaje ani na chwilę. No może nie aplikacji tylko bardzo inteligentnej strony HTML Może raczej stron bo mam już prawie 10 kart pozwalających na dostęp do różnych funkcji sterowania domem i kilka w formie wykresów do zobrazowania zmian parametrów np. pogodowych czy energetycznych. W między czasie gdy piszę te słowa GEMINI generuje jakieś logo i podpowiada jaką nazwę można by przyjąć dla tego projektu. A ja w między czasie zacznę pisać drugi odcinek przygód z cyfrowym asystentem do tworzenia kodu. Jestem pewien że zanim skończę i logo projektu i nazwa będą już znane.

W części pierwszej opisywałem jak pięknie i szybko GEMINI generowało kody kolejnych wersji mojego projektu. Projektu - raz jeszcze przypomnę - opartego na genialne prostej ale niezwykle elastycznej i niezawodnej strukturze komunikacji z wykorzystaniem protokołu WebSocket  stworzonej przez Iliasa Lamprou w aplikacji VIRTUINO (Opiszę ją w następnym wpisie bo naprawdę warto). Ja tylko pożyczyłem sobie protokół komunikacji zaimplementowany w VIRTUINO pozostawiając w niezmienionej postaci  kody komunikacyjne  w moich modułach ESP8266 i ESP32C3. Tak więc moje mikroprocesory nawet nie wiedzą, że już od kilku dni komunikują się nie z VIRTUINO a z moją aplikacją (jeszcze bez nazwy !!!). 

Poprawka !!! - właśnie z AI stworzyliśmy nazwę mojego (naszego???) projektu 

E-SynaPsa

Ta niezmienność kodu modułów była dla mnie najważniejszą zachętą podjęcia prac nad własnym projektem bo pozwalała mi płynnie przejść z jednej aplikacji w drugą bez naruszania ciągłości funkcjonowania wszystkich zaimplementowanych funkcji sterowania domem.a Od kilku dni pracuje już tylko E-SynaPsa obsługując wszystkie ESP. Co by nie mówić to wyraz mojego dużego zaufania do stworzonego przez AI kodu. Szczególnie że tworzenie ostatnich wersji programu aż do jego pierwszej finalnej wersji nie były już tak bezbolesne jak opisywałem to wcześniej. Ale o tym za chwilę.

Zadanie jakie postawiłem sobie pracując z AI na projektem to absolutna kompatybilność i pełne odtworzenie funkcji zaimplementowanych w VIRTUINO dla sterowania domem. Oznacza to iż nie chciałem stworzyć VIRTUINO BIS a jedynie powielić funkcjonalność i to ograniczoną konkretnie dla mojego domu. Projekt jest dokładnie szyty na miarę pod mój dom i jak to z rzeczami "na miarę" jest mało prawdopodobne by ktoś inny mógł go ot tak wykorzystać. Bo i nie było celem przedsięwzięcia by konkurować z VIRTUINO BLYNKiem czy innymi HMI IoT. 

A co było? Po pierwsze uniezależnić mój SMART HOME od decyzji na które nie mam wpływu i historii jakie przeżyłem z BLYNK a niedługo może i z VIRTUINO - i to udało się w 110%. A po drugie sprawdzenie dzisiejszych możliwości AI w programowaniu "naturalnym" czyli ja mówię/ pokazuję rysunkiem czego chcę od programu a AI tworzy pod te moje życzenia odpowiedni kod. I to sprawdzenie wypadło na 1000% dobrze.

Zdaję sobie sprawę z niewielkiej wciąż wiedzy na temat możliwości AI w programowaniu. A i na sam pomysł  tworzenia takiej aplikacji wpadłem przypadkiem i to dzięki podpowiedzi AI przy analizach kodu w moich ESP (o czym pisałem wcześniej) . Ale świat tworzenia takich projektów na poziomie dla mnie pewnie nigdy nie osiągalnym (jam elektronik a nie programista) nagle otworzył się się nie furtką a szeroką bramą. Jest to kolejny potężny krok mojego doświadczenia z elektroniką hobbystyczną po ARDUINO z jego bibliotekami i łatwością połączenia tego z mikrokontrolerami, po fantastycznych chińskich modułach z ESP i dedykowanych funkcjonalnie gotowych płytkach za przysłowiowe grosze. Teraz dochodzi trzeci brakujący w tej układance element, który już można budować samodzielnie a nie opierać się gotowych uniwersalnych aplikacjach.

Czy jest to wadą że E-SynaPsa jest tylko moja i dla mnie? Absolutnie nie. Moje płytki sterowników choć złożone z kilku standardowych chińskich modułów są równie tylko moje i dla mnie. Ale zaletą tego jest że są dokładnie tym czego potrzebuję -nie ma tam żadnej uniwersalnej nadmiarowości przez co są i małe i supertanie i działają dokładnie tak jak to sobie zaprojektowałem. Z moją aplikacją jest podobnie - jest super mała i super tania a przede wszystkim nareszcie robi dokładnie to co sobie zaprojektowałem i niczego więcej. A jak będę potrzebował więcej to powiem AI co ma wygenerować i po problemie. To że jest to mała aplikacja widać od razu - uruchamia się błyskawicznie i zajmuje znikomą ilość zasobów mojego leciwego tableta - coś około 100 MB pamięci RAM choć projekt rozrósł się już do niemal 4000 linii i waży na dysku 150 kB. A może właśnie dlatego wszak APK VIRTUINO to 115 MB!

Wracamy do opisu przygód z pracy (ze współpracy) z AI. W poprzednim poście opisywałem jak GEMINI generował za każdą zmianą w projekcie pełen kod HTML. I trwało to tak bez większych problemów do 12- 15 wersji programu. Potem zaczęły się schody. Co i rusz AI wyświetlał jedynie fragment kodu - jakby zacinał się w jego generowaniu. Podejrzewając, iż jest to próba "zachęcenia" mnie do zakupu płatnej subskrypcji - kupiłem ją. NIEPOTRZEBNIE. Problemem okazała się bowiem wielkość projektu który z początkowego 50 kB rozrósł się do ponad 100 kB. 

Nieustające problemy z generacją całego kodu, nie były też związane z limitami tokenów które wykorzystane na poziomie kilku, kilkunastu %. Również otwieranie nowych wątków nie przyniosło radykalnej poprawy w takim modelu pracy. Trzeba było coś zmielić.

Podpowiedział sam AI proponując iż będzie podawał jedynie fragmentu kodu do zmiany z dokładnym wskazaniem miejsca.


 Ten sposób współpracy okazał się być super efektywny choć początkowo sprawiał mi sporo problemów. Na szczęście znalazłem w zasobach znakomity Notepad++ stworzony jakby do tego i praca ruszyła z miejsca. Ja do nowego schematu pracy z AI dołożyłem jeszcze dwie swoje procedury

1. Wskazywałem dokładnie (poprzez załączenie do prompta) wersję pliku będąca obiektem zmian.

2. Po wprowadzeniu paczki modyfikacji kodu wskazanych przez AI, nowy gotowy kod poddawałem walidacji przez AI celem potwierdzenia iż wszystko  zrobiłem dobrze. No i w kilku przypadkach zostałem słusznie pouczony o błędach jakie popełniłem przy wprowadzaniu tych zmian.

Finalnie taki styl pracy okazał się jednak najszybszy. Ani razu nie doszło do zawieszenia w generowaniu kodów zmian czy dziwnych odpowiedzi. Dodatkowo czas pojawiania się odpowiedzi AI spadł z kilku minut do kilkunastu sekund.

Ostatecznie pierwszą finalną wersją jaką załadowałem tablet stała się V2_2_8.HTML i ją ćwiczę na żywym organizmie mojej domowej automatyki. Wersję tą wraz z prostą instrukcją (pytanie kto ją wygenerował ?) znajdziesz tu https://github.com/krzyspx/E-SynaPsa---my-IoT-Smart-Home-app

I na razie to by było na tyle - a co dalej no to już ciąg dalszy powinien wiedzieć lepiej.


 

    

  

Brak komentarzy:

Prześlij komentarz