Inhoudsopgave:

Raspberry Pi Bulletin Board - Ajarnpa
Raspberry Pi Bulletin Board - Ajarnpa

Video: Raspberry Pi Bulletin Board - Ajarnpa

Video: Raspberry Pi Bulletin Board - Ajarnpa
Video: Digital Dashboard (Calendar/Weather/To-Do List/etc) 2024, Juli-
Anonim
Raspberry Pi-prikbord
Raspberry Pi-prikbord
Raspberry Pi-prikbord
Raspberry Pi-prikbord
Raspberry Pi-prikbord
Raspberry Pi-prikbord

Dit is een project waaraan ik heb gewerkt voor mijn kerk. We wilden een elektronisch prikbord dat in de narthex/lobby zou worden gemonteerd en om de paar seconden door statische dia's zou fietsen.

Dit waren onze ontwerpdoelen:

  • Statische dia's, geen video of audio
  • Admin genereert slides in Powerpoint (bekende tool, geen nieuwe software om te leren)
  • Beheerder kan nieuwe presentatie slepen en neerzetten om de oude te vervangen
  • Geen cloudgebaseerde oplossing, aangezien het prikbord zich op ons eigen draadloze netwerk zou bevinden
  • Geen maandelijkse licentiekosten of propriëtaire software, anders dan wat we al hadden (Windows, Office, Powerpoint)
  • 49-inch scherm, in staande/verticale modus (hoewel liggende/horizontale modus ook mogelijk is en hieronder wordt beschreven)
  • Gewenste kosten: <$1000

We zijn erin geslaagd om dit te doen en zijn binnen het budget gebleven. Ik heb onlangs een andere kerk in de buurt geholpen om hetzelfde project te doen, en de totale kosten (exclusief de kosten van een elektricien om de stroom op de juiste plaats aan de muur te brengen en de arbeid die bij de montage betrokken was) waren minder dan $ 500.

Vanwege de lage kosten en in wezen geen lopende kosten (alleen elektriciteit), zou dit ook goed passen bij scholen, bibliotheken, musea, non-profitorganisaties of andere organisaties met een beperkt budget.

Feedback is welkom.

Stap 1: Apparatuurlijst

Uitrustingslijst
Uitrustingslijst
Uitrustingslijst
Uitrustingslijst
Uitrustingslijst
Uitrustingslijst

Hier is een lijst met apparatuur die we hebben gebruikt. Er worden opmerkingen toegevoegd. Ik probeer waar mogelijk te linken naar de site van de fabrikant, in plaats van naar een detailhandelaar.

  • TV/monitor. De meeste moderne tv's of monitoren zijn geschikt, zolang ze maar CEC hebben (zie dit artikel op Wikipedia voor meer informatie over CEC: https://en.wikipedia.org/wiki/Consumer_Electronics_Control). De meeste monitoren zijn gemaakt om verticaal/staand of horizontaal/liggend te worden gemonteerd. Tv's zijn ontworpen om horizontaal te zijn, dus verticaal monteren is wat lastiger. Ook zijn veel tv's van boven naar beneden asymmetrisch (d.w.z. de onderkant is vaak groter dan de bovenkant), dus verticaal monteren kan er een beetje vreemd uitzien. Toch zijn tv's over het algemeen goedkoper, dus gingen we met een tv. Als uw voorkeursoriëntatie liggend is, maakt het natuurlijk niet uit. We gingen voor deze: LG 49" led-tv.
  • TV-beugel: Dit was lastig, omdat we een tv kochten en deze verticaal wilden monteren. Dingen om te overwegen zijn de stijl van de montage en of deze zichtbaar zal zijn, vooral als de tv verticaal wordt gemonteerd. De beugel wordt in dezelfde richting aan de muur geplaatst alsof u de tv horizontaal zou monteren. Als u ervoor kiest om de tv verticaal te monteren, moet u overwegen of de schroefgaten in de tv-beugel de gedraaide montagegaten in de tv kunnen opnemen. Sommige tv's plaatsen hun bevestigingsschroeven in een vierkant patroon, terwijl sommige een rechthoekig patroon hebben. Denk hier goed over na en zorg ervoor dat je montage op de gewenste locatie werkt voordat je hem koopt.
  • Raspberry Pi, behuizing, kabels, koellichaam, ventilator, enz.: Ik raad je aan om de nieuwste en beste versie te gebruiken. Op het moment dat we het project bouwden, was het de Raspberry Pi 3 B+, maar nu is de Raspberry Pi 4 B uit. Wat betreft behuizing, netsnoer, koellichamen, ventilator, hebben we besloten dat, aangezien de Raspberry Pi 24/7 zal werken, we een behuizing met een ventilator wilden, zij het een stille. En met een netsnoer met een inline aan/uit-schakelaar is het eenvoudig om het systeem te resetten zonder de stekker uit het stopcontact te hoeven trekken. Het andere grote verschil tussen de Raspberry Pi 3 B+ en Raspberry Pi 4B is dat de 4 B een micro-HDMI-stekker heeft, wat betekent dat je een adapter nodig hebt (deze zit in de kit hieronder).

    • Als je voor de Raspberry Pi 3 B+ gaat: Raspberry Pi 3 B+ Case Kit (exclusief Raspberry Pi)
    • Als je voor de Raspberry Pi 4 B gaat: Raspberry Pi 4 B Case Kit (bevat geen Raspberry Pi)
  • HDMI-kabel: Elke is prima, zolang deze CEC ondersteunt. Houd er rekening mee dat de Raspberry Pi meestal aan de muur achter de tv/monitor wordt gemonteerd of mogelijk aan de tv/monitor zelf wordt bevestigd, dus een korte 3'-kabel is waarschijnlijk voldoende. Een te lange kabel en het zal blijken. Overweeg ook waar de HDMI-poorten zich op de tv/monitor bevinden en of u een kabeluiteinde van 90 graden kunt overwegen (bijvoorbeeld als de HDMI-poorten zich aan één kant bevinden).
  • Micro SD kaart. Dit maakt ook niet veel uit. We kozen voor 32 GB in plaats van standaard 16 GB, gewoon om extra ruimte te hebben voor extra software, als we dat wilden, en om een plek te hebben om meerdere presentaties op te slaan. We kozen deze: SanDisk Ultra PLUS 32GB MicroSD-kaart. Merk op dat het gemakkelijker is als je een MicroSD-kaart koopt waarop NOOBS al is geïnstalleerd, zoals deze: SD-kaart met NOOBS. Ik heb dat niet gedaan, maar je kunt een stap besparen als je dat doet. Kijk hier voor meer informatie: NOOBS

Een opmerking over CEC: CEC (Consumer Electronics Control) zorgt ervoor dat sommige componenten elkaar kunnen bedienen via de HDMI-kabel. Een dvd-speler kan bijvoorbeeld de aangesloten tv in-/uitschakelen via de HDMI-kabel als beide CEC ondersteunen. Dit is in ons geval handig, omdat de Raspberry Pi de tv/monitor naar wens kan in-/uitschakelen. In een kerkomgeving willen we bijvoorbeeld de monitor alleen aan hebben tijdens de uren dat de kerk open is, en dat verschilt per dag van de week. Met CEC kan de Pi de tv in- en uitschakelen in een willekeurig complex tijdschema.

Stap 2: Monteer de Pi-behuizing

Monteer de Pi-behuizing
Monteer de Pi-behuizing
Monteer de Pi-behuizing
Monteer de Pi-behuizing
Monteer de Pi-behuizing
Monteer de Pi-behuizing

Montage is redelijk eenvoudig. Plak de koellichamen op de chips van overeenkomstige grootte op de Raspberry Pi, monteer de behuizing laag voor laag. Vergeet niet de dunne plastic beschermvellen van elke laag te verwijderen.

Stap 3: Installeer Raspbian

Raspbian installeren
Raspbian installeren

Er is een uitstekende gids op de Raspberry Pi-site. Volg deze instructies om het in te stellen.

Uw Raspberry Pi instellen

Ik heb Raspbian Lite gebruikt, omdat het geen extra applicaties heeft die je niet nodig hebt voor dit project.

Stap 4: Standaard- en aangepaste software toevoegen

Zodra NOOBS Raspbian heeft geïnstalleerd, wordt u de eerste keer dat u inlogt gevraagd om zaken als taal, tijdzone, enz. Het zal ook vragen om WiFi-netwerk- en wachtwoordinformatie, tenzij u een bekabelde verbinding heeft. Ten slotte zal het alle Raspbian-updates downloaden en installeren. Het helpt als je dezelfde internetverbinding hebt als in de uiteindelijke configuratie, maar dat hoeft niet. Dat wil zeggen, u kunt deze stap thuis uitvoeren voordat u zich op de uiteindelijke locatie installeert. Vergeet niet om de nieuwe internetverbinding in te stellen voor de laatste herstart in de laatste stap.

Open een terminalvenster (klik op het zwarte rechthoekige pictogram in de linkerbovenhoek van het scherm).

Eerst controleren we of er nog Raspbian-updates zijn. Typ de volgende regels, één voor één:

sudo apt update

sudo apt-upgrade

(zeg "Y" als er wordt gevraagd of je updates wilt installeren).

Vervolgens installeren we Samba, waarmee het delen van mappen met de Windows-machine(s) op het netwerk mogelijk is.

sudo apt install samba samba-common-bin smbclient cifs-utils

Vervolgens installeren we fbi. fbi is het Unix-hulpprogramma dat afbeeldingen weergeeft op een scherm zonder vensterbeheer.

sudo apt install fbi

Vervolgens installeren we inotify-tools. met inotify-tools kan de diavoorstelling de gedeelde map bekijken op eventuele wijzigingen.

sudo apt install inotify-tools

Vervolgens installeren we cec-utils. Met cec-utils kan de Raspberry Pi de tv in- en uitschakelen via de HDMI-kabel.

sudo apt install cec-utils

Vervolgens moet je de kleine hulpprogramma's downloaden die ik heb geschreven om de diavoorstelling af te spelen.

git clone

Hiermee wordt de code opgehaald en in een map met de naam raspi_slideshow geplaatst.

Nu is alle software beschikbaar op de Raspberry Pi. De volgende stappen doorlopen de configuratie.

Stap 5: Gedeelde map instellen

Standaard zoekt de diavoorstellingscode naar een directory (map) /shared/Presentation.

We moeten die map maken. Omdat het zich op rootniveau bevindt, hebben we rootrechten nodig, dus een sudo is in orde. Mogelijk moet u het wachtwoord typen (standaard is framboos) wanneer u deze opdracht uitvoert:

sudo mkdir -p /shared/Presentatie

Vervolgens moeten we dit leesbaar en beschrijfbaar maken voor iedereen op deze Pi. Typ de volgende opdracht:

sudo chmod a+rwx /shared/Presentatie

Dit maakt het alleen zichtbaar op deze Pi. Vervolgens moeten we deze map met de wereld delen (eigenlijk alleen andere machines op hetzelfde netwerk). Daarom raden we aan dit op een privé (met wachtwoord beveiligd) wifi-netwerk of een bekabeld lokaal netwerk te doen.

Toen we samba in de vorige stap installeerden, creëerde het een standaardbestand /etc/samba/smb.conf

We moeten een aantal regels aan het einde van dat bestand toevoegen. De regels staan in het bestand raspi_slideshow/add_to_smb.conf

De eenvoudigste manier om dit te doen is als volgt:

sudo bash

cat raspi_slideshow/add_to_smb.conf >> /etc/samba/smb.conf afsluiten

Dit voegt in feite het bestand add_to_smb.conf samen tot het einde van /etc/samba/smb.conf

Je kunt ervoor kiezen om het via een editor zoals nano te doen als je dat liever hebt, maar het is behoorlijk wat typen.

In principe deelt het de /shared directory als een directory die leesbaar en beschrijfbaar is voor iedereen op het lokale netwerk. Ik zal hier niet doornemen hoe je het kunt beschermen, maar als je wilt dat het wordt beschermd (om een wachtwoord nodig te hebben om te bewerken), kun je Samba lezen en de instellingen dienovereenkomstig wijzigen.

Stap 6: Monitor aan/uit-instellingen configureren

We gebruiken cron om de tv/monitor op geplande tijden aan en uit te zetten. Cron is een linux-hulpprogramma dat taken op geplande tijden uitvoert. Als je wilt dat je tv/monitor 24/7 draait of als je hem handmatig aan en uit wilt zetten, kun je deze stap overslaan.

Kopieer het voorbeeld crontab-bestand van de raspi_slideshow directory naar de home directory.

cp raspi_slideshow/crontab_example.pi crontab.pi

Het bestand crontab_example.pi is een voorbeeld dat laat zien hoe dit type bestand werkt. Er is veel documentatie in Wikipedia en elders:

Nu bewerken we het. Het helpt om je schema al te hebben bedacht. Het voorbeeldschema is:

  • Zondag: aan om 7u, uit om 21u
  • Woensdag: aan om 8u, uit om 21u
  • Zaterdag: aan om 7u, uit om 21u
  • Andere dagen: aan om 8u, uit om 17u

Ik hou van nano omdat het is geïnstalleerd met Raspbian en gemakkelijk te gebruiken is. U kunt vi of een andere editor gebruiken.

nano crontab.pi

Bewerk het bestand om aan/uit-tijden voor elke dag op te geven. Gebruik de pijltjestoetsen om te bewegen. Backspace om te verwijderen, typ om in te voegen. Als je klaar bent, Control-O om op te slaan (je moet op "enter" drukken om de bestandsnaam te bevestigen), en Control-X om nano af te sluiten.

Zodra u uw cron-bestand hebt zoals u het wilt, vertelt u Raspbian dat u het wilt uitvoeren:

crontab crontab.pi

Als je ooit je schema wilt wijzigen, kun je $HOME/crontab.pi bewerken en het crontab-commando direct hierboven opnieuw uitvoeren. Dat zal uw oude schema vervangen door het nieuwe.

Stap 7: Display-instellingen configureren

Display-instellingen configureren
Display-instellingen configureren

We zijn bijna klaar! We moeten de weergave-instellingen configureren. fbi is het hulpprogramma dat we gebruiken om de dia's weer te geven. Het leest zijn instellingen uit het bestand.fbirc in de homedirectory.

Zorg er eerst voor dat we ons in de homedirectory bevinden.

cd $HOME

Kopieer vervolgens het bestand van de map raspi_slideshow naar home

cp raspi_slideshow/.fbirc.

U hoeft het bestand niet te bewerken. Als u echter kiest, zijn de drie instellingen die van belang zijn:

willekeurig = onwaar

blend-msecs = 500

time-out = 8

De willekeurige lijn bepaalt of fbi de volgorde van de dia's willekeurig maakt. true betekent dat het de dia's willekeurig maakt, false betekent dat dit niet het geval is. Omdat we enige controle wilden hebben over de volgorde waarin de dia's zich bevinden, hebben we deze ingesteld op 'false'.

De regel blend-msecs geeft aan hoeveel milliseconden (1000 = 1 seconde) elke overgang duurt. Een waarde van 0 betekent dat de dia's onmiddellijk van de ene naar de andere veranderen. Onze instelling van 500 betekent dat de dia's in een periode van 0,5 seconde in elkaar overlopen.

Time-out is de tijd (in seconden) dat elke dia wordt weergegeven voordat naar de volgende wordt overgegaan. U kunt dit aanpassen als u wilt dat dia's langer of korter zijn. Houd er rekening mee dat dit voor alle dia's in gelijke mate geldt. Het is niet mogelijk om sommige dia's langer te laten verschijnen en andere korter.

Scherm draaien

Als je je tv/monitor verticaal hebt gemonteerd, zoals wij doen, moet je het scherm 90 graden of 270 graden draaien. Als je je tv/monitor horizontaal hebt gemonteerd, kun je de rest van deze stap overslaan.

Gebruik nano opnieuw. Deze keer moet je als root draaien, dus je moet sudo doen, waarvoor je mogelijk je wachtwoord opnieuw moet invoeren (standaard is framboos)

sudo nano /boot/config.txt

Gebruik de pijl-omlaag om helemaal naar de onderkant van dit bestand te gaan. Voeg de volgende regel toe aan het einde van het bestand:

display_rotate=1

Hierdoor wordt het scherm 90 graden gedraaid. Als je display na montage ondersteboven staat, verander dan de 1 in een 3.

In principe display_rotate = 0 (geen rotatie), 1 (90 graden), 2 (180 graden), 3 (270 graden)

In de bovenstaande afbeelding hadden we display_rotate=1 ingesteld en moesten we teruggaan en dit wijzigen in display_rotate=3. Veel gemakkelijker dan de tv opnieuw te monteren!

Stap 8: Wachtwoord wijzigen en Auto-run instellen

Wachtwoord wijzigen en Auto-run instellen
Wachtwoord wijzigen en Auto-run instellen
Wachtwoord wijzigen en Auto-run instellen
Wachtwoord wijzigen en Auto-run instellen

Ondertussen zijn we bijna klaar!

Klik op het Raspberry-menu in de linkerbovenhoek, selecteer Voorkeuren->Raspberry Pi-configuratie

Dat roept een dialoogvenster op. Klik op "Wachtwoord wijzigen…" en verander het in iets dat u zich herinnert!

U kunt ervoor kiezen om de naam van het systeem te wijzigen (Hostnaam veld).

Zorg ervoor dat u op Boot "Naar CLI" klikt

Automatisch inloggen instellen ("Inloggen als gebruiker 'pi'")

Nu moet u de diavoorstelling zo instellen dat deze wordt uitgevoerd wanneer u opstart. De eenvoudigste manier is om één regel toe te voegen aan uw.bashrc-bestand. Onze nano-editor opstarten:

nano.bashrc

Pijl omlaag naar het einde van het bestand en voeg de volgende regel toe:

python3 raspi_slideshow/play_slideshow.py

Deze instellingen betekenen dat:

  • Telkens wanneer hij opnieuw wordt opgestart, zal de Raspberry Pi automatisch inloggen als gebruikerspi
  • Het start geen vensterbeheerder, maar wordt gewoon op het scherm uitgevoerd ("Boot to CLI")
  • Het zal de bash-shell opstarten, die het.bashrc-bestand leest, en de laatste regel van dat bestand zegt dat de diavoorstelling moet worden uitgevoerd.

Hierna zal opnieuw opstarten de vensterbeheerder NIET starten en zal automatisch de diavoorstelling worden uitgevoerd. U kunt de diavoorstelling stoppen door tijdens de diavoorstelling op Control-C te drukken. Dit zal je terugsturen naar de bash-prompt ($).

Als u de windowmanager vanaf dit punt wilt starten (voor foutopsporing of eenvoudigere manipulatie van instellingen), kunt u dit doen door "startx" te typen op de opdrachtregel.

Stap 9: Gebruik (de Windows-machine instellen)

Bij daadwerkelijk gebruik maakt onze Raspberry Pi bij het opstarten verbinding met ons eigen draadloze netwerk. Het deelt zijn /shared directory (en alles daaronder) met het netwerk. Om deze map vanaf een Windows-computer te zien, moet u ervoor zorgen dat u zich op hetzelfde netwerk bevindt.

Ik neem aan dat je hiermee verbinding maakt vanaf een Windows-computer in een kantoor. Open voor Windows 7 of Windows 10 een Verkenner om de bestanden/mappen op uw computer te bekijken. Klik met de rechtermuisknop aan de linkerkant waar "Computer" of "Deze computer" staat en selecteer vervolgens "Map Network Drive…"

Dat zal een dialoogvenster openen. Kies welke letter, b.v. "Z:" waarnaar u uw rit wilt toewijzen. Typ vervolgens in het veld Map:

{naam-van-uw-Pi-computer}\gedeeld

waarbij {naam-van-uw-Pi-computer} de naam is die u uw Raspberry pi in de vorige stap hebt gegeven (zie vorige afbeelding met het dialoogvenster).

Zorg ervoor dat u op "Opnieuw verbinden bij inloggen" klikt. Het is mogelijk dat als de Raspberry Pi is uitgeschakeld wanneer de Windows-computer opstart, deze stap moet worden herhaald (of de Windows-computer opnieuw moet worden opgestart) om de gedeelde map te zien.

Als u ervoor kiest om uw map met een wachtwoord te beveiligen, kunt u inloggegevens toevoegen door "Verbinden met verschillende inloggegevens" te selecteren en de gebruikersnaam/het wachtwoord voor de Raspberry Pi in te voeren.

Als u nu wilt dat dia's in uw diavoorstelling worden opgenomen, kopieert u afzonderlijke dia-afbeeldingen (*) naar de map Presentatie.

Het script zal ALLEEN de inhoud van de presentatiemap controleren en weergeven, en niets op het niveau daarboven (gedeeld). Daarom gebruiken we soms de truc om veelgebruikte dia's op het hoogste niveau te plaatsen en ze vervolgens naar behoefte naar of uit de map Presentatie te slepen.

Onthoud dat wanneer er iets in de presentatiemap verandert (bestanden worden toegevoegd, verwijderd of gewijzigd), het script voor de diavoorstelling 2 minuten wacht (120 seconden, configureerbaar in play_slideshow.py, zoek naar wait_time) voordat het opnieuw wordt ingesteld en de nieuwe dia's worden weergegeven. Dit geeft de persoon de tijd om alle noodzakelijke wijzigingen aan te brengen zonder te resetten nadat elk nieuw bestand is toegevoegd.

Afzonderlijke dia-afbeeldingen zijn jpeg-, gif- of png-bestanden die een enkele dia vertegenwoordigen. De eenvoudigste manier om deze te genereren is met behulp van Microsoft PowerPoint of een vergelijkbaar programma. U kunt in Microsoft PowerPoint zoveel dia's genereren als u wilt en deze opslaan als PowerPoint-presentatie. Klik vervolgens op Bestand->Exporteren->Bestandstype wijzigen en sla op als PNG of JPEG. Hierdoor worden de dia's als afzonderlijke bestanden uitgevoerd, b.v. slide1.png, slide2.png, enz. Vervolgens kunt u afzonderlijke bestanden slepen en neerzetten in Z:\Presentation (of welke stationsletter u ook hebt gebruikt). Merk op dat de presentatie in alfabetische (niet numerieke) volgorde is samengesteld, dus slide11.png komt na slide1.png en voor slide2.png. U kunt de dia's natuurlijk hernoemen voordat u ze naar de netwerkmap kopieert. Zorg er wel voor dat ze hun extensie behouden (bijv..png). Het script voor de diavoorstelling zoekt momenteel alleen naar bestanden met de volgende extensies:.png,.png,.gif,.gif,.jpg,-j.webp

Stap 10: Problemen oplossen

De meeste problemen kunnen worden opgelost met de oude oplossing "probeer het uit en weer aan te zetten".

Als je Raspberry Pi geen verbinding maakt, niet bijwerkt of over het algemeen vastloopt, probeer hem dan uit te schakelen.

Als uw Windows-machine het toegewezen netwerkstation verliest, probeer het dan uit te schakelen of voeg het station handmatig opnieuw toe.

Als je andere vragen/problemen hebt, plaats deze dan in de opmerkingen en ik zal deze stap bijwerken met veelvoorkomende problemen en hun oplossingen.

Stap 11: Conclusie en toekomstig werk

GEDAAN

Op dit punt kunt u uw Raspberry Pi opnieuw opstarten, via de menu's of met de aan / uit-knop op het netsnoer. Het leuke van deze opstelling is dat wanneer de Pi opstart (stroomuitval, crash, wat dan ook), deze opstart in de diavoorstellingsmodus, dus je kunt naar believen power-cyclen en het zou goed moeten herstellen. Als dit eenmaal is geïnstalleerd en werkt, kun je het vrijwel "instellen en vergeten", behalve de updates van de dia's. In ons geval werkt onze kerkbeheerder de dia's wekelijks bij en dit systeem werkt al ongeveer een jaar probleemloos.

Geef feedback! Ik sta open voor het oplossen van bugs of onnauwkeurigheden. Ik begrijp dat er veel verschillende manieren zijn om dingen te doen, dus ik ben niet enthousiast over het beantwoorden van vragen als "waarom heb je python gebruikt in plaats van {programmeertaal X}?" Of suggesties die functioneel hetzelfde zijn (zoals "sudo apt" alle pakketten tegelijk in plaats van één voor één). Functionele verbeteringen zijn echter altijd welkom! Ik probeer dit zo functioneel en nuttig mogelijk te maken, terwijl het ook gemakkelijk te installeren en te onderhouden is. Ik geniet vooral van feedback van degenen die hebben geprofiteerd van deze Instructable. Ik help graag als ik in staat ben.

Toekomstwerk

Ik begin aan een versie te werken waarmee videobestanden (met geluid) kunnen worden vermengd met de statische dia's. Ik denk dat ik vlc daarvoor kan gebruiken vanaf de opdrachtregel. Ik zal dit updaten als ik in staat ben om het werkend te krijgen. Voel je vrij om suggesties te doen!

Aanbevolen: