Indholdsfortegnelse:

One-button Radio Streaming Box: 7 trin (med billeder)
One-button Radio Streaming Box: 7 trin (med billeder)

Video: One-button Radio Streaming Box: 7 trin (med billeder)

Video: One-button Radio Streaming Box: 7 trin (med billeder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Radio-streamingboks med én knap
Radio-streamingboks med én knap

Jeg byggede en kasse til min vens bar, der har en Raspberry Pi indeni, og med et tryk på en knap streamer den lyd til et websted ved hjælp af Darkice og Icecast, samtidig med at der tændes et 'On-Air' skilt. Jeg troede, det var noget, folk allerede gjorde, men efter omfattende søgning fandt jeg ingenting og besluttede at finde ud af det selv og gøre dette til instruktivt.

Jeg brugte en Raspberry Pi 3+ B, men så vidt jeg kan se, ville det fungere på en hvilken som helst Pi (måske ville GPIO pin -numrene variere, men jeg kan ikke vidne om det). Jeg brugte NOOBS -pakken til operativsystemet og købte et super simpelt lydkort til input. Jeg tilføjede også en sikker lukningsknap og aktivitets-LED til boksen for at beskytte Pi.

Du får brug for:

Hindbær Pi

NOOBS -pakke på et SD -kort

Tænd/sluk -knap (jeg brugte en stor rød nødstopknap som denne, men det kan være enhver form for 'klik' -kontakt)

Trykknap

1 LED

Et 'On-Air'-skilt lavede jeg mit eget med et LED-array

Loddejern og lille stikplade (jeg har lige skåret en strimmel af en af disse, som jeg havde rundt)

Lydkort (jeg brugte et superenkelt som dette)

Trin 1: Konfigurer din server

For den faktiske radiostation, vi bruger, gjorde jeg ikke denne del, da jeg ikke havde adgang til serveren, og min ven gjorde det, men der er en grundlæggende opsætningsguide på Icecast-webstedet, og det lykkedes mig at få det fungerede fra Pi i begyndelsen bare for at se, hvordan det går. Alternativt kan du få en konto på internet-radio.com, og den fungerer med Darkice.

Trin 2: Konfigurer Pi og Installer Darkice

Få et SD -kort med NOOBS -pakken. Når du har åbnet Raspbian og installeret alle opdateringerne, åbner du et Terminal -vindue og skriver:

sudo apt-get opdatering

sudo apt-get install darkice

Darkice er en del af Debian, så det installeres automatisk, det tager et øjeblik.

Når det er færdigt ved prompten, skriver du:

darkice

Det vil give en fejlmeddelelse og ikke køre, men det er ok. I meddelelsen vil det sige noget i retning af:

Brug af konfigurationsfil: /etc/darkice.cfg

Du skal redigere den fil, så ved prompten skriver du:

sudo nano /etc/darkice.cfg

Rediger den fil, der åbnes ved hjælp af oplysningerne på denne wiki. Radioreference-side, når du er færdig, skal du trykke på CTRL-X for at lukke, Y for at gemme, og du skal vende tilbage til Terminal-prompten. Det er altid godt at genstarte efter installation af et nyt program, så skriv:

genstarte

og når Pi har genstartet, skal du åbne et terminalvindue igen. Når du nu skriver 'Darkice', skal den køre uden fejlmeddelelser. Hvis du går til https:// YOURSERVERADDRESS: 8000/(8000 eller hvilken port din icecast -server er tildelt til), skal du få en statistikside, der siger, at du er forbundet. Hvis ikke, skal du justere konfigurationsfilen (lydindgangslinjen gav mig nogle problemer, men jeg prøvede alle mulighederne og fandt til sidst mit lydkort). Når Darkice kører korrekt, skal du gå videre til det næste trin.

Trin 3: Stream-knap og On-Air Sign

Stream-knap og luftskilt
Stream-knap og luftskilt

Jeg lavede en masse forskellige tutorials til dette, da der ikke var nogen specifik til at tildele en handling til en knap i Python. Det største problem, jeg stod over for, var at få Darkice til at køre i baggrunden (og dermed ikke fryse Python -scriptet, når det begyndte at køre), men jeg bad en kodevenner om at komme og hjælpe, og han fandt ud af en måde at gøre det på at skrive ark, noget jeg ikke får. Tilsyneladende kunne det også være muligt at bruge et '&' et eller andet sted i koden, men jeg er ingen kode, og det, jeg har, fungerer, så jeg valgte ikke at rode med det. Da jeg havde alt fungeret, begyndte jeg at slynge alle kablerne ned fra brødbrættet, indtil jeg stod tilbage med følgende opsætning:

GPIO16 til et eksternt 3-punkts stik.

GPIO7 til den positive terminal i LED-arrayet til ON-Air-skiltet.

GPIO25 til klik-switch.

Den anden side af klik-kontakten fastgøres til 3-punkts stikket.

Den negative terminal i LED-arrayet fastgøres også til 3-punktsstikket.

(De andre komponenter på diagrammet forklares i næste trin).

Python -scriptet, som vi endte med, er som følger (Bemærk, at dette er en instruerbar for hele projektet, jeg ved ikke rigtigt nok til at forklare koden. Jeg lagde den sammen fra forskellige andre selvstudier til forskellige funktioner):

import timeimport os import RPi. GPIO as GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)

toggle = Falsk

def start_darkice ():

print ('calling subprocess') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('genoptager') def stop_darkice (): os.system ('screen -X -S darkice quit')

mens det er sandt:

buttonState = GPIO.input (buttonPin) if buttonState == True: hvis ikke toggle: toggle = True print ('tænder darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

andet:

if toggle: toggle = Falsk udskrivning ('stop darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

PY -filen er vedhæftet denne instruktionsbog, du kan bare downloade den og følge trin 5, hvis du vil.

Trin 4: Knap til sikker nedlukning og aktivitets -LED

Sikker nedlukningsknap og aktivitets -LED
Sikker nedlukningsknap og aktivitets -LED

Bare for sikkerheden og for at forlænge Pi's levetid tilføjede jeg en sikker lukningsknap og en ekstern aktivitets -LED, så folk ved, hvornår det er sikkert at tage stikket ud. Jeg fandt let selvstudier til begge disse, men jeg lagde mærke til, at Raspberry Pi 3 B+ har en ACT LED tildelt GPIO -pin, mens tidligere modeller ikke gør det, og det kan være problematisk, hvis du har en ældre Pi.

Fastgør den positive terminal på LED'en til GPIO13 og den negative til GPIO26. For at ACT -LED'en skal fungere, skal du redigere filen config.txt i BOOT -biblioteket. Du kan finde dette i Raspbian -browseren eller med:

sudo nano /usr/boot/config.txt

Når du redigerer filen, skal du blot tilføje følgende linjer:

# Brug ekstern LED som SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Nu vil den eksterne LED blinke med SD -kortaktivitet.

Fastgør trykkontaktens terminaler til GPIO3 og GPIO8. Jeg fandt følgende kode fra en tutorial, og den fungerer fint:

importtid fra gpiozero import Knap fra underproces import check_call fra signalimportpause

def lukning ():

check_call (['sudo', 'poweroff'])

shutdown_btn = Knap (2, hold_time = 1)

shutdown_btn.when_held = nedlukning

pause()

time.sleep (1)

Denne py -fil er også vedhæftet, så du kan downloade, hvis du vil. Min knap skal holdes inde i 1 sekund, hvis du vil ændre den, skal værdien 'hold-time =' ændres.

Trin 5: Få Python -scripts til at køre fra opstart

Igen er der mange tutorials om dette emne, jeg brugte denne fra Dexter Industries og fulgte trin et ved at redigere rc.local -filen.

sudo nano /etc/rc.local

Her skal du tilføje den komplette filsti til slutningen af dokumentet, komplet med et '&' i slutningen af hver linje. Du skal tilføje en linje til hver af filerne:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

lige før linjen

afslut 0

'&' I slutningen af hver linje er vigtig for at sikre, at programmet går i loop.

Trin 6: Byg kassen

Byg kassen
Byg kassen
Byg kassen
Byg kassen
Byg kassen
Byg kassen

Dette er helt op til dig. Det behøver egentlig kun at være størrelsen på Pi, men jeg satte en kompressor i min opsætning for at holde radiostrømmen på et ret konsekvent niveau, så boksen er en smule større. Mine har et hul på forsiden til On-Air-skiltet og et til den store røde knap, plus jeg lavede et lille instruktionskort til DJ'erne og lagde det ind under knappen. På siden af boksen er der et hul til trykknappen, ACT-LED'en og lydindgangen, plus indlagte instruktioner til barpersonalet om, hvordan du sikkert lukker kassen ned.

Trin 7: Installation

Installation
Installation
Installation
Installation
Installation
Installation
Installation
Installation

Fastgør alle de separate komponenter i din boks, og husk på, at det altid er godt at tillade lidt luftcirkulation omkring Pi for at forhindre overophedning. Tilslut lydkablerne fra din mixer, tryk på knappen og nyd udsendelsen!

Anbefalede: