Innehållsförteckning:

Raspberry Pi Bulletin Board: 11 steg (med bilder)
Raspberry Pi Bulletin Board: 11 steg (med bilder)

Video: Raspberry Pi Bulletin Board: 11 steg (med bilder)

Video: Raspberry Pi Bulletin Board: 11 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Raspberry Pi Bulletin Board
Raspberry Pi Bulletin Board
Raspberry Pi Bulletin Board
Raspberry Pi Bulletin Board
Raspberry Pi Bulletin Board
Raspberry Pi Bulletin Board

Detta är ett projekt som jag arbetade med för min kyrka. Vi ville ha en elektronisk anslagstavla som skulle monteras i narthex/lobbyområdet och som skulle cykla genom statiska bilder med några sekunders mellanrum.

Detta var våra designmål:

  • Statiska bilder, ingen video eller ljud
  • Admin genererar bilder i Powerpoint (välkänt verktyg, ingen ny programvara att lära sig)
  • Admin kan dra och släppa ny presentation för att ersätta den gamla
  • Ingen molnbaserad lösning, eftersom anslagstavlan skulle finnas i vårt privata trådlösa nätverk
  • Inga månatliga licensavgifter eller egenutvecklad programvara, annat än vad vi redan hade (Windows, Office, Powerpoint)
  • 49 "skärm, i stående/vertikalt läge (även om liggande/horisontellt läge också är möjligt och beskrivs nedan)
  • Önskad kostnad: <$ 1000

Vi lyckades göra detta och kom in under budgeten. Jag hjälpte nyligen en annan närliggande kyrka att göra samma projekt, och den totala kostnaden (exklusive kostnaden för en elektriker för att få ström till rätt plats på väggen och arbetet med att montera) var mindre än $ 500.

På grund av de låga kostnaderna och i huvudsak noll löpande kostnader (bara el) skulle detta också passa bra med skolor, bibliotek, museer, ideella organisationer eller andra organisationer med begränsad budget.

Feedback är välkommen.

Steg 1: Utrustningslista

Utrustningslista
Utrustningslista
Utrustningslista
Utrustningslista
Utrustningslista
Utrustningslista

Här är en lista över utrustning vi använde. Kommentarer läggs till. Jag försöker länka till tillverkarens webbplats där det är möjligt, snarare än en återförsäljare.

  • TV/bildskärm. De flesta moderna TV eller skärmar kommer att göra, så länge de har CEC (se den här artikeln på Wikipedia för mer information om CEC: https://en.wikipedia.org/wiki/Consumer_Electronics_Control). De flesta bildskärmar är gjorda för att monteras antingen vertikalt/stående eller horisontellt/liggande. TV -apparater är utformade för att vara horisontella, så att montera dem vertikalt är lite svårare. Många TV-apparater är också asymmetriska topp-till-botten (dvs. underkanten är ofta större än toppen), så att montera den vertikalt kan se lite udda ut. Ändå är tv -apparater överlag billigare, så vi gick med en tv. Naturligtvis, om din föredragna orientering är landskap, spelar det ingen roll. Vi gick med den här: LG 49 "LED -TV.
  • TV -fäste: Det här var knepigt, eftersom vi köpte en TV och ville montera den vertikalt. Saker att tänka på är monteringsstilen och om den kommer att synas, särskilt om TV: n är monterad vertikalt. Fästet placeras på väggen i samma riktning som om du skulle montera TV: n horisontellt. Om du väljer att montera TV: n vertikalt måste du överväga om skruvmonteringshålen i TV -fästet kan passa de roterade monteringshålen i TV: n. Vissa TV -apparater placerar sina fästskruvar i ett fyrkantigt mönster, medan vissa är ett rektangulärt mönster. Tänk igenom detta och se till att montera fungerar på önskad plats innan du köper.
  • Raspberry Pi, fodral, kablar, kylfläns, fläkt, etc.: Jag rekommenderar att du får den senaste och bästa versionen. Vid den tiden vi byggde projektet var det Raspberry Pi 3 B+, men nu är Raspberry Pi 4 B ute. När det gäller fallet, nätsladd, kylflänsar, fläkt, bestämde vi att eftersom Raspberry Pi kommer att köras 24/7, ville vi ha ett fodral med en fläkt, om än en tyst. Och att ha en strömkabel med en inline strömbrytare gör det enkelt att återställa systemet utan att behöva dra ut kontakten. Den andra huvudskillnaden mellan Raspberry Pi 3 B+ och Raspberry Pi 4B är att 4 B har en mikro-HDMI-kontakt, vilket innebär att du behöver en adapter (den ingår i satsen nedan).

    • Om du går med Raspberry Pi 3 B+: Raspberry Pi 3 B+ Case Kit (inkluderar inte Raspberry Pi)
    • Om du går med Raspberry Pi 4 B: Raspberry Pi 4 B Case Kit (inkluderar inte Raspberry Pi)
  • HDMI -kabel: Allt är bra, så länge det stöder CEC. Observera att Raspberry Pi vanligtvis kommer att monteras på väggen bakom TV: n/bildskärmen eller eventuellt anslutas till själva TV: n/bildskärmen, så en kort 3 'kabel är förmodligen gott. För lång kabel och det kommer att visas. Fundera också över var HDMI-portarna finns på TV: n/monitorn och om du kan överväga en 90-graders kabelände (till exempel om HDMI-portarna är på ena sidan).
  • MicroSD -kort. Det här spelar ingen större roll heller. Vi valde 32 GB snarare än standard 16 GB, bara för att ha extra utrymme för ytterligare programvara, om vi ville, och för att ha en plats att lagra flera presentationer. Vi valde detta: SanDisk Ultra PLUS 32GB MicroSD -kort. Observera att det är lättare om du köper ett MicroSD -kort med NOOBS redan installerat, som det här: SD -kort med NOOBS. Jag gjorde inte det, men du kan spara ett steg om du gör det. Se här för mer information: NOOBS

En anteckning om CEC: CEC (Consumer Electronics Control) låter vissa komponenter styra varandra via HDMI -kabeln. Till exempel kan en DVD -spelare slå på/av den anslutna TV: n via HDMI -kabeln om båda stöder CEC. Detta är användbart i vårt fall, eftersom Raspberry Pi kan slå på/stänga av TV: n/bildskärmen som den vill. Till exempel, i en kyrkomiljö, skulle vi vilja ha monitorn påslagen endast under timmar när kyrkan är öppen, och det varierar beroende på veckodag. CEC tillåter Pi att slå på och stänga av TV: n i ett godtyckligt komplext tidsschema.

Steg 2: Montera Pi -fodralet

Montera Pi -fodralet
Montera Pi -fodralet
Montera Pi -fodralet
Montera Pi -fodralet
Montera Pi -fodralet
Montera Pi -fodralet

Monteringen är ganska enkel. Fäst kylflänsarna på chipsen av motsvarande storlek på Raspberry Pi, montera fodralet lager för lager. Glöm inte att ta bort de tunna plastskyddsarken från varje lager.

Steg 3: Installera Raspbian

Installera Raspbian
Installera Raspbian

Det finns en utmärkt guide på Raspberry Pi -webbplatsen. Följ dessa instruktioner för att konfigurera det.

Konfigurera din Raspberry Pi

Jag använde Raspbian Lite, eftersom det inte har extra applikationer som du inte behöver för detta projekt.

Steg 4: Lägg till standard och anpassad programvara

När NOOBS har installerat Raspbian första gången du loggar in kommer du att bli uppmanad till saker som språk, tidszon, etc. Det kommer också att fråga om WiFi -nätverk och lösenordsinformation, såvida du inte har en trådbunden anslutning. Slutligen kommer den att ladda ner och installera alla Raspbian -uppdateringar. Det hjälper om du har samma internetuppkoppling som i den slutliga installationen, men det behöver inte vara det. Det vill säga, du kan göra det här steget hemma innan du sätter upp på den slutliga platsen. Kom bara ihåg att konfigurera den nya internetanslutningen innan den sista omstarten i det sista steget.

Öppna ett terminalfönster (klicka på den svarta rektangulära ikonen nära skärmens övre vänstra hörn).

Först dubbelkollar vi för att se om det finns några ytterligare Raspbian-uppdateringar. Skriv följande rader, en i taget

sudo apt uppdatering

sudo apt uppgradering

(säg "Y" om den frågar om du vill installera uppdateringar).

Därefter installerar vi Samba, som tillåter mappdelning med Windows -maskinen (er) i nätverket.

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

Därefter installerar vi fbi. fbi är unix -verktyget som visar grafik på en skärm utan en fönsterhanterare.

sudo apt installera fbi

Därefter installerar vi inotify-verktyg. inotify-tools låter bildspelet titta på den delade mappen för eventuella ändringar.

sudo apt installera inotify-verktyg

Därefter installerar vi cec-utils. cec-utils gör att Raspberry Pi kan slå på och stänga av TV: n via HDMI-kabeln.

sudo apt installera cec-utils

Därefter måste du ladda ner de små verktyg som jag skrev för att spela bildspelet.

git -klon

Detta hämtar koden och lägger den i en katalog som heter raspi_slideshow.

Nu är all programvara tillgänglig på Raspberry Pi. Nästa steg går igenom konfigurationen.

Steg 5: Konfigurera delad mapp

Som standard söker bildspelskoden efter en katalog (mapp) /delad /presentation.

Vi måste skapa den katalogen. Eftersom det är på rotnivå behöver vi rotbehörigheter, så en sudo är i ordning. Du kan behöva skriva lösenordet (standard är hallon) när du gör det här kommandot:

sudo mkdir -p /shared /Presentation

Därefter måste vi göra detta läsbart och skrivbart för alla på denna Pi. Skriv följande kommando:

sudo chmod a+rwx /shared /Presentation

Detta gör den synlig endast på denna Pi. Därefter måste vi dela den här mappen med världen (faktiskt bara andra maskiner på samma nätverk). Det är därför vi rekommenderar detta på ett privat (lösenordsskyddat) Wi-Fi-nätverk eller ett trådbundet lokalt nätverk.

När vi installerade samba i föregående steg skapade det en standardfil /etc/samba/smb.conf

Vi måste lägga till en massa rader i slutet av filen. Raderna finns i filen raspi_slideshow/add_to_smb.conf

Det enklaste sättet att göra detta är följande:

sudo bash

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

Detta sammanfogar i princip filen add_to_smb.conf till slutet av /etc/samba/smb.conf

Du kan välja att göra det via en redaktör som nano om du föredrar det, men det är en hel del att skriva.

I grund och botten delar den /delade katalogen som en katalog som är läsbar och skrivbar för alla på det lokala nätverket. Jag kommer inte att gå igenom hur man skyddar det här, men om du vill att det ska skyddas (kräver ett lösenord för att redigera) kan du läsa på Samba och ändra inställningarna i enlighet därmed.

Steg 6: Konfigurera monitorns på/av -inställningar

Vi använder cron för att slå på och stänga av TV: n/monitorn vid schemalagda tider. Cron är ett Linux -verktyg som kör uppgifter på schemalagda tider. Om du vill att din TV/bildskärm ska köras dygnet runt eller om du vill slå på och av den manuellt kan du hoppa över det här steget.

Kopiera exemplet crontab -fil från katalogen raspi_slideshow till hemkatalogen.

cp raspi_slideshow/crontab_example.pi crontab.pi

Filen crontab_example.pi är ett exempel som visar hur den här typen av filer fungerar. Det finns gott om dokumentation på Wikipedia och på andra ställen:

Nu redigerar vi det. Det hjälper att ha ditt schema redan räknat ut. Exempel på schemat är

  • Söndag: kl. 07.00, avstängt kl. 21.00
  • Onsdag: kl. 08.00, ledigt kl. 21.00
  • Lördag: kl. 07.00, ledigt kl. 21.00
  • Övriga dagar: kl. 08.00, avstängt kl. 17.00

Jag gillar nano eftersom det är installerat med Raspbian och lätt att använda. Du kan använda vi eller någon annan redaktör.

nano crontab.pi

Redigera filen för att ange på/av -tider för varje dag. Använd piltangenterna för att flytta runt. Backspace för att ta bort, skriv för att infoga. När du är klar, Control-O för att spara (du måste trycka på "enter" för att bekräfta filnamnet) och Control-X för att avsluta nano.

När du har din cron -fil som du vill ha den, berätta för Raspbian att du vill köra den:

crontab crontab.pi

Om du någonsin vill ändra ditt schema kan du redigera $ HOME/crontab.pi och utföra kommandot crontab omedelbart ovan. Det kommer att ersätta ditt gamla schema med det nya.

Steg 7: Konfigurera skärminställningar

Konfigurera skärminställningar
Konfigurera skärminställningar

Vi är nästan klara! Vi måste konfigurera bildskärmsinställningarna. fbi är verktyget som vi använder för att visa bilderna. Den läser dess inställningar från filen.fbirc i hemkatalogen.

Kontrollera först att vi finns i hemkatalogen.

cd $ HEM

Kopiera sedan filen från katalogen raspi_slideshow till hemmet

cp raspi_slideshow/.fbirc.

Du borde inte behöva redigera filen. Men om du väljer är de tre inställningarna som är av intresse:

slumpmässigt = falskt

blend-msek = 500

timeout = 8

Den slumpmässiga raden avgör om fbi slumpmässigt slider ordningen. true betyder att det slumpmässigt slider, falskt betyder att det inte gör det. Eftersom vi ville ha lite kontroll över i vilken ordning bilderna är i, ställer vi in det till falskt.

Blandningen-msek-raden säger hur många millisekunder (1000 = 1 sekund) varje övergång varar. Ett värde på 0 betyder att bilderna ändras direkt från en till nästa. Vår inställning på 500 innebär att bilderna bleknar i varandra under en period av 0,5 sekunder.

Timeout är den tid (i sekunder) som varje bild visas innan den övergår till nästa. Du kan justera detta om du vill att bilderna ska vara längre eller kortare. Kom bara ihåg att detta gäller alla bilder lika. Det finns inget sätt att få vissa bilder att visas längre och andra kortare.

Rotera displayen

Om du har din TV/bildskärm monterad vertikalt, som vi gör, måste du rotera skärmen 90 grader eller 270 grader. Om du har din TV/bildskärm monterad horisontellt kan du hoppa över resten av detta steg.

Använd nano igen. Den här gången måste du köra som root, så du måste sudo, vilket kan kräva att du anger ditt lösenord igen (standard är hallon)

sudo nano /boot/config.txt

Använd nedåtpilen för att gå ända till botten av den här filen. Lägg till följande rad i slutet av filen:

display_rotate = 1

Detta kommer att rotera skärmen 90 grader. Om din bildskärm efter montering är upp och ner, ändra 1 till 3.

I princip display_rotate = 0 (ingen rotation), 1 (90 grader), 2 (180 grader), 3 (270 grader)

På bilden ovan hade vi ställt in display_rotate = 1 och var tvungna att gå tillbaka och ändra den till display_rotate = 3. Mycket enklare än att montera om TV: n!

Steg 8: Ändra lösenord och konfigurera automatisk körning

Ändra lösenord och konfigurera automatisk körning
Ändra lösenord och konfigurera automatisk körning
Ändra lösenord och konfigurera automatisk körning
Ändra lösenord och konfigurera automatisk körning

Vid det här laget är vi nästan klara!

Klicka på hallonmenyn uppe till vänster, välj Inställningar-> Raspberry Pi-konfiguration

Det öppnar en dialogruta. Klicka på "Ändra lösenord …" och ändra det till något du kommer ihåg!

Du kan välja att ändra namnet på systemet (fältet värdnamn).

Se till att du klickar på Boot "To CLI"

Ställ in automatisk inloggning ("Logga in som användare 'pi'")

Nu måste du ställa in bildspelet för att köras när du startar. Det enklaste sättet är att lägga till en rad i din.bashrc -fil. Starta vår nanoredigerare:

nano.bashrc

Nedåtpilen till slutet av filen och lägg till följande rad:

python3 raspi_slideshow/play_slideshow.py

Dessa inställningar innebär att:

  • När den startas om kommer Raspberry Pi automatiskt att logga in som användar -pi
  • Det startar inte en fönsterhanterare, utan körs bara på skärmen ("Starta till CLI")
  • Det kommer att starta bash -skalet, som läser.bashrc -filen, och den sista raden i den filen säger att köra bildspelet.

Efter detta startar INTE omstart av fönsterhanteraren och bildspelet kommer automatiskt att köras. Du kan stoppa bildspelet genom att slå Control-C under bildspelet. Detta kommer att studsa dig tillbaka till bash -prompten ($).

Om du vill starta fönsterhanteraren från denna punkt (för felsökning eller enklare manipulation av inställningar) kan du göra det genom att skriva "startx" på kommandoraden.

Steg 9: Använd (Konfigurera Windows -maskinen)

I själva verket ansluter vår Raspberry Pi till vårt privata trådlösa nätverk vid start. Den delar sin /delade katalog (och allt nedan) till nätverket. För att kunna se den här mappen från en Windows -maskin, se till att du är i samma nätverk.

Jag antar att du kommer att ansluta till detta från en Windows -dator på ett kontor. För antingen Windows 7 eller Windows 10, öppna en File Explorer för att visa filerna/mapparna på din dator. Högerklicka till vänster där det står "Dator" eller "Den här datorn" och välj sedan "Karta nätverksenhet …"

Det kommer att ta upp en dialogruta. Välj vilken bokstav, t.ex. "Z:" du vill mappa din enhet till. Skriv sedan i mappfältet:

{name-of-your-Pi-computer} delad

där {name-of-your-Pi-computer} är namnet du gav din Raspberry pi tillbaka i föregående steg (se föregående bild med dialogrutan).

Var noga med att klicka på "Återanslut vid inloggning". Det är möjligt att om Raspberry Pi stängs av när Windows -datorn startar, kan detta steg behöva upprepas (eller om Windows -datorn startas om) för att kunna se den delade mappen.

Om du väljer att lösenordsskydda din mapp kan du lägga till autentiseringsuppgifter genom att välja "Anslut med olika referenser" och ange användarnamn/lösenord för Raspberry Pi.

Nu, när du vill att diabilder ska gå in i ditt bildspel, kopierar du enskilda bildbilder (*) till presentationsmappen.

Skriptet övervakar och visar ENDAST innehållet i presentationsmappen, och ingenting på nivån över det ( delat). Således använder vi ibland tricket med att placera vanliga bilder på den översta nivån och sedan dra dem efter behov till eller ut ur presentationsmappen.

Kom ihåg att när något i presentationsmappen ändras (filer läggs till, raderas eller ändras) väntar bildspelskriptet i två minuter (120 sekunder, konfigurerbart i play_slideshow.py, sök efter väntetid) innan de nya bilderna återställs och visas. Detta ger personen tid att göra alla nödvändiga ändringar utan att återställa efter varje ny fil har lagts till.

Enskilda bildbilder är jpeg-, gif- eller png -filer som representerar en enda bild. Det enklaste sättet att generera dessa är att använda Microsoft PowerPoint eller ett liknande program. Du kan generera så många bilder som du vill i Microsoft PowerPoint och spara det som en PowerPoint -presentation. Klicka sedan på Arkiv-> Export-> Ändra filtyp och spara som antingen PNG eller JPEG. Detta kommer att mata ut bilderna som enskilda filer, t.ex. slide1.png, slide2.png, etc. Du kan sedan dra och släppa enskilda filer till Z: / Presentation (eller vilken enhetsbokstav du använde). Observera att presentationen är sammanställd i alfabetisk (inte numerisk) ordning, så slide11.png kommer efter slide1.png och före slide2.png. Du kan naturligtvis byta namn på bilderna innan du kopierar dem till nätverksmappen. Se bara till att de behåller sin förlängning (t.ex..png). Bildskriptet letar för närvarande bara efter filer med följande tillägg:.png,.png,.gif,.gif,.jpg,-j.webp

Steg 10: Felsökning

De flesta problemen kan lösas genom att den gamla "försök stänga av och på igen" -lösningen.

Om din Raspberry Pi inte ansluter, inte uppdateras eller verkar vara allmänt fast, prova att strömcykla den.

Om din Windows -maskin förlorar den mappade nätverksenheten kan du försöka strömma den eller lägga till enheten manuellt igen.

Om du har andra frågor/problem, vänligen posta i kommentarerna så uppdaterar jag detta steg med vanliga problem och deras lösningar.

Steg 11: Slutsats och framtida arbete

GJORT

Vid denna tidpunkt kan du starta om din Raspberry Pi, antingen genom menyerna eller med strömbrytaren på strömsladden. Det fina med den här inställningen är att när Pi startar (strömavbrott, krasch, vad som helst), startar den i bildspelläge, så att du kan strömcykla efter behag och det ska återhämta sig bra. När det här är installerat och fungerar kan du i stort sett "ställa in det och glömma det", förutom uppdateringarna till bilderna. I vårt fall uppdaterar vår kyrkans administratör bilderna varje vecka, och detta system har fungerat felfritt i ungefär ett år.

Ge gärna feedback! Jag är mottaglig för att åtgärda buggar eller felaktigheter. Jag förstår att det finns många olika sätt att göra saker, så jag är inte upphetsad över att svara på frågor som "varför använde du python istället för {programmeringsspråk X}?" Eller förslag som är funktionellt desamma (som "sudo apt" alla paket på en gång istället för ett i taget). Funktionella förbättringar är dock alltid välkomna! Jag försöker göra detta så funktionellt och användbart som möjligt samtidigt som det är enkelt att installera och lätt att underhålla. Jag tycker särskilt om feedback från dem som har dragit nytta av denna instruerbara. Jag hjälper gärna till om jag kan.

Framtida arbete

Jag börjar arbeta med en version som gör att videofiler (med ljud) kan blandas med de statiska bilderna. Jag tror att jag kan använda vlc för det från kommandoraden. Jag kommer att uppdatera detta om jag kan få det att fungera. Kom gärna med förslag!

Rekommenderad: