Dieses Projekt hat das Ziel, einen Raspberry Pi (hier der Pi Zero 2 W) in einen Radioempfänger zu verwandeln, der unterwegs ohne jegliche Internetverbindung empfangenes Radio über ein verbundenes Bluetooth-Gerät wie z.B. Kopfhörer wiedergeben kann. Mein Ziel war, unterwegs über Radio News und Musik zu hören, ohne dabei durch Streaming von Internetradio mein Datenvolumen zu belasten.
Dieser Artikel ist als Tutorial gedacht. Kontaktiere mich bei Fragen gerne hier in den Kommentaren oder über die Kontaktseite.
Hardwareanforderungen:
- Raspberry Pi mit 64-bit-Prozessor (z.B. Zero 2 W)
- SDR Dongle mit RTL2832U Chipsatz
- Optional: PiSugar Akku
- Optional: Case für den Pi
- Computer zur Verbindung und Einrichtung, alternativ Termux App auf Android
Schritt 0: Betriebssystem vorbereiten
Falls noch nicht geschehen, installiere die neueste Version von Raspbian auf deinem Pi (Tutorials dafür gibt es z.B. hier), verbinde dich mit deinem Pi über ssh (ssh <username>@<ip-address>) und führe eine vollständige Aktualisierung durch:
sudo apt update && sudo apt dist-upgrade -y
Schritt 1: Programme installieren
Danach kannst du alle notwendigen Programme installieren. Starte den Pi danach einmal neu, um die nötigen Berechtigungen zu aktualisieren.
sudo apt install rtl-sdr bluez-alsa-utils -y
sudo reboot
Optional: Falls du einen PiSugar-Akku verwendest, kannst du das Programm hierfür auch noch installieren
wget https://cdn.pisugar.com/release/pisugar-power-manager.sh
bash pisugar-power-manager.sh -c release
Schritt 2: Bluetooth-Gerät verbinden
Nun kannst du dein Bluetooth-Gerät verbinden. Ersetze den Platzhalter durch die Mac-Adresse deines eigenen Bluetooth-Gerätes.
bluetoothctl
scan on
# Suche jetzt nach dem Namen deines Gerätes und
# notiere dir die danebenstehende Mac-Adresse,
# z.B. EF-9C-97-9E-E2-A9 . Ab jetzt durch MAC ersetzt.
pair MAC
trust MAC
connect MAC
exit
Schritt 3: Skripts erstellen und Service installieren
Erstelle nun die nachfolgenden Skripts in deinem Homeverzeichnis und notiere dir den Dateipfad. Ich benutze hierfür nano DATEINAME , die Datei kannst du danach mit CTRL+x -> y -> ENTER abspeichern. Ersetze den Pfad und deinen Benutzernamen im Skript passend zu deinen Einstellungen.
radio.sh: Sendefrequenz hier 90,8 MHz, ersetze „90.8M“ durch deine gewünschte Empfangsfrequenz
#!/bin/bash
/home/luca/connect.sh
rtl_fm -f 90.8M -s 200k -r 48000 | aplay -r 48000 -f S16_LE -D bluealsa
connect.sh:
#!/bin/bash
# Replace with your Bluetooth device's MAC address
DEVICE_MAC="EF-9C-97-9E-E2-A9"
echo "Starting Bluetooth connection attempts to $DEVICE_MAC"
while true; do
# Check connection status
if bluetoothctl info $DEVICE_MAC | grep -q "Connected: yes"; then
echo "Successfully connected to $DEVICE_MAC"
break
else
echo "Connection failed or device not found. Retrying..."
fi
# Start bluetoothctl commands
echo "Attempting to pair and connect..."
bluetoothctl connect $DEVICE_MAC
# Wait before retrying
sleep 2
done
Mache die Skripts nun ausführbar und erstelle einen systemd Service:
chmod +x radio.sh
chmod +x connect.sh
sudo nano /etc/systemd/system/blueradio.service
[Unit]
Description=Bluetooth radio service
After=bluetooth.target
[Service]
ExecStart=/home/luca/radio.sh
Restart=always
User=YOUR_USERNAME
[Install]
WantedBy=multi-user.target
Abschließend, aktiviere den Service und starte das System neu. Nach dem Neustart sollte die Musik über dein Bluetooth-Gerät automatisch abgespielt werden.
sudo systemctl daemon-reload
sudo systemctl enable blueradio
sudo reboot
Solltest du bei einem dieser Schritte Probleme haben, oder hast du einen Verbesserungsvorschlag, schreibe gerne einen Kommentar unter diesen Artikel!
Schreibe einen Kommentar