Inhaltsverzeichnis:
- Schritt 1: Richten Sie Ihren Server ein
- Schritt 2: Richten Sie den Pi ein und installieren Sie Darkice
- Schritt 3: Stream-Button und On-Air-Zeichen
- Schritt 4: Taste zum sicheren Herunterfahren und Aktivitäts-LED
- Schritt 5: Lassen Sie die Python-Skripte vom Boot aus ausführen
- Schritt 6: Bauen Sie die Box
- Schritt 7: Installation
Video: Ein-Knopf-Radio-Streaming-Box - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Ich habe eine Box für die Bar meines Freundes gebaut, die einen Raspberry Pi enthält und mit einem Knopfdruck Audio auf eine Website mit Darkice und Icecast streamt, während gleichzeitig ein 'On-Air'-Schild beleuchtet wird. Ich dachte, dies wäre etwas, was die Leute bereits taten, aber nach ausgiebiger Suche fand ich nichts und beschloss, es für mich selbst herauszufinden und dieses Instructable zu machen.
Ich habe einen Raspberry Pi 3+ B verwendet, aber soweit ich das beurteilen kann, würde er auf jedem Pi funktionieren (vielleicht würden die GPIO-Pin-Nummern variieren, das kann ich jedoch nicht bestätigen). Ich habe das NOOBS-Paket für das Betriebssystem verwendet und eine super einfache Soundkarte für den Eingang gekauft. Ich habe der Box auch eine sichere Abschalttaste und eine Aktivitäts-LED hinzugefügt, um den Pi zu schützen.
Du wirst brauchen:
Himbeer-Pi
NOOBS-Paket auf einer SD-Karte
Ein/Aus-Schalter (Ich habe einen großen roten Not-Aus-Schalter wie diesen verwendet, aber es kann jede Art von "Klick" -Schalter sein)
Druckknopf
1 LED
Ein 'On-Air'-Schild, das ich mit einem LED-Array selbst gemacht habe
Lötkolben und kleine Anschlussplatine (ich habe gerade einen Streifen von einem davon abgeschnitten, den ich herum hatte)
Soundkarte (ich habe so eine supereinfache verwendet)
Schritt 1: Richten Sie Ihren Server ein
Für den eigentlichen Radiosender, den wir verwenden, habe ich diesen Teil nicht gemacht, da ich keinen Zugriff auf den Server hatte und mein Freund hat es getan, aber es gibt eine grundlegende Einrichtungsanleitung auf der Icecast-Website und ich habe es geschafft, Es funktioniert am Anfang vom Pi aus, nur um zu sehen, wie es läuft. Alternativ können Sie auch einen Account bei internet-radio.com erstellen und es funktioniert mit Darkice.
Schritt 2: Richten Sie den Pi ein und installieren Sie Darkice
Besorgen Sie sich eine SD-Karte mit dem NOOBS-Paket. Sobald Sie Raspbian geöffnet und alle Updates installiert haben, öffnen Sie ein Terminal-Fenster und geben Sie Folgendes ein:
sudo apt-get update
sudo apt-get install darkice
Darkice ist Teil von Debian, daher wird es automatisch installiert, es dauert ein paar Augenblicke.
Wenn es fertig ist, geben Sie an der Eingabeaufforderung Folgendes ein:
Dunkeleis
Es wird eine Fehlermeldung ausgegeben und nicht ausgeführt, aber das ist in Ordnung. In der Nachricht steht etwa:
Verwenden der Konfigurationsdatei: /etc/darkice.cfg
Sie müssen diese Datei bearbeiten, also geben Sie an der Eingabeaufforderung Folgendes ein:
sudo nano /etc/darkice.cfg
Bearbeiten Sie die geöffnete Datei mit den Informationen auf dieser wiki. Radioreference-Seite. Wenn Sie fertig sind, drücken Sie STRG-X zum Schließen, Y zum Speichern und Sie sollten zur Terminal-Eingabeaufforderung zurückkehren. Es ist immer gut, nach der Installation eines neuen Programms neu zu starten, also geben Sie Folgendes ein:
neustarten
und wenn der Pi neu gestartet wurde, öffnen Sie erneut ein Terminalfenster. Wenn Sie jetzt 'Darkice' eingeben, sollte es ohne Fehlermeldungen laufen. Wenn Sie zu https://YOURSERVERADDRESS:8000/ gehen (8000 oder welcher Port Ihrem Icecast-Server zugewiesen ist), sollten Sie eine Statistikseite erhalten, die besagt, dass Sie verbunden sind. Wenn nicht, optimieren Sie die Konfigurationsdatei (die Audioeingabezeile gab mir einige Probleme, aber ich habe alle Optionen ausprobiert und schließlich meine Soundkarte gefunden). Sobald Darkice richtig läuft, fahren Sie mit dem nächsten Schritt fort.
Schritt 3: Stream-Button und On-Air-Zeichen
Ich habe dafür eine Reihe verschiedener Tutorials gemacht, da es in Python kein spezielles gab, um einer Schaltfläche eine Aktion zuzuweisen. Das größte Problem, mit dem ich konfrontiert war, war, Darkice dazu zu bringen, im Hintergrund zu laufen (und somit das Python-Skript nicht einzufrieren, wenn es anfing zu laufen), aber ich bat einen befreundeten Programmierer, zu kommen und zu helfen, und er fand einen Weg, wie man es beim Schreiben von Blättern tun konnte, etwas, das ich nicht bekommen. Anscheinend könnte es auch möglich sein, irgendwo im Code ein '&' zu verwenden, aber ich bin kein Programmierer und das, was ich habe, funktioniert, also habe ich mich entschieden, nicht damit herumzuspielen. Nachdem alles funktioniert hatte, fing ich an, alle Kabel vom Steckbrett abzuschneiden, bis ich mit dem folgenden Setup übrig war:
GPIO16 an einen externen 3-Punkt-Anschluss.
GPIO7 an den Pluspol des LED-Arrays für das ON-Air-Zeichen.
GPIO25 zum Klick-Schalter.
Die andere Seite des Klickschalters wird an den 3-Punkt-Stecker angeschlossen.
Der Minuspol des LED-Arrays wird auch an den 3-Punkt-Anschluss angeschlossen.
(Die anderen Komponenten im Diagramm werden im nächsten Schritt erklärt).
Das Python-Skript, mit dem wir geendet haben, ist wie folgt (bitte beachten Sie, dass dies ein Instructable für das gesamte Projekt ist, ich weiß nicht wirklich genug, um den Code zu erklären. Ich habe es aus verschiedenen anderen Tutorials für verschiedene Funktionen zusammengefügt):
import timeimport os import RPi. GPIO als 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 = Falsch
def start_darkice():
print('Aufruf des Unterprozesses') #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')
während Wahr:
buttonState = GPIO.input(buttonPin) if buttonState == True: wenn nicht toggle: toggle = True print('Darkice einschalten') start_darkice() #print ('BUTTON STATE TRUE') GPIO.output(ledPin, GPIO. HIGH)
anders:
if toggle: toggle = False print('stopping darkice') stop_darkice() #print ('BUTTON STATE FALSE') GPIO.output(ledPin, GPIO. LOW) time.sleep(1)
Die py-Datei ist an dieses Instructible angehängt, Sie können es einfach herunterladen und Schritt 5 befolgen, wenn Sie möchten.
Schritt 4: Taste zum sicheren Herunterfahren und Aktivitäts-LED
Aus Sicherheitsgründen und um die Lebensdauer des Pi zu verlängern, habe ich einen sicheren Abschaltknopf und eine externe Aktivitäts-LED hinzugefügt, damit die Leute wissen, wann es sicher ist, die Box zu trennen. Ich habe leicht Tutorials für beide gefunden, aber mir ist aufgefallen, dass der Raspberry Pi 3 B+ einen der ACT-LED zugewiesenen GPIO-Pin hat, während dies bei früheren Modellen nicht der Fall ist, und das könnte problematisch sein, wenn Sie einen älteren Pi haben.
Befestigen Sie den Pluspol der LED an GPIO13 und den Minuspol an GPIO26. Damit die ACT-LED funktioniert, müssen Sie die Datei config.txt im BOOT-Verzeichnis bearbeiten. Diese finden Sie im Raspbian-Browser oder mit:
sudo nano /usr/boot/config.txt
Wenn Sie die Datei bearbeiten, fügen Sie einfach die folgenden Zeilen hinzu:
# Externe LED als SD verwenden ACT LED dtoverlay=pi3-act-led, gpio=19
Jetzt flackert die externe LED bei der Aktivität der SD-Karte.
Bringen Sie die Druckschalteranschlüsse an GPIO3 und GPIO8 an. Ich habe den folgenden Code aus einem Tutorial gefunden und es funktioniert gut:
import timefrom gpiozero import Button from subprocess import check_call from signal import pause
def Shutdown():
check_call(['sudo', 'poweroff'])
shutdown_btn = Button(2, hold_time=1)
shutdown_btn.when_held = Herunterfahren
Pause()
Zeit. Schlaf(1)
Diese py-Datei ist auch angehängt, damit Sie sie herunterladen können, wenn Sie möchten. Meine Taste muss 1 Sekunde lang gehalten werden, wenn Sie dies ändern möchten, ändern Sie den Wert für 'hold-time='.
Schritt 5: Lassen Sie die Python-Skripte vom Boot aus ausführen
Auch hier gibt es viele Tutorials zu diesem Thema, ich habe dieses von Dexter Industries verwendet und Schritt eins mit der Bearbeitung der Datei rc.local befolgt.
sudo nano /etc/rc.local
Hier müssen Sie den vollständigen Dateipfad am Ende des Dokuments hinzufügen, komplett mit einem '&' am Ende jeder Zeile. Sie sollten für jede der Dateien eine Zeile hinzufügen:
sudo python /home/pi/DATEINAME, py &
sudo python /home/pi/DATEINAME2.py &
kurz vor der linie
Ausgang 0
Das '&' am Ende jeder Zeile ist wichtig, um die Programmschleifen sicherzustellen.
Schritt 6: Bauen Sie die Box
Dies liegt ganz bei Ihnen. Es muss wirklich nur die Größe des Pi haben, aber ich habe einen Kompressor in mein Setup eingebaut, um den Radiostream auf einem ziemlich konstanten Niveau zu halten, sodass die Box etwas größer ist. Meiner hat vorne ein Loch für das On-Air-Schild und eines für den Big Red Button, außerdem habe ich eine kleine Anleitungskarte für die DJs gemacht und unter dem Button eingelegt. An der Seite der Box befindet sich ein Loch für den Drucktaster, die ACT-LED und den Audio-Eingang sowie eine eingelegte Anleitung für das Barpersonal zum sicheren Herunterfahren der Box.
Schritt 7: Installation
Befestigen Sie alle separaten Komponenten in Ihrer Box und denken Sie daran, dass es immer gut ist, eine gewisse Luftzirkulation um den Pi zu ermöglichen, um eine Überhitzung zu vermeiden. Schließen Sie die Audiokabel Ihres Mischpults an, drücken Sie den Knopf und genießen Sie die Übertragung!
Empfohlen:
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Diskrete Komponente.: 5 Schritte
On Off Latch-Schaltung mit UC. Ein Druckknopf. Ein Stift. Discrete Component.: Hallo zusammen, habe im Netz nach einer Ein/Aus-Schaltung gesucht. Alles, was ich fand, war nicht das, was ich suchte. Ich habe mit mir selbst gesprochen, es gibt unbedingt einen Weg dazu. Das habe ich gebraucht. - Nur ein Druckknopf zum Ein- und Ausschalten. - Muss nur
EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELN: 37 Schritte
WIE MAN EIN ALTES HANDY (NOKIA 6600) IN EIN SUPERGADGET-MIKROCOMPUTER VERWANDELT: http://www.internetsecretbook.com https://www.youtube.com/thebibleformulaInmitten der Schwierigkeit liegt die Chance. - Albert Einstein Das Nokia 6600 bietet neue fortschrittliche Bildgebungsfunktionen, darunter ein helles TFT-Display mit 65.536 Farben und ca
So richten Sie ein Heimnetzwerk ein: 6 Schritte
So richten Sie ein Heimnetzwerk ein: Das Einrichten eines Netzwerks kann zunächst entmutigend klingen, aber sobald Sie alles haben, was Sie brauchen, ist es sehr einfach. Die traditionelle Einrichtung erfordert ein Modem und einen Router, aber einige benötigen möglicherweise mehr und andere weniger. Es gibt viele verschiedene
So schließen Sie ein Mini-HiFi-Regalsystem (Soundsystem) richtig an und richten es ein: 8-Schritte (mit Bildern)
So schließen Sie ein Mini-HiFi-Regalsystem (Soundsystem) richtig an und richten es ein: Ich bin ein Mensch, der gerne Elektrotechnik lernt. Ich bin eine High School an der Ann Richards School for Young Women Leaders. Ich mache dies anweisbar, um jedem zu helfen, der seine Musik von einem Mini LG HiFi Shelf Syste genießen möchte
Wie konvertiert man ein physisches Buch in ein E-Book?: 7 Schritte (mit Bildern)
Wie wandelt man ein physisches Buch in ein E-Book um?: Als Student im Hauptfach Chemieingenieurwesen habe ich normalerweise umfangreiche Lehrbücher, technische Bücher und Notizen zum Scannen (manchmal drucken) Ich habe seit einiger Zeit nach einem effizienten Buchscanner gesucht, aber die meisten sind es teuer, extrem groß. Es dauerte nicht lange