INHOUDSOPGAWE:

Radio-stroomboks met een knoppie: 7 stappe (met foto's)
Radio-stroomboks met een knoppie: 7 stappe (met foto's)

Video: Radio-stroomboks met een knoppie: 7 stappe (met foto's)

Video: Radio-stroomboks met een knoppie: 7 stappe (met foto's)
Video: KABE Imperial 740 TDL E2 - De Greeff 2024, Junie
Anonim
Een-knoppie Radio Streaming Box
Een-knoppie Radio Streaming Box

Ek het 'n boks vir die maat van my vriend gebou met 'n Raspberry Pi aan die binnekant en met 'n druk van een knoppie stroom dit klank na 'n webwerf met Darkice en Icecast, terwyl ek tegelyk 'n 'On-Air'-bordjie aansteek. Ek het gedink dit is iets wat mense alreeds doen, maar na uitgebreide soektog het ek niks gevind nie en besluit om dit self uit te vind en te leer.

Ek het 'n Raspberry Pi 3+ B gebruik, maar sover ek kan weet, sal dit op enige Pi werk (miskien kan die GPIO -speldnommers verskil, maar ek kan dit nie getuig nie). Ek het die NOOBS -pakket vir die bedryfstelsel gebruik en 'n super eenvoudige klankkaart vir die invoer gekoop. Ek het ook 'n veilige afsluitknoppie en aktiwiteits-LED by die boks gevoeg om die Pi te beskerm.

Jy sal nodig hê:

Framboos Pi

NOOBS -pakket op 'n SD -kaart

Aan/uit -skakelaar (ek het 'n groot rooi noodstopknoppie soos hierdie gebruik, maar dit kan enige soort 'klik' -skakelaar wees)

Druk knoppie

1 LED

As 'n 'On-Air' teken, het ek my eie gemaak met 'n LED-skikking

Soldeerbout en klein aansluitbord (ek het net 'n strook daarvan afgesny wat ek gehad het)

Klankkaart (ek het 'n super-eenvoudige een soos hierdie gebruik)

Stap 1: Stel u bediener op

Vir die werklike radiostasie wat ons gebruik, het ek hierdie deel nie gedoen nie, aangesien ek nie toegang tot die bediener gehad het nie en my vriend dit gedoen het, maar daar is 'n basiese opstellingsgids op die Icecast-webwerf en ek het daarin geslaag dit werk aan die begin van die Pi af net om te sien hoe dit gaan. U kan ook 'n rekening op internet-radio.com kry en dit werk met Darkice.

Stap 2: Stel die Pi op en installeer Darkice

Verkry 'n SD -kaart met die NOOBS -pakket. Nadat u Raspbian oopgemaak het en al die opdaterings geïnstalleer het, maak u 'n Terminal -venster oop en tik:

sudo apt-get update

sudo apt-get installeer darkice

Darkice is deel van Debian, dus dit sal outomaties geïnstalleer word, dit neem 'n paar oomblikke.

Sodra dit klaar is met die vinnige tipe:

donkerkop

Dit gee 'n foutboodskap en word nie uitgevoer nie, maar dit is goed. In die boodskap sal dit iets sê soos:

Gebruik config -lêer: /etc/darkice.cfg

U moet die lêer wysig, so by die vinnige tipe:

sudo nano /etc/darkice.cfg

Wysig die lêer wat oopmaak met behulp van die inligting op hierdie wiki. Radioverwysingsbladsy, as u klaar is, druk CTRL-X om te sluit, Y om te stoor en u moet terugkeer na die Terminal-prompt. Dit is altyd goed om weer te begin nadat u 'n nuwe program geïnstalleer het, tik dus:

herlaai

en as die Pi weer begin, maak 'n Terminal-venster weer oop. As u 'Darkice' intik, moet dit sonder foutboodskappe werk. As u na https:// YOURSERVERADDRESS: 8000/(8000 of watter poort u ook aan die icecast -bediener toewys) gaan, moet u 'n statistiekbladsy kry wat sê dat u gekoppel is. As dit nie die geval is nie, pas die konfigurasielêer aan (die klankinvoerlyn het 'n paar probleme opgelewer, maar ek het al die opsies probeer en uiteindelik my klankkaart gevind). Sodra Darkice behoorlik werk, gaan na die volgende stap.

Stap 3: Stroomknoppie en teken op die lug

Stroomknoppie en teken op die lug
Stroomknoppie en teken op die lug

Ek het 'n klomp verskillende tutoriale hiervoor gedoen, aangesien daar geen spesifieke een was om 'n aksie aan 'n knoppie in Python toe te ken nie. Die grootste probleem waarmee ek te kampe gehad het, was om Darkice op die agtergrond te laat hardloop (en dus nie die Python -script te vries toe dit begin loop nie), maar ek het 'n kodeerdervriend gevra om te kom help, en hy het 'n manier uitgevind om dit te skryf, en ek het kry nie. Blykbaar kan dit ook moontlik wees om 'n '&' êrens in die kode te gebruik, maar ek is nie 'n kodeerder nie en wat ek het, werk, so ek het besluit om nie daarmee te mors nie. Toe ek alles aan die werk gehad het, het ek al die kabels van die broodbord afgehaal totdat ek met die volgende opstelling oorgebly het:

GPIO16 na 'n eksterne 3-punt-aansluiting.

GPIO7 na die positiewe terminaal van die LED-skikking vir die ON-Air-teken.

GPIO25 na die klikskakelaar.

Die ander kant van die klikskakelaar word aan die 3-punt-aansluiting geheg.

Die negatiewe terminaal van die LED-skikking word ook aan die 3-punt-aansluiting geheg.

(Die ander komponente op die diagram word in die volgende stap verduidelik).

Die Python -skrif waarmee ons beland het, is soos volg (let op: dit is 'n instruksie vir die hele projek; ek weet nie regtig genoeg om die kode te verduidelik nie. Ek het dit saamgevoeg uit verskillende tutoriale vir verskillende funksies):

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)

wissel = Onwaar

def start_darkice ():

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

terwyl dit waar is:

buttonState = GPIO.input (buttonPin) if buttonState == True: indien nie toggle: toggle = True print ('draai donkersky aan') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

anders:

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

Die py -lêer is by hierdie instruksies aangeheg; u kan dit net aflaai en stap 5 volg as u wil.

Stap 4: Knoppie vir veilige afsluit en LED vir aktiwiteit

Knoppie vir veilige afsluit en LED vir aktiwiteit
Knoppie vir veilige afsluit en LED vir aktiwiteit

Net vir die veiligheid en om die lewensduur van die Pi te verleng, het ek 'n veilige afsluitknoppie en 'n eksterne LED vir aktiwiteite bygevoeg, sodat mense weet wanneer dit veilig is om die boks uit te skakel. Ek het maklik tutoriale vir albei gevind, maar ek het opgemerk dat die Raspberry Pi 3 B+ 'n ACT LED -GPIO -pen het, terwyl vorige modelle dit nie doen nie, en dit kan problematies wees as u 'n ouer Pi het.

Koppel die positiewe terminaal van die LED aan GPIO13 en die negatiewe aan GPIO26. Om die ACT -LED te laat werk, moet u die config.txt -lêer in die BOOT -gids wysig. U kan dit vind in die Raspbian -blaaier of met:

sudo nano /usr/boot/config.txt

Voeg die volgende reëls by wanneer u die lêer redigeer:

# Gebruik eksterne LED as SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Nou flikker die eksterne LED met SD -kaartaktiwiteit.

Koppel die drukknopsklemme aan GPIO3 en GPIO8. Ek het die volgende kode uit 'n tutoriaal gevind en dit werk goed:

invoer tyd vanaf gpiozero invoer knoppie vanaf subproses invoer tjek_oproep vanaf sein invoer pouse

def shutdown ():

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

shutdown_btn = Knoppie (2, hold_time = 1)

shutdown_btn.when_held = afsluiting

pouse ()

tyd. slaap (1)

Hierdie py -lêer is ook aangeheg om af te laai as u wil. My knoppie moet 1 sekonde ingedruk gehou word, as u die waarde 'hold-time =' wil verander.

Stap 5: Laat die Python -skripte van die opstart af loop

Weereens, daar is baie tutoriale oor hierdie onderwerp; ek het hierdie van Dexter Industries gebruik en stap een gevolg deur die rc.local -lêer te wysig.

sudo nano /etc/rc.local

Hier moet u die volledige lêerpad na die einde van die dokument voeg, met 'n '&' aan die einde van elke reël. U moet een reël vir elk van die lêers byvoeg:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

net voor die ry

uitgang 0

Die '&' aan die einde van elke reël is belangrik om te verseker dat die program loop.

Stap 6: Bou die boks

Bou die boks
Bou die boks
Bou die boks
Bou die boks
Bou die boks
Bou die boks

Dit is heeltemal aan jou. Dit hoef eintlik net die grootte van die Pi te wees, maar ek het 'n kompressor in my opset gesit om die radiostroom op 'n redelik konsekwente vlak te hou, sodat die boks 'n bietjie groter is. Myne het 'n gaatjie aan die voorkant vir die On-Air-bord en een vir die Big Red Button, plus ek het 'n klein instruksiekaartjie vir die DJ's gemaak en dit onder die knoppie ingesit. Aan die kant van die boks is 'n gaatjie vir die drukknop, die ACT-LED en die klankinvoer, plus instruksies vir die kroegpersoneel oor hoe om die boks veilig af te sluit.

Stap 7: Installasie

Installasie
Installasie
Installasie
Installasie
Installasie
Installasie
Installasie
Installasie

Plaas al die afsonderlike komponente in u boks, met in gedagte dat dit altyd goed is om lugsirkulasie rondom die Pi moontlik te maak om oorverhitting te voorkom. Koppel die klankkabels uit u menger, druk op die knoppie en geniet die uitsending!

Aanbeveel: