Inhoudsopgave:

Een Digital Sign Server op een Raspberry Pi: 8 stappen
Een Digital Sign Server op een Raspberry Pi: 8 stappen

Video: Een Digital Sign Server op een Raspberry Pi: 8 stappen

Video: Een Digital Sign Server op een Raspberry Pi: 8 stappen
Video: МЕДИА СЕРВЕР - своими руками (raspberry pi + kodi) 2024, November
Anonim
Een Digital Sign-server op een Raspberry Pi
Een Digital Sign-server op een Raspberry Pi

Een absolute beginnersgids voor Corsica op een Raspberry PI

Digitale borden zijn overal. Je ziet ze op luchthavens, winkelcentra, warenhuizen en zelfs op straathoeken. U hebt niet veel dure aangepaste hardware nodig om uw eigen digitale tekensysteem te bouwen. Deze Instructable laat zien hoe u een digital signage-server bouwt die tientallen schermen kan aansturen. Elk display kan zo simpel zijn als een monitor en een Raspberry PI.

Dankzij de Node Ninjas bij Mozilla kun je de server zelfs op een Raspberry Pi draaien met Corsica.

Corsica is een uitbreidbare digital signage-oplossing die op de meeste POSIX-systemen kan worden geïmplementeerd. Het bestaat uit een server en display-clients. Clientmachines hebben geen speciale software nodig en draaien gewoon een moderne webbrowser, hoewel iedereen in het Corsica-team Firefox ten zeerste aanbeveelt. De server verbruikt zeer weinig bronnen en zal met plezier op een Raspberry Pi of een andere zeer kleine machine draaien. Een Corsica-server die draait op een Raspberry Pi 3+ kan gemakkelijk meer dan 100 clientdisplays ondersteunen. Deze instructies zijn specifiek geschreven voor een Raspberry Pi met het Raspian-besturingssysteem (een afgeleide van Debian). Deze instructies gaan er ook van uit dat u de Firefox-browser gebruikt. De meeste andere moderne browsers zouden ook moeten werken.

Stap 1: De Raspian-opdrachtregel

Deze instructies laten u zien hoe u Corsica kunt configureren via de opdrachtregel. Als u Raspian gebruikt met de grafische gebruikersinterface (GUI), gaat u via de terminaltoepassing naar de opdrachtregel. Als je Raspian-lite gebruikt, kun je een toetsenbord en monitor aansluiten en de opdrachtregel rechtstreeks gebruiken, of je kunt verbinding maken via het netwerk met SSH. Zie de Raspian SSH-documentatie voor meer informatie over het inschakelen en gebruiken van SSH. U moet de DNS-naam of het IP-adres van uw Raspberry Pi weten. De standaardnaam op de meeste LAN's is raspberrypi.local. Als dat niet werkt, zijn er instructies in de Raspian-documentatie die u zullen helpen de juiste naam en IP-adres te achterhalen.

Stap 2: Software-installatie

Corsica gebruikt node en npm. Met Node kunt u Javascript aan de serverzijde uitvoeren en npm is de pakketbeheerder van het knooppunt.

Om deze op een Raspberry Pi te installeren, controleert u eerst de versie van de processor in uw systeem:

uname -m

Als het resultaat begint met armv6, zie dan deze blogpost. Voor Raspberry Pi 3-systemen en andere met armv7 en latere processors:

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -

sudo apt install nodejs

Als u niet bekend bent met Node, kunt u meer informatie vinden op nodesource.com.

Installeer vervolgens de Corsica Command Line Tools:

sudo npm install -g corsica-cli

Typ. om de beschikbare opdrachten te zien

corsica --help

Op het moment van schrijven zijn de beschikbare commando's:

setup-- om een Corsica-server in te stellenstart [opties] -- om de Corsica-server te starten herstart [opties] -- om een actieve Corsica-server te herstartenstop -- om een actieve Corsica-server te stoppenadd-plugin [naam] -- om een plug-in te installerenverwijder- plug-in [naam] -- om een geïnstalleerde plug-inlijst-plug-ins te verwijderen -- om de geïnstalleerde plug-insupdate weer te geven -- om zowel Corsica als zijn plug-ins bij te werken

Nu kunt u de tools gebruiken om de Corsica-software in te stellen:

Corsica-opstelling

Corsica setup zal vragen waar u Corsica wilt installeren en u de standaardlocatie tonen:

Waar Corsica te installeren: (/home/pi/corsica-server)

Je kunt gewoon op Return drukken.

U ziet enkele npm-waarschuwingsberichten. Deze zijn veilig te negeren.

Wanneer de setup "Klaar!" zegt, heb je Corsica geïnstalleerd.

U kunt Corsica starten in uw terminalsessie met:

start corsica

En stop het met controle-C.

Maar als u het op die manier start, werkt het alleen zolang uw terminalsessie loopt. Wanneer u uw terminalsessie sluit, stopt corsica.

Als u Corsica op de achtergrond start, wordt het ook uitgevoerd nadat u uw terminalsessie hebt verbroken. Dat kan met

corsica start --achtergrond

Als u wilt voorkomen dat een Corsica-instantie op de achtergrond wordt uitgevoerd, typt u:

stop corsica

Stap 3: Configuratie

Je opstelling zal waarschijnlijk wat aanpassingen nodig hebben. Er zijn twee soorten aanpassingen op Corsica: configuratie en instellingen. Configuratie is meestal statisch en wordt gebruikt door de kern. Instellingen zijn dynamisch en worden meestal gebruikt door plug-ins. Later meer over instellingen.

Configuratie komt uit de omgeving en is voor zeer statische zaken zoals de poort om op te luisteren of de plug-ins om te laden. Er zijn vier bronnen voor configuratie:

1. lib/config.json - Hier worden de standaardwaarden opgeslagen en een goede plek om te zien wat er kan worden geconfigureerd. U moet hier geen waarden wijzigen.

2. config.js - Instellingen in dit bestand worden geladen alsof ze afkomstig zijn uit de omgeving. De syntaxis is één configuratie per regel, b.v. `POORT=8080`. Als de waarden hier geldige JSON zijn, worden ze als zodanig geparseerd. De instellingen hier overschrijven de standaardinstellingen in `lib/config.json`. Het bestand config.js specificeert aanvankelijk het poortnummer waarop Corsica luistert, en de plug-ins die door het systeem worden gebruikt.

3..env - Als het verborgen bestand met de naam.env zich in de Corsica-directory bevindt, worden de instellingen ervan geladen alsof ze afkomstig zijn uit de omgeving. De syntaxis is hetzelfde als in config.js. Dit bestand bestaat niet in de standaardconfiguratie.

4. Omgevingsvariabelen - U kunt desgewenst configuratie-informatie in systeemomgevingsvariabelen plaatsen. Als u niet bekend bent met omgevingsvariabelen, kunt u deze optie veilig negeren.

Stap 4: Beeldschermen aansluiten

Zodra u Corsica start, wordt er een webserver uitgevoerd op poort 8080 van uw machine, tenzij u het poortnummer in het.env-bestand hebt gewijzigd. U moet de hostnaam of het IP-adres van uw Pi weten. De standaardnaam voor een nieuwe Raspberry Pi-installatie is raspberrypi. Als u het niet hebt gewijzigd, kunt u gewoon een browser openen op uw display-clientcomputer en bladeren naar:

raspberrypi.local:8080

U zou het geel met zwarte Corsica-logo moeten zien. Er verschijnt een bubbel met de Corsica-naam van uw klant. U kunt (en moet) de naam van uw klant wijzigen in iets dat de locatie van dit specifieke scherm aangeeft. De eenvoudigste manier om dit te doen is door Potch's corsica-repl te gebruiken. (Potch is een van de belangrijkste ontwikkelaar van Corsica en hij heeft beloofd binnenkort een repl in de kern van Corsica te plaatsen).

Open een browsertabblad en blader naar:

potch.github.io/corsica-repl?server=https://raspberrypi.local:8080/

(Dat veronderstelt dat raspberrypi.local de naam is van uw Corsica-server).

We gebruiken 'TestClient' als de naam van de clientweergave voor de rest van deze zelfstudie. Ga naar de vervolgkeuzelijst in de rechterbenedenhoek van het scherm en zoek de klantnaam die is verschenen. Typ vervolgens in de opdrachtregel linksonder in het scherm:

admin type=naam wijzigen=TestClient

Laat het tabblad corsica-repl open en schakel over naar het browsertabblad met het Corsica-logo en ververs de pagina. Je ziet de nieuwe naam in de pop-upballon. Als het te snel verdwijnt, houdt u uw muis in de rechterbenedenhoek en verschijnt de knop "Volledig scherm" met de nieuwe naam aan de linkerkant.

Stap 5: Inhoud toevoegen

Inhoud toevoegen
Inhoud toevoegen

Na het tonen van het Corsica-logo toont de klant enkele tekenfilmdieren op een blauwe achtergrond.

De standaardtag in het bestand state.json bevat een lijst met webpagina-adressen. U kunt elke webpagina op deze manier presenteren, hoewel de lay-out van sommige pagina's ze minder geschikt maakt voor gebruik met Corsica.

Een Corsica-client geeft inhoud weer van een of meer tags waarop hij is geabonneerd. Nieuwe klanten zijn al geabonneerd op een tag met de naam "default".

Tekenfilmdieren zijn schattig, maar laten we wat nuttige inhoud toevoegen aan de schermrotatie op onze testclient.

Keer terug naar het corsica-repl-tabblad en typ in de opdrachtregel linksonder:

admin type=abonneer tag=weer

Schakel terug naar het tabblad Weergaveclient en vernieuw de pagina.

Een weersvoorspelling voor San Jose, Californië, wordt toegevoegd aan de lijst met weergegeven URL's.

Ons voorbeeldbestand state.json bevat drie tags met de namen "default", "weather" en "images". De tag "images" bevat links naar meer afbeeldingen met cartoondieren (.png) bestanden. Laten we die toevoegen door terug te gaan naar het tabblad corsica-repl en te typen:

admin type=abonneer tag=afbeeldingen

Keer opnieuw terug naar het tabblad Weergaveclient en vernieuw de pagina. Je zult zien dat er een aantal nieuwe dieren aan de rotatie zijn toegevoegd. Maar merk op dat de nieuwe dieren aan de linkerrand van de pagina verschijnen met een witte achtergrond. Dat komt omdat de cartoons met de blauwe achtergrond in state.json worden vermeld als urls die verwijzen naar een goede webpagina die in html is geschreven. De nieuwe cartoons met de witte achtergronden worden in state.json weergegeven als urls die alleen verwijzen naar de.png-afbeeldingsbestanden zonder omsluitende html.

We kunnen de manier waarop die afbeeldingen door Corsica worden weergegeven verbeteren, maar daarvoor moeten we Corsica zelf "uitbreiden".

Stap 6: Corsica verlengen

Corsica verlengen
Corsica verlengen

Meer dan een dozijn npm Corsica-plug-ins zijn beschikbaar op de npm-website. Volg die link en typ "corsica" in het zoekvak bovenaan de pagina om een lijst van hen te zien. We zullen een van die npm-plug-ins gebruiken om je onze nieuwe dieren te laten zien. Het is ook handig om elke afbeelding die u op internet vindt weer te geven, zonder storende afbeeldingen rond de afbeelding weer te geven.

Ga naar de Corsica-opdrachtregel, stop Corsica en installeer de plug-in corsica-image:

corsica add-plugin corsica-image

Start corsica vervolgens opnieuw op:

start corsica

Open het tabblad Corsica Display Client in uw browser en vernieuw de pagina. Je zou de nieuwe dieren gecentreerd op het scherm moeten zien met een donkerblauwe achtergrond.

Stap 7: Inhoud aanpassen

Laten we eens kijken naar het verschil tussen wat de urls in de standaardtag doen en die in de afbeeldingentag. Bekijk state.json door naar de Corsica-opdrachtregel te gaan en te typen:

cat ~/corsica-server/state.json

In het "standaard" gedeelte van dat bestand vindt u een regel die er als volgt uitziet:

"https://ramilewski.github.io/corsica-support/show.html?image=kitty.png", Deze url is een link naar een webpagina met een cartoon van een kitten. Die webpagina geeft een afbeelding weer, maar levert ook een achtergrond die een verloop is dat bovenaan de pagina begint als een blauwe kleur en onder aan de pagina vervaagt naar wit. Die achtergrond wordt gemaakt door de CSS en HTML van de webpagina. Het maakt geen deel uit van de afbeelding zelf.

De secties "afbeeldingen" van de pagina hebben een regel die eruitziet als:

https://ramilewski.github.io/corsica-support/bunny-p.webp

"# 2244BB" is een hexadecimale notatie voor een donkerblauwe kleur. Zie de MDN-kleurkiezer voor een hulpmiddel waarmee u een kleur in hexadecimale notatie kunt specificeren.

Bij het weergeven van deze regel heeft Corsica de plug-in corsica-image gebruikt om het display weer te geven. Dit betekent dat als u een afbeelding vindt die u wilt weergeven op uw Corsica-clientschermen, u een regel in state.json kunt maken die alleen die afbeelding weergeeft, maar geen andere afleidende inhoud van de omringende pagina. Om de url van een afbeelding in Firefox te vinden, klikt u met de rechtermuisknop op de afbeelding en selecteert u "Afbeeldingslocatie kopiëren" in het contextmenu dat verschijnt.

De sectie "weer" van state.json heeft slechts één url. Dit haalt een weersvoorspelling op van https://forecast.io. Maar tenzij je in San Jose woont, is die voorspelling niet erg nuttig. Om een voorspelling voor uw locatie te krijgen, moet u de lengte- en breedtegraad in decimale graden weten. Als u dat niet doet, is er een webgebaseerde tool waarmee u het kunt vinden.

Op dit moment ziet de url in de regel in state.json die de weersvoorspelling aangeeft er als volgt uit:

"https://forecast.io/embed/#lat=37.3352&lon=-121.8871&name=San%20Jose%20CA&color=#4466bb zoom=300"

Om de voorspelling voor uw locatie te krijgen, wijzigt u de lat- en lon-invoer in die regel en wijzigt u de naam in uw locatie. Gebruik %20 in plaats van spaties in de plaatsnaam. De kleurparameter specificeert de kleur van de balken tussen de hoge en lage temperaturen. De zoomparameter wordt gebruikt om de grootte van de voorspelling aan te passen aan het weergavescherm.

Wanneer u uw eigen state.json-bestand maakt, onthoud dan dat als u een "standaard"-tag heeft, alle inhoud die in die tag is gespecificeerd, wordt weergegeven in elke browser die verbinding maakt met de server zonder verdere configuratie.

Weergavetiming

Bovenaan state.json zijn er enkele instellingen die bepalen hoe lang elke afbeelding op het scherm wordt weergegeven.

"instellingen::timer": {

"resetTime": 30000, "jitter": 5000, Alle tijden worden gemeten in milliseconden (duizendsten van een seconde). De resetTime is de maximale tijd dat elk beeld op het scherm staat voordat het volgende scherm wordt weergegeven. Jitter wordt vermenigvuldigd met een willekeurig getal tussen -1 en 1 en het resultaat wordt toegevoegd aan resetTime. Dit zorgt voor enige variatie in weergavetijden. Je kunt jitter desgewenst op 0 zetten. De getoonde instellingen zorgen ervoor dat elke pagina tussen de 25 en 35 seconden wordt weergegeven.

U kunt ook verschillende tijden instellen voor elke display-client:

"instellingen::timer": {

"resetTime": 30000, "jitter": 5000, "resetOnConnect": true, "screens": { "TestClient": { "resetTime": 10000, "jitter": 1000 } } }, Hier hebben we de weergavetijd voor onze TestClient ingesteld tussen 9 en 11 seconden.

Stap 8: Conclusie

We hebben laten zien hoe je een Corsica-server op een Raspberry Pi installeert en configureert. Met wat je hier hebt geleerd, kun je een veelzijdig, zeer goedkoop digital signage-systeem bouwen. U kunt Raspberry Pis niet alleen als server in uw systeem gebruiken, maar ook om clientdisplays aan te sturen.

Er zijn veel meer plug-ins op de npm-website die u kunt gebruiken om andere mogelijkheden aan uw Corsica-installatie toe te voegen, waaronder het weergeven van:

  • Afbeeldingen van Flickr
  • Tweets
  • Gesprekken in een IRC-kanaal
  • Videobestanden
  • Youtube filmpjes
  • Dia's in Google-presentaties
  • XKCD tekenfilms
  • Inhoud van een RSS-feed

Credits

Corsica is de creatie van derdegraads blackbelt Node Ninjas van Mozilla onder leiding van potch, lonnen en mythmon.

Deze instructies voor Corsica op Raspberry Pis zijn in elkaar geflanst door Richard.

Je kunt meestal iedereen op het #corsica-kanaal op irc.mozilla.org vinden.

Aanbevolen: