Receptor de rádio online com Raspberry Pi 6

Rádios online não são novidade, é verdade. Porém, constituem um meio ainda fantástico de se ouvir música e notícias do mundo todo e, por que não, conhecer novas culturas também. Quando idealizadas e popularizadas, o único dispositivo que tornava possível ouvir uma rádio online era um computador. Mas os tempos mudaram e hoje é possível fazer isso até mesmo de seu smartphone. Neste artigo, será mostrado como construir seu próprio receptor de rádio online com Raspberry Pi rodando a distribuição Linux Raspbian.

Rádio On-line com Raspberry Pi

O que é necessário comprar para reproduzir o projeto?

Para fazer o projeto de rádio online com Raspberry Pi, será necessário:

No caso, a Raspberry Pi é o “cérebro” do projeto. Uma vez que o projeto estiver rodando, a rádio-online que estiver tocando no momento irá aparecer do display OLED e será possível controlar totalmente o projeto através dos 5 botões pulsantes / push-buttons. Os botões terão as seguintes funções:

  • Play/pause
  • Aumentar volume
  • Diminuir volume
  • Ir para a próxima estação
  • Voltar à estação anterior

Neste projeto de rádio online com Raspberry Pi, podem ser utilizado qualquer modelo de placa (desde que contenham conexão com a Internet), incluindo a Raspberry Pi 3 Model B e a Raspberry Pi A+ à venda em nossa loja FILIPEFLOP.

Como funciona a rádio online com Raspberry Pi?

O princípio de funcionamento deste projeto está na comunicação entre processos no Linux. Cada aplicação executada no Linux pode ser um processo (funcionamento temporário) ou serviço (funcionamento permanente), ficando a cargo do Kernel Linux gerenciar a execução dos mesmos.

O projeto deste post será um processo, o qual se comunicará com um player de mídia do Linux para tocar as rádios online, sendo este player um outro processo em execução. O player de mídia em questão é o mplayer, um player muito leve e consagrado do Linux (já testado a exaustão, com sucesso, ao longo dos anos em várias distribuições). Este player pode tocar diferentes tipos de mídia, sendo uma solução leve e elegante para quem deseja tocar mídias no Linux.

Portanto, em termos de funcionamento, o projeto aqui desenvolvido irá se comunicar com o mplayer, enviando comandos ao mesmo através de uma técnica chamada de named pipes.  Esta técnica permite que processos distintos no Linux se comuniquem / enviem mensagens uns aos outros, ficando a cargo do Kernel Linux gerenciar a transferências destas mensagens. No caso específico deste projeto, as mensagens trafegadas entre o receptor e o mplayer são os comandos que o mplayer aceita em modo slave, e são escritas e lidas em arquivos FIFO (arquivos especiais para esta finalidade) salvos no diretório /tmp. Não se preocupe com a quantidade de I/Os nesses arquivos, pois no Linux todos os arquivos FIFO são criados/mapeados em RAM!

Preparação: instalação do mplayer e escolha das rádios online

Antes de prosseguir com o projeto, é necessário instalar o mplayer. Para isto, utilize o comando abaixo:

A instalação é rápida e não ocupará muito espaço na memória.

Para a escolha das rádios online, uma das formas é carregar nele arquivos do tipo playlist (.pls) da rádio on-line desejada. Portanto, ao escolher suas rádios a serem ouvidas, procure pela playlist / endereço da playlist em formato .pls. Abaixo há alguns exemplos, todos tirados do site SHOUTCast:

  • http://yp.shoutcast.com/sbin/tunein-station.pls?id=1057392
  • http://panel3.serverhostingcenter.com:2199/tunein/radiobackstage1.pls
  • http://yp.shoutcast.com/sbin/tunein-station.pls?id=142571

Ainda, você pode testar o funcionamento do mplayer ao tocar uma rádio de sua escolha com o seguinte comando:

 

Circuito Esquemático

O circuito esquemático do projeto pode ser visto abaixo:

 Circuito Rádio on-line com Raspberry Pi

 

Código-fonte projeto Rádio online com Raspberry Pi

Veja abaixo o código-fonte do projeto!
Observação: para maiores informações das bibliotecas a serem instaladas para o funcionamento do display OLED na Raspberry Pi, veja este nosso artigo.

Copie e cole este código em um editor de texto de sua preferência (sugestão: nano) e salve o arquivo como ReceptorRadioOnlineRasp.py. Para executar o projeto, utilize o seguinte comando:

Abaixo você confere um vídeo do projeto em ação:

 

Gostou do post rádio online com Raspberry Pi? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP!

Posts Relacionados

6 Comentários

  1. TERIA COMO RODAR NUM UNO ARDUINO COM DISPLAY 1.8 TFT V1.0 SPI 128*160

    GRATO

  2. Nelson, boa tarde.

    Não seria possível por dois motivos:

    1) Somente o Arduino Uno + display não possui conectividade com a Internet.
    2) Mesmo se existisse conectividade com a Internet neste caso, o Uno não é capaz de lidar stream e decodificação de áudio.

    Atenciosamente,
    Pedro Bertoleti

  3. tem como fazer algom assim mais com Bluetooth ?
    o smart controla ele e ele so toca a radio qualquer uma ?

    1. Paulo, bom dia.

      Eu entendi que você gostaria de controlar o projeto por Bluetooth através de seu Smartphone, certo? Se sim, isso é possível ser feito (apesar de eu não ter feito algo assim ainda, não vejo impeditivo algum).

      Quanto a tocar qualquer rádio, apenas tenha um cuidado: como o artigo diz, o formato do arquivo que contém as informações de streaming (no caso deste projeto, arquivo .pls) deve ser compatível com o mplayer. Se isso for obedecido, a rádio pode ser tocada sim.

      Atenciosamente,
      Pedro Bertoleti

  4. Olá Pedro…
    Montei esse projeto e funcionou perfeitamente, muito obrigado pelo projeto e dedicação.
    Gostaria de saber como faço pra ele iniciar junto a inicialização do sistema, ou seja sempre que ligar o Raspberry o sistema já vir pronto.
    Desde já fico grato pela ajuda!

    1. Sylvio, bom dia.

      Primeiramente, muito obrigado pela leitura e pelo elogio! É um prazer saber que estou fazendo projetos que estão ajudando os makers e hobbistas.
      Para iniciar o projeto junto com a inicialização do sistema, os seguintes procedimentos devem ser feitos:

      1) No script Python do projeto (código do projeto), façaum import os.time
      2) Como primeiro comando do Programa principal, executar um delay de 30 segundos (time.sleep(30)).
      Motivo: se isto não for feito, há grandes chances do script tentar usar a rede quando a mesma ainda não estiver conectada, podendo causar o fechamento “prematuro” do script ( = fechar antes mesmo de tocar alguma cosia).
      3) Siga os passos do site https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/ para inicializar o script no boot através do método do rc.local.

      Atenciosamente,
      Pedro Bertoleti

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *