Innholdsfortegnelse:

Radioknapp med én knapp: 7 trinn (med bilder)
Radioknapp med én knapp: 7 trinn (med bilder)

Video: Radioknapp med én knapp: 7 trinn (med bilder)

Video: Radioknapp med én knapp: 7 trinn (med bilder)
Video: ABSOLUT OND ER INDEN FOR VÆGGENE I DET FORFÆRDELIGE HUS /EN TIL EN MED EN DEMON 2024, November
Anonim
En knapp Radio Streaming Box
En knapp Radio Streaming Box

Jeg bygde en boks til vennens bar som har en Raspberry Pi inni, og med et trykk på en knapp strømmer den lyd til et nettsted ved hjelp av Darkice og Icecast, samtidig som jeg tenner et "On-Air" -skilt. Jeg trodde dette var noe folk allerede gjorde, men etter omfattende søk fant jeg ingenting og bestemte meg for å finne ut av det selv og gjøre dette instruerbart.

Jeg brukte en Raspberry Pi 3+ B, men så vidt jeg kan se ville det fungere på hvilken som helst Pi (kanskje GPIO -pin -tallene vil variere, men jeg kan ikke bekrefte det). Jeg brukte NOOBS -pakken for operativsystemet og kjøpte et superenkelt lydkort for inngangen. Jeg la også til en sikker avstengningsknapp og aktivitets-LED i esken for å beskytte Pi.

Du vil trenge:

Bringebær Pi

NOOBS -pakke på et SD -kort

Av/på -bryter (jeg brukte en stor rød nødstoppknapp som denne, men det kan være hvilken som helst slags klikk -bryter)

Trykknapp

1 LED

Et "On-Air" -skilt, jeg laget mitt eget med en LED-matrise

Loddejern og liten kontaktplate (jeg klippet bare en stripe av en av disse som jeg hadde rundt)

Lydkort (jeg brukte et superenkelt som dette)

Trinn 1: Sett opp serveren din

For selve radiostasjonen vi bruker, gjorde jeg ikke denne delen, ettersom jeg ikke hadde tilgang til serveren og vennen min gjorde det, men det er en grunnleggende oppsettguide på Icecast-nettstedet, og jeg klarte å få det fungerte fra Pi i begynnelsen bare for å se hvordan det går. Alternativt kan du få en konto på internet-radio.com og den fungerer med Darkice.

Trinn 2: Sett opp Pi og Installer Darkice

Skaff et SD -kort med NOOBS -pakken. Når du har åpnet Raspbian og installert alle oppdateringene, åpner du et Terminal -vindu og skriver:

sudo apt-get oppdatering

sudo apt-get install darkice

Darkice er en del av Debian, så det installeres automatisk, det tar noen øyeblikk.

Når den er ferdig med ledeteksten, skriver du:

darkice

Det vil gi en feilmelding og ikke kjøre, men det er ok. I meldingen vil det si noe sånt som:

Bruker konfigurasjonsfil: /etc/darkice.cfg

Du må redigere den filen, så ved ledeteksten skriver du:

sudo nano /etc/darkice.cfg

Rediger filen som åpnes ved hjelp av informasjonen på denne wiki. Radioreferanse-siden, når du er ferdig, trykk CTRL-X for å lukke, Y for å lagre, og du bør gå tilbake til Terminal-ledeteksten. Det er alltid godt å starte på nytt etter at du har installert et nytt program, så skriv:

starte på nytt

og når Pi har startet på nytt, åpner du et terminalvindu igjen. Når du skriver 'Darkice', skal den kjøre uten feilmeldinger. Hvis du går til https:// YOURSERVERADDRESS: 8000/(8000 eller hvilken port icecast -serveren din er tilordnet), bør du få en statistikkside som sier at du er tilkoblet. Hvis ikke, juster konfigurasjonsfilen (lydinngangslinjen ga meg noen problemer, men jeg prøvde alle alternativene og fant til slutt lydkortet mitt). Når Darkice kjører ordentlig, går du videre til neste trinn.

Trinn 3: Stream-knapp og luftskilt

Stream-knapp og luftskilt
Stream-knapp og luftskilt

Jeg gjorde en haug med forskjellige opplæringsprogrammer for dette, siden det ikke var noen spesifikk for å tilordne en handling til en knapp i Python. Det største problemet jeg sto overfor var å få Darkice til å kjøre i bakgrunnen (og dermed ikke fryse Python -skriptet når det begynte å kjøre), men jeg spurte en kodevenn om å komme og hjelpe, og han fant ut en måte å skrive ark på, noe jeg får ikke. Tilsynelatende kan det også være mulig å bruke et '&' et sted i koden, men jeg er ingen koder og det jeg har fungerer, så jeg valgte å ikke rote med det. Når jeg hadde fått alt til å fungere, begynte jeg å sive ned alle kablene fra brødbrettet til jeg satt igjen med følgende oppsett:

GPIO16 til en ekstern 3-punkts kontakt.

GPIO7 til den positive terminalen til LED-arrayet for ON-Air-skiltet.

GPIO25 til klikkbryteren.

Den andre siden av klikkbryteren festes til 3-punktskontakten.

Den negative terminalen til LED-matrisen festes også til 3-punktskontakten.

(De andre komponentene på diagrammet er forklart i neste trinn).

Python -skriptet som vi endte opp med er som følger (vær oppmerksom på at dette er en instruks for hele prosjektet, jeg vet egentlig ikke nok til å forklare koden. Jeg delte den sammen fra forskjellige andre opplæringsprogrammer for forskjellige funksjoner):

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)

veksle = Feil

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')

mens det er 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)

ellers:

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

PY -filen er vedlagt denne instruksjonsboken. Du kan bare laste den ned og følge trinn 5 hvis du vil.

Trinn 4: Sikker avstengningsknapp og aktivitets -LED

Sikker avstengningsknapp og aktivitets -LED
Sikker avstengningsknapp og aktivitets -LED

Bare for sikkerheten og for å forlenge levetiden til Pi, la jeg til en sikker avstengningsknapp og en ekstern aktivitets -LED slik at folk vet når det er trygt å koble fra esken. Jeg fant enkelt opplæringsprogrammer for begge disse, men jeg la merke til at Raspberry Pi 3 B+ har en ACT LED tildelt GPIO -pin mens tidligere modeller ikke gjør det, og det kan være problematisk hvis du har en eldre Pi.

Fest den positive terminalen til LED -en til GPIO13 og den negative til GPIO26. For at ACT -LED -en skal fungere, må du redigere config.txt -filen i BOOT -katalogen. Du finner dette i Raspbian -nettleseren eller med:

sudo nano /usr/boot/config.txt

Når du redigerer filen, legger du til følgende linjer:

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

Nå blinker den eksterne LED -en med SD -kortaktivitet.

Fest trykkbryterterminalene til GPIO3 og GPIO8. Jeg fant følgende kode fra en opplæring, og den fungerer bra:

importtid fra gpiozero importknapp fra delprosessimport check_call fra signalimportpause

def nedleggelse ():

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

shutdown_btn = Knapp (2, hold_time = 1)

shutdown_btn.when_held = nedleggelse

pause()

time.sleep (1)

Denne py -filen er også vedlagt for å laste ned hvis du vil. Knappen min må holdes inne i 1 sekund, hvis du vil endre den, må du endre verdien 'hold-time ='.

Trinn 5: Få Python -skriptene til å kjøre fra oppstart

Igjen, det er mange opplæringsprogrammer om dette emnet, jeg brukte denne fra Dexter Industries og fulgte trinn ett ved å redigere rc.local -filen.

sudo nano /etc/rc.local

Her må du legge til den komplette filbanen til slutten av dokumentet, komplett med et '&' på slutten av hver linje. Du bør legge til en linje for hver av filene:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

like før linjen

avslutte 0

'&' På slutten av hver linje er viktig for å sikre at programsløyfene.

Trinn 6: Bygg boksen

Bygg boksen
Bygg boksen
Bygg boksen
Bygg boksen
Bygg boksen
Bygg boksen

Dette er helt opp til deg. Det trenger egentlig bare å være størrelsen på Pi, men jeg satte en kompressor i oppsettet mitt for å holde radiostrømmen på et ganske konsistent nivå, så boksen er litt større. Mitt har et hull på forsiden for On-Air-skiltet og et for den store røde knappen, pluss at jeg lagde et lite instruksjonskort for DJ-ene og la det inn under knappen. På siden av esken er det et hull for trykknappen, ACT-lysdioden og lydinngangen, pluss innlagte instruksjoner for barpersonalet om hvordan du trygt kan slå av boksen.

Trinn 7: Installasjon

Installasjon
Installasjon
Installasjon
Installasjon
Installasjon
Installasjon
Installasjon
Installasjon

Fest alle de separate komponentene i esken din, og husk at det alltid er godt å la litt sirkulasjon rundt Pi for å forhindre overoppheting. Fest lydkablene fra mikseren, trykk på knappen og nyt kringkasting!

Anbefalt: