Innehållsförteckning:

En knapps radioströmmingsbox: 7 steg (med bilder)
En knapps radioströmmingsbox: 7 steg (med bilder)

Video: En knapps radioströmmingsbox: 7 steg (med bilder)

Video: En knapps radioströmmingsbox: 7 steg (med bilder)
Video: Вся Германия Узнала о Марии Ладенбургер 2024, Juni
Anonim
En knappradiobox
En knappradiobox

Jag byggde en låda för min väns bar som har en Raspberry Pi inuti och med ett tryck på en knapp strömmar den ljud till en webbplats med Darkice och Icecast, samtidigt som man tänder ett "On-Air" -skylt. Jag trodde att det här var något som människor redan gjorde men efter omfattande sökning hittade jag ingenting och bestämde mig för att ta reda på det själv och göra detta instruerbart.

Jag använde en Raspberry Pi 3+ B men såvitt jag kan se fungerar det på alla Pi (kanske GPIO -pin -numren varierar, men jag kan inte intyga det). Jag använde NOOBS -paketet för operativsystemet och köpte ett superenkelt ljudkort för ingången. Jag lade också till en säker avstängningsknapp och aktivitets-LED i lådan för att skydda Pi.

Du kommer behöva:

Raspberry Pi

NOOBS -paket på ett SD -kort

På/Av -omkopplare (jag använde en stor röd nödstoppsknapp så här, men det kan vara vilken som helst "klick" -brytare)

Tryckknapp

1 LED

En "On-Air" -skylt, jag gjorde min egen med en LED-array

Lödkolv och litet kontaktkort (jag klippte precis en remsa av en av dessa som jag hade runt)

Ljudkort (jag använde ett superenkelt sådant här)

Steg 1: Konfigurera din server

För själva radiostationen vi använder gjorde jag inte den här delen eftersom jag inte hade tillgång till servern och min vän gjorde det, men det finns en grundläggande installationsguide på Icecast-webbplatsen och jag lyckades få det fungerade från Pi i början bara för att se hur det går. Alternativt kan du skaffa ett konto på internet-radio.com och det fungerar med Darkice.

Steg 2: Konfigurera Pi och installera Darkice

Skaffa ett SD -kort med NOOBS -paketet. När du har öppnat Raspbian och installerat alla uppdateringar öppnar du ett Terminal -fönster och skriver:

sudo apt-get uppdatering

sudo apt-get install darkice

Darkice är en del av Debian så det installeras automatiskt, det tar några ögonblick.

När det är klart vid prompttypen:

darkice

Det ger ett felmeddelande och körs inte, men det är ok. I meddelandet kommer det att säga något liknande:

Använda konfigurationsfil: /etc/darkice.cfg

Du måste redigera den filen, så vid prompten skriver du:

sudo nano /etc/darkice.cfg

Redigera filen som öppnas med informationen på denna wiki. Radioreferens-sida, när du är klar trycker du på CTRL-X för att stänga, Y för att spara och du bör återgå till Terminal-prompten. Det är alltid bra att starta om efter att ha installerat ett nytt program så skriv:

starta om

och när Pi har startat om öppnar du ett terminalfönster igen. Nu när du skriver 'Darkice' ska den köras utan några felmeddelanden. Om du går till https:// YOURSERVERADDRESS: 8000/(8000 eller vilken port som din icecast -server är tilldelad) bör du få en statistiksida som säger att du är ansluten. Om inte, justera konfigurationsfilen (ljudinmatningsraden gav mig några problem men jag försökte alla alternativ och hittade så småningom mitt ljudkort). När Darkice körs korrekt går du vidare till nästa steg.

Steg 3: Strömknapp och On-Air Sign

Strömknapp och luftskylt
Strömknapp och luftskylt

Jag gjorde ett gäng olika handledning för detta eftersom det inte fanns någon specifik för att tilldela en åtgärd till en knapp i Python. Det största problemet jag mötte var att få Darkice att köra i bakgrunden (och därmed inte frysa Python -skriptet när det började köra) men jag bad en kodarvän att komma och hjälpa till och han tänkte ut ett sätt att göra det på att skriva blad, något jag får inte. Tydligen kan det också vara möjligt att använda ett '&' någonstans i koden men jag är ingen kodare och det jag har fungerar så jag valde att inte krångla till det. När jag hade fått allt att fungera började jag riva ner alla kablar från brödbrädan tills jag blev kvar med följande inställning:

GPIO16 till en extern 3-punktsanslutning.

GPIO7 till den positiva terminalen på LED-arrayen för ON-Air-skylten.

GPIO25 till klick-switch.

Den andra sidan av klickomkopplaren ansluts till 3-punktskontakten.

Den negativa terminalen på LED-arrayen fäster också till 3-punktskontakten.

(De andra komponenterna på diagrammet förklaras i nästa steg).

Python -skriptet som vi slutade med är följande (observera att detta är en instruerbar för hela projektet, jag vet inte riktigt tillräckligt för att förklara koden. Jag sammanfogade den från olika andra självstudier för olika 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)

växla = falskt

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 ('resuming') def stop_darkice (): os.system ('screen -X -S darkice quit')

medan det är sant:

buttonState = GPIO.input (buttonPin) if buttonState == True: if not toggle: toggle = True print ('slår på darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

annan:

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

PY -filen är bifogad denna instruktionsbok, du kan bara ladda ner den och följa steg 5 om du vill.

Steg 4: Säker avstängningsknapp och aktivitets -LED

Säker avstängningsknapp och aktivitets -LED
Säker avstängningsknapp och aktivitets -LED

Bara för säkerheten och för att förlänga Pi: s livstid lade jag till en säker avstängningsknapp och en extern aktivitets -LED så att folk vet när det är säkert att koppla ur lådan. Jag hittade enkelt handledning för båda dessa, men jag märkte att Raspberry Pi 3 B+ har en ACT LED -tilldelad GPIO -pin medan tidigare modeller inte gör det och det kan vara problematiskt om du har en äldre Pi.

Fäst den positiva terminalen på lysdioden till GPIO13 och den negativa till GPIO26. För att ACT -lysdioden ska fungera måste du redigera filen config.txt i BOOT -katalogen. Du hittar det här i webbläsaren Raspbian eller med:

sudo nano /usr/boot/config.txt

När du redigerar filen lägger du bara till följande rader:

# Använd extern LED som SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Nu kommer den externa lysdioden att flimra med SD -kortaktivitet.

Fäst tryckknappsanslutningarna på GPIO3 och GPIO8. Jag hittade följande kod från en handledning och det fungerar bra:

importtid från gpiozero importknapp från delprocessimport check_call från signalimportpaus

def avstängning ():

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

shutdown_btn = Knapp (2, hold_time = 1)

shutdown_btn.when_held = avstängning

paus()

tid. sover (1)

Denna py -fil är också bifogad för dig att ladda ner om du vill. Min knapp måste hållas intryckt i 1 sekund, om du vill ändra den ändrar du värdet 'hold-time ='.

Steg 5: Låt Python -skript köras från start

Återigen, det finns många självstudier om detta ämne, jag använde den här från Dexter Industries och följde steg ett genom att redigera rc.local -filen.

sudo nano /etc/rc.local

Här måste du lägga till hela filvägen till slutet av dokumentet, komplett med ett & i slutet av varje rad. Du bör lägga till en rad för var och en av filerna:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

strax före raden

avsluta 0

'&' I slutet av varje rad är viktigt för att säkerställa att programslingorna går.

Steg 6: Bygg rutan

Bygg lådan
Bygg lådan
Bygg lådan
Bygg lådan
Bygg lådan
Bygg lådan

Detta är helt upp till dig. Det behöver egentligen bara vara storleken på Pi, men jag satte en kompressor i mitt upplägg för att hålla radioströmmen på en ganska konsekvent nivå så rutan är lite större. Mitt har ett hål på framsidan för On-Air-skylten och ett för den stora röda knappen, plus att jag gjorde ett litet instruktionskort för DJ: arna och lade det under knappen. På sidan av lådan finns ett hål för tryckknappen, ACT-lysdioden och ljudingången, plus inlagda instruktioner för barpersonalen om hur man säkert stänger av lådan.

Steg 7: Installation

Installation
Installation
Installation
Installation
Installation
Installation
Installation
Installation

Fäst alla separata komponenter i din låda, med tanke på att det alltid är bra att tillåta lite luftcirkulation runt Pi för att förhindra överhettning. Anslut ljudkablarna från din mixer, tryck på knappen och njut av sändningen!

Rekommenderad: