Radio internetowe w systemie Domoticz

wpis w: Domoticz | 38

W dzisiejszym wpisie opiszę jak zamienić raspberry pi w radio internetowe, które będziemy mogli sterować za pomocą systemu Domoticz.

Aby Nasze radio grało bez żadnych zakłóceń oraz szumów polecam zastosowanie dodatkowej karty USB. Niestety  z racji większego zapotrzebowania na prąd prawdopodobnie potrzebny będzie również dodatkowy aktywny HUB USB.

Do Naszego projektu potrzebne będą:

  1. Karta muzyczna USB (do kupienia np. w sklepie GOTRONIK)
Karta muzyczna USB do Raspberry

 

2. Aktywny HUB USB (używam D-Link..do kupienia np. w sklepie Komputronik)

Aktywny HUB USB

 

3. Głośniki stereo ze złączem Jack (można podłączyć dowolne ale dla taniości projektu polecam coś TAKIEGO)

Głośniki z wyjściem Jack 3,5mm

 

Pierwszym krokiem po podłączeniu wszystkiego do Naszej maliny będzie odpalenie terminala przez SSH i wpisanie komendy:

  • lsusb

i sprawdzenie czy na liście wyświetliła się Nasza karta muzyczna. Powinna nazywać się prawdopodobnie C-Media Electronics.

 

 

Jeżeli wszystko jest ok przechodzimy do kolejnego kroku, którym jest zainstalowanie Music Player Deamon (MPD). Robimy to poprzez wpisanie komendy:

  • sudo apt-get install mpd mpc

Kolejnym krokiem będzie ustawienie domyślnego urządzenia do odtwarzania karty USB. Zrobimy to poprzez komendę:

  • sudo nano /lib/modprobe.d/aliases.conf

W nowo otwartym pliku przy linii (options snd-usb-audio index=-2) wstawiamy # tak jak na zdjęciu poniżej.

 

 

Zapisujemy plik i restartujemy raspberry przez komendę:

  • sudo reboot

Po ponownym odpaleniu raspberry wpisujemy komendę:

  • amixer

Powinno to wyglądać jak na zdjęciu poniżej:

 

I na sam konie można wpisać komendę:

  • alsamixer

Celem sprawdzenia czy Nasza karta jest wykrywana gdzie można też zmieniać ustawienia głośności.

 

Dodawanie radia polega na utworzeniu pliku za pomocą komendy (nazwa jest oczywiście dowolna):

  • sudo nano radiozet.sh

W którym to pliku wpisujemy:

mpc stop
mpc clear
mpc add http://zet-net-01.cdn.eurozet.pl:8400
mpc play

Co wygląda tak:

mpc stop – wyłącza odtwarzacz

mpc clear – „czyści” odtwarzacz

mpc play – uruchamia odtwarzacz

mpc add – tutaj dodajemy ścieżkę do danego radia internetowego, dla którego tworzymy każdorazowo inny plik.

Każdemu plikowi nadajemy uprawnienia poprzez komendę:

  • sudo chmod +x radiozet.sh

Zamiast radiozet.sh przy tworzeniu kolejnych plików wpisujemy nadaną plikowi nazwę.

 

Działające u mnie radia to:

Radio ZET – http://zet-net-01.cdn.eurozet.pl:8400

RMF FM – http://195.150.20.242:8000/rmf_fm

Radio Wrocław – http://stream2.nadaje.com:9248

Radio Eska Rock – http://s3.deb1.scdn.smcloud.net/t041-1.aac

Radio Złote Przeboje – http://lodz.radio.pionier.net.pl:8000/pl/zloteprzeboje.ogg

 

Możemy sprawdzić czy wszystko działa poprzez komendę:

  • sudo ./radiozet.sh

Po tej komendzie radio powinno zacząć grać.

Aby zatrzymać odtwarzanie wystarczy wpisać:

  • mpc stop

 

Kolejnym krokiem potrzebnym do kontrolowania Naszego radia z systemu Domoticz będzie utworzenie kilku plików pozwalających na ustawienie jego głośności.

Aby to zrobić wpisujemy komendę:

  • sudo nano volume10.sh

W nowo otwartym pliku wpisujemy:

  • amixer sset 'Speaker' 10%

 

Zapisujemy poprzez CTRL+X i nadajemy uprawnienia poprzez:

  • sudo chmod +x volume10.sh

Tworzymy takich plików kilka, np.:

  • volume20
  • volume35
  • volume50
  • volume65
  • volume80
  • volume100

W Waszym przypadku zamiast słowa ‚Speaker’ może być np. ‚PCM’

Można to sprawdzić poprzez wpisanie komendy:

  • amixer

i sprawdzeniu co macie napisane w miejscu jak poniżej:

 

 

Zamiast „10%” w każdym pliku wpisujemy odpowiednią wartość aż do 100%

 

Gdy mamy już utworzone wszystkie pliki możemy przejść do konfiguracji systemu Domoticz.

Na początek musimy utworzyć „wirtualny przełącznik”  o czym pisałem w poprzednich wpisach.

Nazwę czujnika – wpisujemy dowolną – np. Radio – Stacje

Typ czujnika – Przełącznik wyboru, który znajduje się na samym dole rozwijanej listy.

Gdy już utworzyliśmy przełącznik przechodzimy do zakładki „Przełączniki” i wchodzimy do jego edycji gdzie wpisujemy wszystko jak poniżej (uwzględniając swoje nazwy plików do konkretnego radia oraz ścieżkę do jego dostępu)

 

 

Aby utworzyć Przełącznik do kontroli głośności robimy wszystko analogicznie tylko w jego edycji wpisujemy wszystko jak poniżej (uwzględniając tak jak poprzednio swoje nazwy plików oraz ścieżkę do ich dostępu)

 

A tak to powinno wyglądać gdy już wszystko będzie utworzone poprawnie:

 

 

Jeżeli wszystko poszło zgodnie z planem od tej pory powinniście mieć możliwość sterowa radiami internetowymi z poziomy systemu Domoticz.

 

!!! Powodzenia !!!

38 Odpowiedzi

  1. Super!! A czy na karcie muzycznej rpi3 nie pojdzie to radio, musi być zewnetrzna?

    • Dobra sprawdziłem i działa

      • Łukasz Kostrzewa

        Witam
        U mnie na karcie wbudowanej w rpi były spore szumy co nie było dla mnie do zaakceptowania.
        Moja wersja rpi to stara wersja B. Może na nowych jest zdecydowanie lepiej.
        PS: Cieszę się, że działa:)
        Pozdrawiam

  2. A co mam wpisać np. w pliku rmf.sh żeby się włączył jakiś sonoff przy wyborze tej stacji. Bo jak wpisuje to co w wirtualnym przycisku (http://192.168.8.109/control?cmd=GPIO,12,1)to nie działa.
    z góry Dziękuje!

    • Łukasz Kostrzewa

      Witam
      Na końcu pliku z radiem proszę dodać:

      curl -s -i -H „Accept: application/json” „http://192.168.0.15:8080/json.htm?type=command&param=switchlight&idx=300&switchcmd=On”

      Oczywiście proszę podać adres IP swojego Domoticza oraz zamiast idx=300 proszę podać idx włącznika sonoff w systemie Domoticz.
      Jeżeli po wklejeniu tej komend wyskoczą jakieś błędy to pewnie będą to błędy kodowania znaków. Żeby to ominąć najłatwiej będzie przepisać całą linię, którą podałem a nie wklejać.
      Wszystko jest w jednej linii.

      U mnie działa.

  3. Witam,
    Radio fajnie dziela, ale nie dziala glosnosc i nie mozna je wylaczy? Wszystko zrobione zgodnie ze wskazowkami.

    • Łukasz Kostrzewa

      Witam
      Czego nie można wyłączyć? Radia?
      A na pewno po wpisaniu komendy „amixer” wyświetla się „Simple mixer control ‚Speaker’,0 ??
      Bo może zamiast ‚Speaker’ jest np. PCM?
      Pozdrawiam

  4. Tez tak myslalem i zmienilem na PCM i nadal brak reakcji.
    pozdrawiam

    • Łukasz Kostrzewa

      Ale po wpisaniu amixer jest PCM czy Speaker czy może jeszcze coś innego?
      Radio działa normalnie? Czego nie można wyłączyć?

  5. Po wpisaniu amixer jest PCM, no i pozmieniałem na amixer sset ‚PCM’ 10% itd. Ogólnie Radio-stacje gra, ale Radio-
    głośność brak reakcji na głośność i off.

    • Łukasz Kostrzewa

      A uprawnienia zostały nadane poprzez komendę sudo chmod +x volume10.sh?
      I czy wyświetla się jakiś komunikat błędu po wpisaniu sudo ./volume10.sh ?
      Do wyłączania radia służy komenda mpc stop.
      We wpisie tego nie napisałem ale trzeba utworzyć plik mpcoff.sh, w którym należy wpisać:

      #!/bin/bash
      mpc stop

      Pozdrawiam

  6. Czesc, Po nadaniu uprawnien „sudo chmod +x volume10.sh” wywala:
    „sudo: chmod+x: nie znaleziono polecenia”
    Po podaniu polecenia „mpc stop” w terminalu , radio gasnie.

  7. Co do Hub’a USB, to chyba wystarczy na przedłużaczu USB przeciąć przewód zasilający kartę i zasilić ją podając napięcie z zasilacza? Oczywiście masy połączone.

    • Łukasz Kostrzewa

      Szczerze powiem, że nie próbowałem także nie wiem 🙂
      Ale pewnie jest to możliwe
      Pozdrawiam

  8. Łukasz, wkradł Ci się mały błąd w komendzie „sudo chmod+x volume10.sh”. Radio już działa, można wyłączyć i regulować głośność. Pozdrawiam

    • Łukasz Kostrzewa

      Hej
      Wielkie dzięki za info. Zjadłem spację. Już poprawiłem.
      Pozdrawiam

  9. Cześć, ale wiesz że malina ma w sobie kartę dźwiękową i nie trzeba żadnej na USB?

    • Łukasz Kostrzewa

      Witam Serdecznie
      Oczywiście, że wiem 🙂 Jednak…
      Wbudowana karta (przynajmniej w moją wersję raspberry B) jest strasznie słabej jakości i z głośników słychać głównie szumy dlatego też karta muzyczna za te kilka złotych wydaje się być dobrym rozwiązaniem.
      Pozdrawiam

  10. Cześć, Łukasz, a czy przyciski fizyczne do regulacji głośności na Twojej karcie usb działaja na malinie?

  11. Radyjko w kuchni gra, żona zadowolona 🙂
    Mam jeszcze jedno pytanie, jak zrobić, lub czy można to zrobić, aby wysterować przekaźnik podłączony do Raspberry na GPIO20?
    Chodzi o to aby po wyłączeniu radia, odcinać zasilanie na wzmacniacz, aby niepotrzebnie nie pobierał prądu.
    Próbowałem dopisywać polecenie do skryptu, ale mi nic z tego nie wyszło.

    Ps Link do radia RMF i Zet w tekście powyżej jest chyba taki sam.:)

    • Łukasz Kostrzewa

      Witam
      Nie ma nic lepszego niż zadowolona Żona!:)
      Wielkie dzięki za info z linkami do radia RMF i ZET (poprawiłem:)

      Jeżeli chodzi o pytanie odnośnie wzmacniacza to nie wiem czy dobrze rozumiem…
      Chodzi o to by podczas wyłączenia radia wyłączać też wzmacniacz za pomocą przekaźnika np. (http://kostrzewinki.pl/modul-przekaznika-systemie-domoticz/) ?
      Trzeba będzie utworzyć przełącznik wg. wpisu gdzie pisałem o przekaźnikach.
      Następnie proszę utworzyć plik np. radioff.sh a w nim:

      mpc stop
      curl -s -i -H „Accept: application/json” „http://192.168.0.15:8080/json.htm?type=command&param=switchlight&idx=300&switchcmd=Off”

      Zamiast 192.168.0.15:8080 proszę podać adres IP do Pana Domoticza
      Zamiast idx=300 proszę podać nr idx wirtualnego przełącznika, który utworzył Pan przy pomocy wpisu (http://kostrzewinki.pl/modul-przekaznika-systemie-domoticz/)

      Proszę plik zapisać i nadać mu uprawnienia za pomocą komendy:
      sudo chmod +x

      Ten skrypt powinien wyłączać radio i wyłączać wirtualny przełącznik, który odetnie prąd do wzmacniacza.

      Żeby włączyć radio trzeba będzie do skryptu z włączeniem również dodać tą linie
      curl -s -i -H „Accept: application/json” „http://192.168.0.15:8080/json.htm?type=command&param=switchlight&idx=300&switchcmd=On”
      mpc play

      Pozdrawiam

      • Zrobiłem to trochę po swojemu 🙂 Za pomocą events/ blockly w Domoticz, dopiero po wszystkim zobaczyłem, że już odpisałeś.
        Twój sposób też wypróbuje, zawsze coś nowego się przy okazji nauczę.
        Pozdrawiam.
        Super Blog, skarbnica wiedzy 😉

        • Łukasz Kostrzewa

          Witam
          To jest fajne w Domoticzu, że każdy sposób, który prowadzi do celu jest dobry:)
          Dzięki za miłe słowa
          Pozdrawiam

  12. Paweł, link działający do RmfFm (http://195.150.20.243:8000/rmf_fm)

    Jeżeli chodzi o GPIO 20:
    Ja mam ustawione na RmfFm akurat z takimi skryptami.
    Pózniej możesz zmieniac stacje.
    Włącz akcję: script:///home/pi/rmffm.sh

    Wyłącz akcję: script:///home/pi/mpcoff.sh
    pozdrawiam

  13. Łukasz, interesuje mnie fizyczny przycisk na obudowie on/off pod GPIO do radia. Poratowałbyś jakimś skryptem?
    I regulacja głośności też na fizycznych przyciskach na obudowie.
    Działa skrypt od gościa z tej str https://www.youtube.com/watch?v=9gQ3sfr4xlI,
    ale nie wiem co zrobić żeby odpalał przy starcie maliny.
    Mam w obudowie po starym dekoderze sat centralke domoticz z radyjkiem. Byłoby cacy gdyby udało sie jakoś te przyciski wykorzystać.

    pozdrawiam

    • Łukasz Kostrzewa

      Witam Serdecznie
      Jedną z metod by jakiś skrypt odpalał się przy starcie (restarcie) maliny jest odpalenie crontaba poprzez komendę:
      crontab -e
      i wpisaniu na końcu pliku:

      @reboot /home/pi/nzawaskryptu.sh

      a jak jest w pythonie to

      @reboot python /home/pi/nazwaskryptu.py

      Oczywiście katalog może być w Twoim przypadku inny niż /home/pi

      Pozdrawiam

  14. Witam mam pytanie da się zrobić w 3 pomieszczeniach osobno ?
    Kuchnia
    łazienka
    Salon
    i osobno sterować ?

    • Agnieszka Kostrzewa

      Witam
      Majac 3 rozne raspberry jak najbardziej.

      Pozdrawiam i życzę miłego dnia

  15. Witam kupiłem te samą kartę i hab usb ten sam i nie wykrywa mi karty nawet po resecie co może być nie tak ?

    • Łukasz Kostrzewa

      Witam
      Niestety nie mam pojęcia:(
      lsusb nie wyświetla karty?
      Na pewno to ta sama karta?
      Wszystko robi Pan wg instrukcji?
      Pozdrawiam

      • Witam juz radio śmiga dałem rade 🙂
        Problem mam z zrobieniem z załącza niem wzmacniacza.
        Chce sterowac z pinu raspberry pi 3 z python tak jak pan ma to opisane w innym poście ale nie chce mi to działać.

  16. Co mi brakuje w ostatniej linijce zeby startował przekaznik ?
    mpc stop
    mpc clear
    mpc add http://lodz.radio.pionier.net.pl:8000/pl/zloteprzeboje.ogg
    mpc play
    ./wzmacniaczradiaon.sh

    • Agnieszka Kostrzewa

      Zamiast wzmacnieczradiaon.sh prosze na koncu pod mpc play wpisac to co w tym pliku jest

      • Super działa bardzo dziękuje 😉

        • Agnieszka Kostrzewa

          Bardzo prosze:)

          • Teraz mi zostało jeszcze jedno potrzebuje otwierać drzwi elektromagnetyczne i zrobiłem to na arduino mega jednym z pinu w domoticz ikonka drzwi i tryb przełącznika door contact opóźnienie wyłączenia 5s i to smiga tylko muszę jakoś to połączyć z kontaktronem ponieważ jak otworze drzwi zdalnie to po 5s ikonka pokazuje ze zamknięte a zdalnie nie będę wiedział czy na pewno da się to jakoś połączyć żeby nie robić obok ikony osobnej kontaktron ?

  17. Witam ponownie, jeszcze jedna sprawa:)
    Od czego zależy jakie radio można „odpalić”/słuchać na Malinie ? Od formatu kodowania?
    Interesuje mnie stacja radiowa „Plus Legnica” https://www.legnica.fm/
    Czy tą stację da się słuchać przez Raspberry? Wiem , najłatwiej sprawdzić samemu, ale obecnie nie mam jak tego zrobić bo jestem jak zwykle w delegacji…
    Może ktoś zerknie na powyższy link i powie czy jest cień szansy na uruchomienie tej stacji…

    • Agnieszka Kostrzewa

      Witam. Szczerze powiem ze pojecia nie ma od czego to zalezy. Pewnie od odtwarzacza w RPi ale nie znam jego szczegolow. Tez niestety nie mam jak teraz sprawdzic. Pozdrawiam

Zostaw Komentarz

*