Indholdsfortegnelse:

Raspberry Pi Bulletin Board: 11 trin (med billeder)
Raspberry Pi Bulletin Board: 11 trin (med billeder)

Video: Raspberry Pi Bulletin Board: 11 trin (med billeder)

Video: Raspberry Pi Bulletin Board: 11 trin (med billeder)
Video: Forgotten Rail Yard Under Chicago's Largest Historic Building - Merchandise Mart 2024, Juli
Anonim
Raspberry Pi opslagstavle
Raspberry Pi opslagstavle
Raspberry Pi opslagstavle
Raspberry Pi opslagstavle
Raspberry Pi opslagstavle
Raspberry Pi opslagstavle

Dette er et projekt, jeg arbejdede på for min kirke. Vi ønskede en elektronisk opslagstavle, der ville blive monteret i narthex/lobbyområdet og ville cykle gennem statiske dias hvert par sekunder.

Dette var vores designmål:

  • Statiske dias, ingen video eller lyd
  • Admin genererer dias i Powerpoint (velkendt værktøj, ingen ny software at lære)
  • Administrator kan trække og slippe ny præsentation for at erstatte den gamle
  • Ingen skybaseret løsning, da opslagstavlen ville være på vores private trådløse netværk
  • Ingen månedlige licensgebyrer eller proprietær software, bortset fra det, vi allerede havde (Windows, Office, Powerpoint)
  • 49 "skærm, i portræt/lodret tilstand (selvom liggende/vandret tilstand også er mulig og beskrevet nedenfor)
  • Ønsket pris: <$ 1000

Det lykkedes os at gøre dette og kom under budget. Jeg hjalp for nylig en anden nærliggende kirke med at lave det samme projekt, og de samlede omkostninger (ikke inklusive omkostninger til en elektriker til at bringe strøm til det rigtige sted på væggen og arbejdskraft involveret i montering) var mindre end $ 500.

På grund af de lave omkostninger og stort set nul løbende omkostninger (bare elektricitet) ville dette også passe godt til skoler, biblioteker, museer, nonprofitorganisationer eller andre organisationer med et begrænset budget.

Feedback modtages gerne.

Trin 1: Udstyrsliste

Udstyrsliste
Udstyrsliste
Udstyrsliste
Udstyrsliste
Udstyrsliste
Udstyrsliste

Her er en liste over udstyr, vi brugte. Kommentarer tilføjes. Jeg forsøger at linke til producentens websted, hvor det er muligt, snarere end en forhandler.

  • TV/skærm. Næsten ethvert moderne tv eller skærm vil gøre det, så længe det har CEC (se denne artikel på Wikipedia for mere information om CEC: https://en.wikipedia.org/wiki/Consumer_Electronics_Control). De fleste skærme er designet til at blive monteret i enten lodret/stående eller i vandret/liggende tilstand. Tv er designet til at være vandrette, så det er lidt vanskeligere at montere dem lodret. Mange fjernsyn er også asymmetriske top-til-bund (dvs. nederste kant er ofte større end toppen), så montering af det lodret kan se lidt underligt ud. Stadigvis er fjernsyn generelt billigere, så vi gik med et fjernsyn. Selvfølgelig, hvis din foretrukne orientering er landskab, er det ligegyldigt. Vi gik med denne: LG 49 "LED -tv.
  • TV -beslag: Dette var vanskeligt, fordi vi købte et tv og ville montere det lodret. Ting at overveje er stilen på montering, og om den vil være synlig, især hvis fjernsynet er monteret lodret. Beslaget er placeret på væggen i samme retning, som hvis du monterede tv'et vandret. Hvis du vælger at montere tv'et lodret, skal du overveje, om skruemonteringshullerne i tv -holderen kan rumme de roterede monteringshuller i tv'et. Nogle fjernsyn placerer deres monteringsskruer i et firkantet mønster, mens nogle er et rektangulært mønster. Tænk over dette, og sørg for at montere fungerer på det ønskede sted, før du køber.
  • Hindbær Pi, kuffert, kabler, køleplade, blæser osv.: Jeg anbefaler, at du får den nyeste og bedste version. På det tidspunkt, vi byggede projektet, var det Raspberry Pi 3 B+, men nu er Raspberry Pi 4 B ude. For så vidt angår tilfælde, netledning, kølelegemer, ventilator, besluttede vi, at da Raspberry Pi vil køre 24/7, ville vi have en kuffert med en blæser, omend en stille. Og at have en netledning med en inline afbryder gør det let at nulstille systemet uden at skulle trække i stikket. Den anden hovedforskel mellem Raspberry Pi 3 B+ og Raspberry Pi 4B er, at 4 B har et mikro-HDMI-stik, hvilket betyder, at du har brug for en adapter (den er inkluderet i sættet herunder).

    • Hvis du går med Raspberry Pi 3 B+: Raspberry Pi 3 B+ Case Kit (inkluderer ikke Raspberry Pi)
    • Hvis du går med Raspberry Pi 4 B: Raspberry Pi 4 B Case Kit (inkluderer ikke Raspberry Pi)
  • HDMI -kabel: Alt er fint, så længe det understøtter CEC. Bemærk, at Raspberry Pi typisk vil blive monteret på væggen bag tv'et/skærmen eller muligvis fastgjort til selve tv'et/skærmen, så et kort 3 'kabel er sandsynligvis rigeligt. For langt et kabel, og det vil vise. Overvej også, hvor HDMI-portene er på tv'et/skærmen, og om du måske overvejer en 90-graders kabelende (f.eks. Hvis HDMI-portene er på den ene side).
  • MicroSD -kort. Det betyder heller ikke meget. Vi valgte 32 GB frem for standard 16 GB, bare for at have ekstra plads til ekstra software, hvis vi ville, og for at have et sted at gemme flere præsentationer. Vi valgte denne: SanDisk Ultra PLUS 32GB MicroSD -kort. Bemærk, at det er lettere, hvis du køber et MicroSD -kort med NOOBS allerede installeret, som dette: SD -kort med NOOBS. Det gjorde jeg ikke, men du kan gemme et trin, hvis du gør det. Se her for mere information: NOOBS

En note om CEC: CEC (Consumer Electronics Control) gør det muligt for nogle komponenter at styre hinanden via HDMI -kablet. For eksempel kan en dvd -afspiller tænde/slukke for det tilsluttede tv via HDMI -kablet, hvis begge understøtter CEC. Dette er nyttigt i vores tilfælde, da Raspberry Pi kan tænde/slukke for fjernsynet/skærmen, som det ønsker. For eksempel i kirkeindstillinger ville vi gerne have skærmen kun tændt i de timer, hvor kirken er åben, og det varierer fra ugedag. CEC giver Pi mulighed for at tænde og slukke for fjernsynet i en vilkårligt kompleks tidsplan.

Trin 2: Saml Pi -kassen

Saml Pi -kassen
Saml Pi -kassen
Saml Pi -kassen
Saml Pi -kassen
Saml Pi -kassen
Saml Pi -kassen

Montering er ret ligetil. Sæt kølelegemerne på chipsene af tilsvarende størrelse på Raspberry Pi, saml sagen lag for lag. Glem ikke at fjerne de tynde plastikplader fra hvert lag.

Trin 3: Installer Raspbian

Installer Raspbian
Installer Raspbian

Der er en glimrende vejledning på Raspberry Pi -webstedet. Følg disse instruktioner for at konfigurere det.

Opsætning af din Raspberry Pi

Jeg brugte Raspbian Lite, da den ikke har ekstra applikationer, som du ikke har brug for til dette projekt.

Trin 4: Tilføj standard- og brugerdefineret software

Når NOOBS har installeret Raspbian, bliver du første gang logget ind, bedt om ting som sprog, tidszone osv. Det vil også bede om oplysninger om WiFi -netværk og adgangskode, medmindre du er på en kabelforbundet forbindelse. Endelig vil den downloade og installere eventuelle Raspbian -opdateringer. Det hjælper, hvis du er på den samme internetforbindelse som i den sidste opsætning, men det behøver ikke at være det. Det vil sige, at du kan gøre dette trin derhjemme, før du konfigurerer det endelige sted. Bare husk at konfigurere den nye internetforbindelse inden den sidste genstart i det sidste trin.

Åbn et terminalvindue (klik på det sorte rektangulære ikon nær øverste venstre hjørne af skærmen).

Først dobbelttjekker vi for at se, om der er yderligere Raspbian-opdateringer. Indtast følgende linjer, en ad gangen

sudo apt opdatering

sudo apt opgradering

(sig "Y", hvis den spørger, om du vil installere opdateringer).

Dernæst installerer vi Samba, som tillader mappedeling med Windows -maskinen (e) på netværket.

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

Dernæst installerer vi fbi. fbi er unix -værktøjet, der viser grafik på en skærm, der ikke kører en vindueshåndtering.

sudo apt installere fbi

Dernæst installerer vi inotify-værktøjer. inotify-tools tillader diasshowet at se den delte mappe for eventuelle ændringer.

sudo apt installere inotify-værktøjer

Dernæst installerer vi cec-utils. cec-utils gør det muligt for Raspberry Pi at tænde og slukke for fjernsynet via HDMI-kablet.

sudo apt installere cec-utils

Dernæst skal du downloade de små hjælpeprogrammer, jeg skrev for at afspille diasshowet.

git -klon

Dette vil hente koden og sætte den i et bibliotek kaldet raspi_slideshow.

Nu er al softwaren tilgængelig på Raspberry Pi. De næste trin går gennem konfigurationen.

Trin 5: Konfigurer delt mappe

Som standard søger diasshowkoden efter et bibliotek (mappe) /delt /præsentation.

Vi skal oprette det bibliotek. Da det er på rodniveau, har vi brug for rodtilladelser, så en sudo er i orden. Du skal muligvis indtaste adgangskoden (standard er hindbær), når du udfører denne kommando:

sudo mkdir -p /shared /Præsentation

Dernæst skal vi gøre dette læsbart og skrivbart for alle på denne Pi. Indtast følgende kommando:

sudo chmod a+rwx /shared /Præsentation

Dette gør det kun synligt på denne Pi. Dernæst skal vi dele denne mappe med verden (faktisk kun andre maskiner på det samme netværk). Derfor anbefaler vi, at dette er på et privat (adgangskodebeskyttet) Wi-Fi-netværk eller et kablet lokalt netværk.

Da vi installerede samba i det foregående trin, oprettede det en standardfil /etc/samba/smb.conf

Vi skal tilføje en masse linjer til slutningen af den fil. Linjerne er i filen raspi_slideshow/add_to_smb.conf

Den nemmeste måde at gøre dette på er følgende:

sudo bash

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

Dette sammenkæder grundlæggende filen add_to_smb.conf til slutningen af /etc/samba/smb.conf

Du kan vælge at gøre det via en editor som nano, hvis du foretrækker det, men det er en god del at skrive.

Grundlæggende deler det /delte biblioteket som et bibliotek, der kan læses og skrives af alle på det lokale netværk. Jeg vil ikke gennemgå, hvordan du beskytter det her, men hvis du vil have det beskyttet (for at kræve et kodeord for at redigere), kan du læse op på Samba og ændre indstillingerne i overensstemmelse hermed.

Trin 6: Konfigurer Monitor On/off -indstillinger

Vi bruger cron til at tænde og slukke for fjernsynet/skærmen på planlagte tidspunkter. Cron er et linux -værktøj, der kører opgaver på planlagte tidspunkter. Hvis du vil have dit tv/skærm til at køre 24/7, eller hvis du vil tænde og slukke det manuelt, kan du springe dette trin over.

Kopier eksemplet crontab -fil fra mappen raspi_slideshow til hjemmekataloget.

cp raspi_slideshow/crontab_example.pi crontab.pi

Filen crontab_example.pi er et eksempel, der viser, hvordan denne filtype fungerer. Der er masser af dokumentation i Wikipedia og andre steder:

Nu redigerer vi det. Det hjælper at have din tidsplan allerede fundet ud af. Eksempelplanen er

  • Søndag: kl. 7.00, slukket kl. 21.00
  • Onsdag: kl. 8.00, slukket kl. 21.00
  • Lørdag: kl. 7.00, slukket kl. 21.00
  • Andre dage: tændt kl. 8, slukket kl. 17.00

Jeg kan godt lide nano, da den er installeret med Raspbian og let at bruge. Du kan bruge vi eller enhver anden editor.

nano crontab.pi

Rediger filen for at angive til/fra -tider for hver dag. Brug piletasterne til at flytte rundt. Tilbage for at slette, skriv for at indsætte. Når du er færdig, skal Control-O gemme (du skal trykke "enter" for at bekræfte filnavnet) og Control-X for at afslutte nano.

Når du har din cron -fil, som du vil have den, skal du fortælle Raspbian, at du vil udføre den:

crontab crontab.pi

Hvis du nogensinde vil ændre din tidsplan, kan du redigere $ HOME/crontab.pi og genudføre crontab-kommandoen umiddelbart ovenfor. Det vil erstatte din gamle plan med den nye.

Trin 7: Konfigurer skærmindstillinger

Konfigurer skærmindstillinger
Konfigurer skærmindstillinger

Vi er næsten færdige! Vi skal konfigurere skærmindstillingerne. fbi er det værktøj, vi bruger til at vise diasene. Den læser dens indstillinger fra filen.fbirc i hjemmemappen.

Sørg først for, at vi er i hjemmemappen.

cd $ HJEM

Kopier derefter filen fra biblioteket raspi_slideshow til hjemmet

cp raspi_slideshow/.fbirc.

Du behøver ikke at redigere filen. Men hvis du vælger, er de tre indstillinger, der er interessante:

tilfældig = falsk

blend-msek = 500

timeout = 8

Den tilfældige linje bestemmer, om fbi randomiserer diasrækkefølgen. true betyder, at det randomiserer diasene, falsk betyder, at det ikke gør det. Da vi ville have lidt kontrol over i hvilken rækkefølge diasene er, satte vi det til falsk.

Blandingen-msek-linjen siger, hvor mange millisekunder (1000 = 1 sekund), hver overgang varer. En værdi på 0 betyder, at diasene skifter øjeblikkeligt fra det ene til det næste. Vores indstilling på 500 betyder, at diasene falmer ind i hinanden i løbet af en periode på 0,5 sekunder.

Timeout er den tid (i sekunder), som hvert dias vises, før det går over til det næste. Du kan justere dette, hvis du vil have dias til at være længere eller kortere. Husk bare, at dette gælder alle dias lige meget. Der er ingen måde at få nogle dias til at se længere ud og andre kortere.

Roter displayet

Hvis du har dit tv/skærm monteret lodret, som vi gør, skal du dreje skærmen 90 grader eller 270 grader. Hvis du har dit tv/skærm monteret vandret, kan du springe resten af dette trin over.

Brug nano igen. Denne gang skal du køre som root, så du skal sudo, hvilket kan kræve, at du indtaster din adgangskode igen (standard er hindbær)

sudo nano /boot/config.txt

Brug pil ned til at gå helt til bunden af denne fil. Tilføj følgende linje til slutningen af filen:

display_rotate = 1

Dette vil dreje skærmen 90 grader. Hvis skærmen er vendt på hovedet efter montering, skal du ændre 1 til 3.

Grundlæggende display_rotate = 0 (ingen rotation), 1 (90 grader), 2 (180 grader), 3 (270 grader)

På billedet ovenfor havde vi indstillet display_rotate = 1 og måtte gå tilbage og ændre det til display_rotate = 3. Meget lettere end at montere fjernsynet igen!

Trin 8: Skift adgangskode, og konfigurer automatisk kørsel

Skift adgangskode, og konfigurer automatisk kørsel
Skift adgangskode, og konfigurer automatisk kørsel
Skift adgangskode, og konfigurer automatisk kørsel
Skift adgangskode, og konfigurer automatisk kørsel

På dette tidspunkt er vi næsten færdige!

Klik på hindbærmenuen øverst til venstre, vælg Preferences-> Raspberry Pi Configuration

Det åbner en dialogboks. Klik på "Skift adgangskode …", og skift det til noget, du vil huske!

Du kan vælge at ændre systemets navn (feltet Værtsnavn).

Sørg for at klikke på Boot "To CLI"

Indstil automatisk login ("Log ind som bruger 'pi'")

Nu skal du konfigurere diasshowet til at køre, når du starter. Den nemmeste måde er at tilføje en linje til din.bashrc -fil. Tænd for vores nano -editor:

nano.bashrc

Pil ned til slutningen af filen, og tilføj følgende linje:

python3 raspi_slideshow/play_slideshow.py

Disse indstillinger betyder, at:

  • Når den genstartes, logger Raspberry Pi automatisk på som bruger -pi
  • Det starter ikke en vindueshåndtering, men kører bare på skærmen ("Boot to CLI")
  • Det starter bash -skallen, der læser.bashrc -filen, og den sidste linje i den fil siger at køre diasshowet.

Efter dette starter genstarter IKKE vinduesmanageren op og kører automatisk diasshowet. Du kan stoppe diasshowet ved at trykke på Control-C under diasshowet. Dette springer dig tilbage til bash -prompten ($).

Hvis du vil starte vindueshåndteringen fra dette tidspunkt (til fejlfinding eller lettere manipulation af indstillinger), kan du gøre det ved at skrive "startx" på kommandolinjen.

Trin 9: Brug (Opsætning af Windows -maskinen)

Ved faktisk brug opretter vores Raspberry Pi forbindelse til vores private trådløse netværk ved opstart. Det deler sin /delte bibliotek (og alt derunder) til netværket. For at kunne se denne mappe fra en Windows -maskine, skal du sørge for, at du er på det samme netværk.

Jeg formoder, at du vil oprette forbindelse til dette fra en Windows -computer på et kontor. For enten Windows 7 eller Windows 10 skal du åbne en Stifinder for at se filer/mapper på din computer. Højreklik til venstre, hvor der står "Computer" eller "Denne computer", og vælg derefter "Kort netværksdrev …"

Det åbner en dialogboks. Vælg hvilket bogstav, f.eks. "Z:" du vil kortlægge dit drev til. Skriv derefter i feltet Mappe:

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

hvor {name-of-your-Pi-computer} er det navn, du gav din Raspberry pi tilbage i det forrige trin (se forrige billede med dialogboksen).

Sørg for at klikke på "Tilslut igen ved login". Det er muligt, at hvis Raspberry Pi slukkes, når Windows -computeren starter, skal dette trin muligvis gentages (eller Windows -computeren genstartes) for at se den delte mappe.

Hvis du vælger at beskytte din mappe med adgangskode, kan du tilføje legitimationsoplysninger ved at vælge "Opret forbindelse med forskellige legitimationsoplysninger" og indtaste brugernavn/adgangskode til Raspberry Pi.

Når du vil have dias til at gå ind i dit diasshow, skal du kopiere individuelle diasbilleder (*) til mappen Præsentation.

Scriptet overvåger og viser KUN indholdet i præsentationsmappen, og intet på niveauet over det (delt). Således bruger vi undertiden tricket med at sætte almindeligt brugte dias i det øverste niveau og derefter trække dem efter behov ind i eller ud af mappen Præsentation.

Husk, at når noget i præsentationsmappen ændres (filer tilføjes, slettes eller ændres) venter diasshow -scriptet 2 minutter (120 sekunder, konfigurerbart i play_slideshow.py, søg efter ventetid), før de nulstilles og vises. Dette giver personen tid til at foretage alle nødvendige ændringer uden at nulstille efter hver ny fil er tilføjet.

Individuelle diasbilleder er jpeg-, gif- eller png -filer, der repræsenterer et enkelt dias. Den nemmeste måde at generere disse på er ved hjælp af Microsoft PowerPoint eller et lignende program. Du kan generere så mange dias som du vil i Microsoft PowerPoint og gemme det som en PowerPoint -præsentation. Klik derefter på File-> Export-> Change File Type og gem som enten PNG eller JPEG. Dette udsender diasene som individuelle filer, f.eks. slide1.png, slide2.png osv. Du kan derefter trække og slippe individuelle filer til Z: / Presentation (eller hvilket drevbogstav du har brugt). Bemærk, at præsentationen er sat sammen i alfabetisk (ikke numerisk) rækkefølge, så slide11.png kommer efter slide1.png og før slide2.png. Du kan naturligvis omdøbe diasene, før du kopierer dem til netværksmappen. Bare sørg for at de bevarer deres udvidelse (f.eks.. Png). Diasshow -scriptet leder i øjeblikket kun efter filer med følgende udvidelser:.png,.png,.gif,.gif,.jpg,-j.webp

Trin 10: Fejlfinding

De fleste problemer kan løses ved den gamle "prøv at slukke og tænde den igen" løsning.

Hvis din Raspberry Pi ikke opretter forbindelse, ikke opdaterer eller generelt ser ud til at sidde fast, kan du prøve at strømcykle den.

Hvis din Windows -maskine mister det kortlagte netværksdrev, kan du prøve at tænde for strømmen eller tilføje drevet manuelt igen.

Hvis du har andre spørgsmål/problemer, kan du skrive i kommentarerne, og jeg vil opdatere dette trin med almindelige problemer og deres løsninger.

Trin 11: Konklusion og fremtidigt arbejde

FÆRDIG

På dette tidspunkt kan du genstarte din Raspberry Pi, enten gennem menuerne eller med tænd / sluk -knappen på netledningen. Det gode ved denne opsætning er, at når Pi starter (strømsvigt, nedbrud, uanset hvad), starter den i diasshow-tilstand, så du kan strømcykle efter eget ønske, og den skal komme sig fint. Når dette er installeret og fungerer, kan du stort set "indstille det og glemme det", bortset fra opdateringerne til diasene. I vores tilfælde opdaterer vores kirkeadministrator diasene ugentligt, og dette system har fungeret fejlfrit i cirka et år.

Giv venligst feedback! Jeg er modtagelig for at rette fejl eller unøjagtigheder. Jeg forstår, at der er mange forskellige måder at gøre tingene på, så jeg er ikke begejstret for at besvare spørgsmål som "hvorfor brugte du python i stedet for {programmeringssprog X}?" Eller forslag, der er funktionelt de samme (som "sudo apt" alle pakkerne på én gang i stedet for en ad gangen). Funktionelle forbedringer er dog altid velkomne! Jeg forsøger at gøre dette så funktionelt og nyttigt som muligt, samtidig med at det er let at installere og let at vedligeholde. Jeg nyder især feedback fra dem, der har nydt godt af denne Instructable. Jeg hjælper gerne, hvis jeg kan.

Fremtidigt arbejde

Jeg begynder at arbejde på en version, der gør det muligt at blande videofiler (med lyd) med de statiske dias. Jeg tror, jeg kan bruge vlc til det fra kommandolinjen. Jeg opdaterer dette, hvis jeg kan få det til at fungere. Kom gerne med forslag!

Anbefalede: