Stanąłem przed wyzwaniem stworzenia prostego (i taniego) wyświetlacza reklam w placówce handlowej. Na myśl przyszło mi urządzenie Raspberry Pi z zainstalowanym systemem operacyjnym LibreELEC oraz oprogramowaniem Kodi. Urządzenie to można podłączyć do każdego telewizora poprzez złącze HDMI.
Zakładam, że posiadamy już płytkę Raspberry Pi, wyjmujemy z niej kartę pamięci i wkładamy do komputera. Następnie pobieramy program LibreELEC USB-SD Creator
ze strony https://libreelec.tv/downloads/ lub wersję, na dzień pisania tego artykułu tutaj:
Uruchamiamy program i postępujemy zgodnie z krokami zaznaczonymi na kolorowo:
- Wybieramy wersję naszej Maliny.
- Klikamy przycisk
Pobierz
, program wyświetli okno z prośbą o wskazanie miejsca zapisu pliku. Jeżeli z jakiegoś powodu program nie chciał by pobrać pliku automatycznie, to można go pobrać ręcznie ze strony https://libreelec.tv/downloads/raspberry/ wybierając wersję odpowiednią dla posiadanego modelu płytki Raspberry Pi. - Wybieramy literę dysku (naszej karty pamięci), na której ma być zainstalowany system LibreELEC.
- Klikamy
Zapisz
.
Poprawny zapis kończy się komunikatem Zapis udany!
:
Po tym komunikacie wyjmujemy kartę pamięci z komputera, wkładamy do Maliny i uruchamiamy urządzenie. System dokończy teraz konfigurację i zrestartuje Raspberry Pi. Następnie uruchomi się i wyświetli powitalnego kreatora.
W kreatorze zwróćmy uwagę na krok Networking
zapewniamy w nim połączenie z siecią (przewodowo lub WiFi). Natomiast w kroku Sharing and Remote Access
włączamy obsługę SSH i ustawiamy silne hasło – przyda się to w kolejnych krokach konfiguracji.
Aby osiągnąć funkcję automatycznego uruchamiania slideshow obrazów po starcie systemu wykorzystamy dodatek service.autoexec
.
Łączymy się z naszym urządzeniem za pomocą SSH. Można użyć klienta Putty, pobieramy go ze strony wydawcy lub tutaj:
Do wykonania połączenia potrzebny nam będzie adres IP urządzenia. Sprawdzamy go za pomocą ikonki System
wybierając kolejno System information
Przepisujemy go do programu putty i klikamy open:
Logujemy się do na konto root podając wpisane w kreatorze pierwszego uruchomienia hasło do SSH:
przechodzimy do katalogu /storage/.kodi/addons/
i tworzymy w nim katalog o nazwie service.autoexec
.
cd /storage/.kodi/addons/
mkdir service.autoexec
Przechodzimy do nowo utworzonego katalogu service.autoexec:
cd service.autoexec/
Dodajemy w tym katalogu plik autoexec.py
przez edytor nano:
Wklejając następującą zawartość:
import xbmc, time
time.sleep(30)
xbmc.executebuiltin("Slideshow(/storage/pictures)")
time.sleep(30)
xbmc.executebuiltin("Action(Play)")
Zapisujemy przez CTRL + X
odpowiadając na pytanie Save modified buffer?
klawiszem Y
i potwierdzamy Enter
.
Powyższy plik zawiera akcje, które będą wykonane po restarcie naszego urządzenia. Uruchomią one pokaz slajdów z lokalizacji /storage/pictures
. Są tam dodane polecenia time.slip()
, po to by urządzenie miało czas na uruchomienie wszystkich usług. Wartości te można zmodyfikować wg własnych potrzeb. Przy mojej konfiguracji slideshow uruchomi się po jednej minucie od włączenia urządzenia.
Kolej teraz na dodanie pliku addon.xml
. Robimy to analogicznie jak w przypadku pliku autoexec.py
wklejając następującą zawartość:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="service.autoexec" name="Autoexec Service" version="1.0.0" provider-name="your username">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
</requires>
<extension point="xbmc.service" library="autoexec.py">
</extension>
<extension point="xbmc.addon.metadata">
<summary lang="en_GB">Automatically run python code when Kodi starts.</summary>
<description lang="en_GB">The Autoexec Service will automatically be run on Kodi startup.</description>
<platform>all</platform>
<license>GNU GENERAL PUBLIC LICENSE Version 2</license>
</extension>
</addon>
Restartujemy urządzenie.
Musimy włączyć usługę, która po włączeniu urządzenia będzie uruchamiała skrypt zawarty w autoexec.p
y. W tym celu przechodzimy do Settings > Add-ons > My add-ons > Services > Autoexec Service
i włączamy ją:
Teraz po restarcie urządzenia, na ekranie powinny się automatycznie pojawić zdjęcia z lokalizacji /storage/pictures w opcji slideshow.
Koniec 🙂
Jeżeli pomogłem to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.
W zależności od wersji Kodi i wykorzystywanej wersji języka Python, jeżeli przy próbie włączenia usługi otrzymujemy komunikat, że dodatek nie jest kompatybilny z tą wersją Kodi. To możemy w pliku addon.xml zmienić wersję z:
<requires>
<import addon="xbmc.python" version="3.0.0"/>
</requires>
Na:
<requires>
<import addon="xbmc.python" version="2.25.0"/>
</requires>
W innej wersji Kodi o nazwie Chorus
: ustawienie włączające usługę jest w: Settings -> Add-on
s, szukamy xbmc.service
i wtedy Autoexec Service -> Enable
Można dodatkowo ustawić w Settings/Player/Pictures
- Use pan and zoom effects – no
- Randomise – no
- High quality downscaling – yes
Hi there, I enjoy reading all of your article post. I wanted to write a little comment to
support you.
Hej.
A co ze zuzywaniem sie kart SD – raspberry ma taka ceche, że niestety zrzuca na kartę logi. po kilku miesiącach do roku taki wyświetlacz zajedzie kartę.
trzeba logować do dev/null jesli już wszystko działa + kilka innych usprawnień
Mam wdrożone takie rozwiązanie od kilku lat (ok. 10 urządzeń). Nie spotkałem się jeszcze z uszkodzeniem karty pamięci. Być może jest to związane z „gęstością” – karty nie przekraczają 16GB.