Innehållsförteckning:
- Steg 1: Konfigurera din server
- Steg 2: Konfigurera Pi och installera Darkice
- Steg 3: Strömknapp och On-Air Sign
- Steg 4: Säker avstängningsknapp och aktivitets -LED
- Steg 5: Låt Python -skript köras från start
- Steg 6: Bygg rutan
- Steg 7: Installation
Video: En knapps radioströmmingsbox: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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
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:
2-knapps kvadratisk ekvationslösare: 5 steg
2-Button Quadratic Equation Solver: Introduktionvälkommen till min första instruerbara! Jag startade detta projekt för att utöka mina programmeringskunskaper. Ofta slår du bara ihop olika källkoder för att skapa det program du behöver. Mitt mål var att skriva min egen programkod för att interagera med ett verktyg.
En knapps buffé: 4 steg
En knapps buffé: OBS: För Kang Chiaos måltidsystem är det värdelöst om du inte är i vår skola. Enheterna har två användningsområden. Den kan användas för att hoppa över den tråkiga processen att välja måltider genom att bara välja buffé för dig, vilket verkligen är användbart för människor som bara vill äta
1-knapps MIDI-handledning: 6 steg
1-knapps MIDI-kontrollhandledning: Det finns många självstudier för Arduino-MIDI-kontroller där ute, det här är en genomgång av hur du kan rulla med en enkel knapp och potentiometer. Jag skulle älskat att ha stött på något sådant när jag precis började
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
En-knapps knappsats: 4 steg (med bilder)
Knappsats med en knapptryckning: Slösar du bort värdefulla sekunder med att skriva in en kod varje gång du behöver öppna dörren? Denna lilla "enhet" effektiviserar processen genom att trycka på de rätta knapparna för dig och kan döljas i din handflata så att du helt enkelt mashar handen mot knappsatsen och - app