Wpis z mikrobloga

Mirki od #programowanie podpowiedzcie jakie technologie oraz sposoby komunikacje byście tutaj zastosowali i dlaczego. Nie jestem programistą, ale muszę wiedzieć w jakim kierunku iść z produktem który powstaje. System linux, platforma Raspberry Pi, program do obsługi urządzenia posiadającego kilkanaście czujników i kilka układów wykonawczych. Aplikacja ma na bieżąco zbierać dane z czujników i na podstawie tych danych reagować - uruchamiać jeden lub drugi układ wykonawczy, wykonywać serię czynności typu włączyć to na X sekund, co innego wyłączyć, następnie coś gdzieś zakomunikować i znów odczytać z czujnika X itd. Komunikacja po WiFi lub ETH.

Podgląd pracy i parametrów, zmiany w konfiguracji tylko "z zewnątrz" czyli po stronie aplikacji iOS/Android. Nie będzie obsługi poprzez "guziki" na urządzeniu. Dostęp musi być zarówno z sieci lokalnej jak i będąc w ruchu, gdziekolwiek gdzie mamy dostęp do internetu. Dodatkowo są dane które mogą być przesyłane do producenta urządzenia (np. informacja o awarii).

I teraz ja sobie wyobrażam, że będzie na Raspberry Pi uruchamiana aplikacja (napisana w C/C+ lub podobnie) która będzie cały czas pracowała i wykonywała zadania wg algorytmów które zostaną napisane. Komunikacja z klientem na telefon będzie realizowana przy pomocy osobnej aplikacji która będzie odczytywała parametry i wysyłała do użytkownika lub wprowadzała zmiany w plikach konfiguracyjnych pierwszego programu który będzie na bieżąco dostosowywał się do tych zmian. Informacje do serwera producenta mogą być wysyłane zwykłym curlem. Nie mam pomysłu natomiast w jaki sposób można dokonywać update-ów oprogramowania.

Chcę aby urządzenie mogło współpracować z Apple HomeKit, tutaj więc pewnie wykorzystane rozwiązanie HAP-NodeJS.

No i teraz wg mnie robi się straszy haos, bo wychodzi że korzystamy z wielu różnych rozwiązań. A może to wszystko warto zrobić właśnie powiedzmy w nodeJS? A może jakoś inaczej?

#python #nodejs #devops
  • 7
@mrooczilla: Ale ja nawet nie myślałem, aby to zrobić samemu :-) Wiem, że tu jest dużó dobrych programistów którzy nakierują mnie w jaką technologię/rozwiązania/język mam pójść i szukać odpowiedniego człowieka.
@lutecki robiłem kiedyś coś takiego, a nawet dwa cosie ;) z góry uprzedzam, nie mozesz sobie "zwykłym curlem" wysyłać, w obecnych czasach niczego. Tzn. móc naturalnie możesz ale w dobie GDPR/RODO nie licz na jakąkolwiek certyfikację, np dla AHK. Podobnież OTA, szyfrowanie to standard obecnie, oprogramowanie trzymane w chmurze, zapytanie periodyczne czy jest nowsza wersja, sprawdzenie crc i klucza po pobraniu, instalacja i reboot.
@lutecki zależy. W obu przypadkach które pamiętam (choć jak poszperam w pamięci to jeszcze trzeci i pewnie kawałki tu i tam podobnych rzeczy w innych projektach były) to był dedykowany SoC; funkcjonalność którą opisujesz była jednym z zadań systemu - konfiguracje siłą rzeczy były różne, raz c/cpp, raz java :) raz czyste c, choć w oparciu o płatny framework.