Odroid C1+, Odrobian i Kiosk mode

odroid-c1

W jednym z naszych wdrożeń systemu ERP pojawiło się zapotrzebowanie na zaprojektowanie możliwości prezentacji aktualnego stanu na dockach załadunkowych w magazynie na przemysłowym ekranie LED. Rozwiązanie zostało wykonane na Raspberry PI 2, ale idąc za ciosem w poznawaniu Odroida C1+ postanowiłem pokazać Wam jak w łatwy sposób skonfigurować to urządzenie do pracy w trybie kiosku.

W zasadzie nie planowałem tego artykułu, ale akurat testowałem dystrybucję Odrobian na Odroida, a ponieważ bezpośrednio po instalacji była już zainstalowana przeglądarka chromium-browser, postanowiłem sprawdzić możliwość konfiguracji systemu w trybie kiosku (mając już doświadczenia z RPI 2).

Założenia

Urządzenie będzie podłączone do ekranu LED przewodem HDMI, a dostęp do sieci będzie zapewniony przez WiFi. Jak to z WiFi bywa, może się zdarzyć, że z jakiegoś powodu sieć będzie niedostępna. Dlatego postanowiłem skonfigurować system tak aby:

  1. Po wystartowaniu systemu została uruchomiona przeglądarka w trybie pełnoekranowym.
  2. Strona startowa będzie plikiem HTML zapisanym na karcie pamięci.
  3. Strona serwująca dane będzie udostępniona na serwerze z system ERP.
  4. Po otworzeniu statycznej strony HTML w przeglądarce na Odroidzie spróbujemy odpytywać się ajaxem do serwera, czy jest dostępny (czy mamy połączenie z siecią).
  5. Odpytywanie będzie tak długo wykonywane, dopóki nie zostanie nawiązane skuteczne połączenie.
  6. W przypadku powodzenia zostanie wykonane już bezpośrednie przekierowanie do strony na docelowym serwerze.
  7. Po stronie głównego serwera również zostanie obsłużone sprawdzanie połączenia ajaxem.

Rozwiązanie ma taki plus, że statyczny plik HTML wgrany na kartę pamięci Odroida służy tylko za pośrednika w nawiązaniu połączenia, aby nie wyświetlić na starcie białego ekranu z informacją o tym że np. „Strona internetowa jest niedostępna”. Po wykryciu dostępu do sieci wykonywane jest przekierowanie, a reszta jest już pobierana z docelowego serwera. Dzięki temu nie potrzebujemy wgrywać aktualizacji na kartę pamięci, bo wszystko co będzie wyświetlone w przeglądarce możemy zmienić już na naszym serwerze.

Instalujemy Odriobiana

W tym wpisie na forum Odroida znajdziemy wszystkie niezbędne informacje na temat dystrybucji Odrobiana. Pobieramy obraz i wgrywamy go na kartę pamięci. Na dzień dzisiejszy aktualna wersja to Odrobian 1.2 Jessie – MATE i pobrałem ją stąd.

Obraz Linuxa można zapisać w tak, jak opisałem to w poprzednim wpisie.

Konfiguracja pulpitu

  1. Włączamy auto ukrywanie pasków narzędzi (w preferencjach po kliku prawym przyciskiem myszy).
  2. Usuwamy wszystkie ikony z pulpitu narzędziemy dconf Editor – parametr ‚show-desktop-icons’:
    Screenshot-dconf Editor
  3. Ustawiamy tło pulpitu i obraz tak, aby wygląd był zbliżony do następnie przygotowanej statycznej strony HTML:
    Screenshot

 

Tworzymy statyczną stronę HTML

Plik umieszczony na karcie pamięci Odroida.

Zapisałem go pod ścieżką: /home/odroid/Documents/kiosk/index.html

W powyższym fragmencie najważniejsze jest wywołanie javascriptowe:

Jeśli zawartość strony pod adresem zapisanym w zmiennej ledBoardURL zostanie pobrana, to wykonujemy do niej przekierowanie: $(location).attr(‚href’, ledBoardURL). W przeciwnym wypadku wyświetlamy powiadomienie o problemie: $.notify(„Błąd połączenia z internetem!”, „error”) i czynności powtarzamy co pięć sekund: setTimeout(arguments.callee, 5000).

Do powiadomień wykorzystałem Notify.js.

Konfigurujemy autostart przeglądarki chromium-browser

Po rozwinięciu menu pulpitu wpisujemy „startup” i wybieramy „Startup applications”. Dodajemy nową pozycję i w komendzie wpisujemy:
chromium-browser –disable-translate –kiosk –incognito file:///home/odroid/Documents/kiosk/index.html

Screenshot-Edit Startup Program

, gdzie ‚file:///home/odroid/Documents/kiosk/index.html‚ jest ścieżką pod którą zapisaliśmy nasz lokalny plik html na karcie pamięci.

Wyłączamy wygaszacz ekranu

Odznaczamy checkbox ‚Activate screensaver when computer is idle’.

Screenshot-4

Wyłączamy ustawienia oszczędzania energii

W obu opcjach wyboru ustawiamy „Never”.

Screenshot-5

Tworzymy przykładowy widok HTML na zewnętrznym serwerze

Tutaj mała uwaga – aby dane mogły być pobrane z innej domeny przez javascript, należy ustawić odpowiednio nagłówek Access-Control-Allow-Origin. W moim przypadku strona serwowana jest przez Javę, ale na potrzeby tego wpisu umieściłem przykładowy szablon w php. Przed wysłaniem jakiegokolwiek znaku dodajemy linię:

A źródło całej strony wygląda tak:

 

Wynik:

Przypadek problemu połączenia z siecią:

 

Krótka prezentacja

Podsumowanie

Ufff.. dziesięć razy więcej pracy miałem z przygotowaniem tego wpisu niż z samym uruchomieniem tego ekranu 🙂 Zwróćcie uwagę, że wszystko zostało skonfigurowane tylko i wyłącznie przez pomocnicze programy narzędziowe. Nie musieliśmy edytować żadnych skryptów. Jest tu jeszcze kilka kwestii, które można by poruszyć jak np. wyłączanie niepotrzebnych zapisów na karcie, wyświetlenie jakiegoś loga podczas uruchamiania samego Odrobiana, czy wyłączenie powiadomień.

Ten plik znajdujący się na serwerze, do którego wykonywane jest przekierowanie zaraz po starcie systemu jest tylko prostym statycznym szablonem. W nim również trzeba wykonać obsługę sprawdzania połączenia, a dane powinny być do niego pobierane np. usługami restowymi. Najłatwiej oczywiście w połączeniu z AngularemJS.

Jak widać na tym przykładzie z życia wziętego, te mini komputery takie jak Raspberry PI czy Odroid wcale nie muszą znajdować zastosowań tylko w naszych domach 🙂

Na koniec jeszcze jedna sprawa – dostęp przez ssh:
Login: odroid
Hasło: odroid

 
m_kamami_logo
Sprzęt do testów udostępnił mi sklep internetowy kamami.pl za co serdecznie dziękuję.

Raspberry Pi. Najlepsze projekty

Raspberry Pi. Najlepsze projekty

Autor: Andrew Robinson, Mike Cook

ISBN: 978-83-246-9221-7

Format: 168x237, stron: 432

Data wydania: 2014-09-09

Opis: Wykorzystaj ogromny potencjał miniaturowego komputera! Raspberry Pi to prawdziwy komputer o rozmiarach lekko przerośniętej karty kredytowej. Posiada on ogromny potencjał, całkiem sporą moc obliczeniową, a do tego kosztuje naprawdę niewiele. Platforma ta była projektowana z myślą o nauce programowania dla dzieci. Jednak, jak to często bywa, historia potoczyła się zupełnie inaczej.

Cena: 69.00zł

Raspberry Pi. Przewodnik użytkownika. Wydanie III

Raspberry Pi. Przewodnik użytkownika. Wydanie III

Autor: Eben Upton, Gareth Halfacree

ISBN: 978-83-283-0703-2

Format: 168x237, stron: 328

Data wydania: 2015-08-03

Opis: Bogate źródło informacji na temat Raspberry Pi! Raspberry Pi to komputer wielkości karty kredytowej. Wśród jego głównych atutów można wymienić ogrom możliwości oraz niską cenę. Początkowo miał pełnić rolę platformy do nauki programowania, jednak szybko znalazł tysiące innych zastosowań! Raspberry Pi jest używany jako serwer WWW, domowe media center

Cena: 49.00zł

To również może Cię zainteresować:

  • Odroid C1+, Android i przykładowa graOdroid C1+, Android i przykładowa gra Zainstalowałem sobie Androida na Odroidzie C1+ i uruchomiłem przykładową grę. Zobaczcie jak sprawuje się układ graficzny. Na moje oko min. 60 FPS.
  • Kupiłem Raspberry PI 2Kupiłem Raspberry PI 2 Jakiś czas temu opublikowałem artykuł na Majsterkowo.pl w którym umieściłem odnośniki do zakupionych produktów w Botlandzie. Ponieważ artykułowi udało się wyjść z poczekalni, otrzymałem […]
  • Pierwsze kroki z Odroid C1+, OpenELECPierwsze kroki z Odroid C1+, OpenELEC Odroid C1+ to godny konkurent dla Raspberry PI 2. Dzięki uprzejmości sklepu Kamami.pl mam możliwość jego przetestowania, a w kilku najbliższych artykułach będę opisywał jak działa ten mini […]
  • Odroid C1+, Android, C64 i powrót do przeszłościOdroid C1+, Android, C64 i powrót do przeszłości Przez kilka godzin testowałem Androida na moim Odroidzie C1+. Opisuję poniżej możliwości emulacji C64 i PSP, a artykuł pozwoli Wam powrócić do przeszłości, zwłaszcza jeśli urodziliście […]
  • Komunikacja szeregowa dwóch Arduino przez Raspberry PIKomunikacja szeregowa dwóch Arduino przez Raspberry PI Celem ćwiczenia jest wykonanie komunikacji dwóch płytek Arduino za pomocą terminala w Raspbianie Raspberry PI. Wykorzystałem do tego Arduino Leonardo do wysyłania sygnałów oraz KAmduino […]
  • HTML, CSS 2.1 i dokumenty PDFHTML, CSS 2.1 i dokumenty PDF W ostatnim czasie realizowałem projekt w którym należało zaprojektować ok. sto dokumentów PDF w postaci różnego rodzaju wniosków, w różnym układzie. Ten, kto kiedykolwiek generował […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *