DIY-internetradio

      Geen reacties op DIY-internetradio

In 2021 is mijn mooie witte IP-dio internetradio door het opheffen van de Reciva-website onbruikbaar geworden. Dus hoog tijd voor een oplossing die ik helemaal zelf in de hand heb, met de Raspberry Pi.
Lees het nieuwsbericht over Reciva en de IP-dio.

Tastbaar

De nieuwe oplossing moet net als de IP-dio een alles-in-één-behuizing zijn met echte knoppen. Dus dat wordt weer een mooi project onder het motto “Pi-in-the-box”, zoals het mini-weerstation en de Pico Pong-arcadebox.

DIY_internetradio

Met een Raspberry Pi, een speakersetje, een handvol drukknoppen, een beetje Python-code en wat url’s voor de radiostreams heb je de basis. De rest is een kwestie van fantasie.

Wat hebben we nodig?

  • Een Pi, het makkelijkste is een Pi 3 of hoger met ingebouwde wifimodule en een jackplugaansluiting.
  • Luidsprekers, het makkelijkste is een setje actieve speakers.
  • een handvol knoppen en ledjes, voor het bedieningspaneel
  • een behuizing/doosje van voldoende omvang.
  • software, maar welke?
  • een lijst met de url’s van mp3-radiostreams, zoals die van Hendrik Jansen.

Welke software?

Als het gaat om een internetradioproject met de Raspberry Pi, kom je in bv. The MagPi magazine en in Google als populairste mogelijkheden Pi Music Box en Volumio tegen. Deze oplossingen zijn erg makkelijk (Pi-image downloaden-flashen-en-klaar), maar beide moet je bedienen via een webinterface vanuit een browser op een andere computer of smartphone. Overigens is de ontwikkeling van Pi MusicBox door de maker (bij versie 0.7) stopgezet in april 2022.
Een derde veel simpelere oplossing die ik tegenkwam was mplayer (movieplayer), een puur commandlineprogramma om films af te spelen. Maar het kan natuurlijk ook mp3-streams afspelen. En het is met Python aan te sturen, wat beter in mijn plannen past. Na wat stoeien met mplayer en Python kwam ik op het spoor van de VLC Media Player en de module Python-vlc  ( pip install python-vlc ). Daarmee is het kinderspel om in Python een radiostream te starten, te stoppen etc.

Afwerking

Met een Raspberry Pi, een speakersetje een handvol drukknoppen, een beetje Python-code en wat url’s voor de radiostreams heb je de basis. De rest is een kwestie van fantasie. Voor een echte retro-uitstraling bijvoorbeeld kun je de behuizing van een oude radio gebruiken.

Voorbeeldcode:

import vlc
from gpiozero import Button, LEDBoard

btn0 = Button(17)
btn1 = Button(18)
btn2 = Button(27)
btn3 = Button(22)
btn4 = Button(23)
btn5 = Button(24)

leds = LEDBoard(7, 8, 9, 10, 11)
player = vlc.MediaPlayer("")

def stop():
    print("Button is pressed")
    global player    
    player.stop()
    leds.off()

def radio1():
    print("Button is pressed")
    leds.off()
    leds[0].blink()
    global player
    player.stop()
    player = vlc.MediaPlayer("https://icecast.omroep.nl/radio1-bb-mp3")
    player.play()

def radio2():
    ...

while True:
    btn0.when_pressed = stop
    btn1.when_pressed = radio1  #NPO1
    ...