Segue o código:
Code: Select all
import RPi.GPIO as GPIO
import os
from subprocess import Popen
import Adafruit_CharLCD as LCD
import atexit
from time import sleep
import random
GPIO.setmode(GPIO.BCM)
# Pinos LCD x Raspberry (GPIO)
lcd_rs = 23
lcd_en = 24
lcd_d4 = 12
lcd_d5 = 16
lcd_d6 = 20
lcd_d7 = 21
lcd_backlight = 4
# Define numero de colunas e linhas do LCD
lcd_colunas = 16
lcd_linhas = 2
# Inicializa o LCD nos pinos configurados acima
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5,
lcd_d6, lcd_d7, lcd_colunas, lcd_linhas,
lcd_backlight)
# Define os botoes (BCM)
CHANNEL_UP = 3 #GPIO3
CHANNEL_DW = 2 #GPIO2
# Define as matrizes das playlists
nomeradio = []
cidade = []
radiourl = []
radioinicial = 1
nomeradio.append("Globo FM RJ")
cidade.append("Rio de Janeiro")
radiourl.append("http://stream.sgr.globo.com/hls/aRGloboRJ/aRGloboRJ.m3u8")
nomeradio.append("Globo AM")
cidade.append("Juiz de Fora")
radiourl.append("http://r13.ciclano.io:8366/stream.aac?1559573868261")
nomeradio.append("Eldorado FM")
cidade.append("Sao Paulo")
radiourl.append("https://estadaohls-lh.akamaihd.net/i/estadaohls_1@301351/index_200_a-p.m3u8?sd=10&rebase=on")
nomeradio.append("Radio Cultura")
cidade.append("Sao Paulo")
radiourl.append("http://200.136.27.16:8001/stream/1/")
nomeradio.append("Inconfidencia AM")
cidade.append("Belo Horizonte")
radiourl.append("http://192.99.227.251:7050/;")
nomeradio.append("Radio Iatatiaia")
cidade.append("Belo Horizonte")
radiourl.append("http://8903.brasilstream.com.br:8903/stream")
nomeradio.append("Radio Record AM")
cidade.append("Sao Paulo")
radiourl.append("http://stm2.xcast.com.br:9262/stream?1559574548787")
nomeradio.append("Radio Capital")
cidade.append("Sao Paulo")
radiourl.append("https://audio.capitalcomvoce.com.br/capital?1559574704497")
nomeradio.append("Radio Tupi")
cidade.append("Rio de Janeiro")
radiourl.append("http://189.112.0.43:8000/stream/1/")
nomeradio.append("CBN SP")
cidade.append("Sao Paulo")
radiourl.append("https://stream.sgr.globo.com/hls/aCBNSP/aCBNSP.m3u8")
nomeradio.append("Jovem Pan News")
cidade.append("Sao Paulo")
radiourl.append("https://19293.live.streamtheworld.com/JP_NEWSAAC.aac")
nomeradio.append("Tribuna FM")
cidade.append("Vitoria")
radiourl.append("http://cast.midiaip.com.br:6060/stream?1506557548760")
nomeradio.append("BandNews FM")
cidade.append("Sao Paulo")
radiourl.append("http://evpp.mm.uol.com.br/band/bandnewsfm_sp/chunklist_w1028856076.m3u8")
nomeradio.append("BandNews BH")
cidade.append("Belo Horizonte")
radiourl.append("http://evpp.mm.uol.com.br/band/bandnewsfm_bh/chunklist_w1604310346.m3u8")
nomeradio.append("Bandeirantes")
cidade.append("Campinas")
radiourl.append("http://streaming.mobradio.com.br:8002/live.aac")
nomeradio.append("Radiopatos AM")
cidade.append("Patos de Minas")
radiourl.append("http://stm1.painelcast.com:7048")
nomeradio.append("Clube Patos AM")
cidade.append("Patos de Minas")
radiourl.append("http://srv05.brasilstream.com.br:9061/mp3?type=.mp3")
nomeradio.append("Montanhesa FM")
cidade.append("Vazante")
radiourl.append("http://wz1.dnip.com.br/montanheza/montanheza.stream/chunklist_w1457849555.m3u8")
nomeradio.append("Alvorada")
cidade.append("Belo Horizonte")
radiourl.append("https://20323.live.streamtheworld.com/RADIO_ALVORADAAAC_SC")
nomeradio.append("Cultura")
cidade.append("Pocos de Caldas")
radiourl.append("http://caikron.com.br:7020/stream/1/")
nomeradio.append("Ribeirao 79 AM")
cidade.append("Ribeirao Preto")
radiourl.append("http://m3.fabricahost.com.br:8100/;")
nomeradio.append("Cidade")
cidade.append("Mogi das Cruzes")
radiourl.append("http://stm3.sateg.com.br:29234/;")
nomeradio.append("Glogo AM")
cidade.append("Sao Carlos")
radiourl.append("http://servidor39.brlogic.com:8190/live")
nomeradio.append("Bom Jesus FM")
cidade.append("Ribeirao Bonito")
radiourl.append("http://servidor20.dnip.com.br:8530/")
nomeradio.append("Vitoriosa AM")
cidade.append("Lagoa Formosa")
radiourl.append("http://stream.radiovitoriosa.com.br:8044//;stream.mp3")
nomeradio.append("Juriti AM")
cidade.append("Paracatu")
radiourl.append("http://streaming22.hstbr.net:8316/live")
nomeradio.append("Difusora AM")
cidade.append("Patrocinio")
radiourl.append("http://srv01.brasilstream.com.br:8026/mp3")
nomeradio.append("Gazeta")
cidade.append("Sao Paulo")
radiourl.append("http://servidor1a.crossdigital.com.br:9552/1")
nomeradio.append("Dourado FM")
cidade.append("Dourado")
radiourl.append("http://euroticast5.euroti.com.br:8044/;stream/1")
nomeradio.append("Calhambeque")
cidade.append("Internet")
radiourl.append("http://198.100.146.218:7096//;stream.mp3")
# Rotina de saida
def finish():
lcd.clear()
lcd.cursor_pos = (0, 3)
lcd.message("Parando...")
exec_command("service mpd stop")
GPIO.cleanup()
print("Radio parado")
atexit.register(finish)
# Executa system command sub-routine
def exec_command(cmd):
result = ""
p = os.popen(cmd)
for line in p.readline().split('\n'):
result = result + line
return result
### Rotina principal ###
if __name__ == "__main__":
GPIO.setmode(GPIO.BCM)
GPIO.setup(CHANNEL_UP,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(CHANNEL_DW,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
lcd.clear()
lcd.message("Conectando...")
exec_command("service mpd start")
exec_command("mpc clear")
sleep(1)
for i in range(len(nomeradio)-1): #adiciona as playlists ao mpc
exec_command("mpc add " + radiourl[i])
radioinicial = random.randint(0, len(nomeradio)-1) #sorteia, dentro da matriz contendo as playlists (comeca em 0), uma das radios
no_RadioTocando = radioinicial + 1 #A radio que esta tocando e o indice da matriz +1
max_pls_no = len(nomeradio) #variavel que contem o numero de playlists carregadas
exec_command("mpc play " + str(no_RadioTocando)) #toca a radio sorteada
exec_command("mpc volume 90") #poe o volume em 90%
current = exec_command("mpc current")
print "Tocando... " + current #mostra no terminal qual esta tocando
print nomeradio[radioinicial]
print "press CTRL + C to stop"
# Atualiza o LCD com o nome da radio que esta tocando
lcd.clear()
lcd.message(nomeradio[no_RadioTocando - 1]) #Escreve a primeira linha (nome da radio)
lcd.message('\n') #Passa pra linha de baixo
lcd.message(cidade[no_RadioTocando - 1]) #Escreve a cidade
while True: #Repete tudo isso daqui
sleep(0.1) #pra nao usar toda a CPU
MudouEstacao = False #Ainda nao mudou a estacao
if GPIO.input(CHANNEL_UP): #Se apertar o botao pra subir uma estacao:
no_RadioTocando += 1 #incrementa o indice
if no_RadioTocando > 30: #Testa se passou da ultima estacao da lista
no_RadioTocando = 1 #se sim vai pra primeira da playlist
exec_command("sudo service mpd restart")
exec_command("mpc play " + str(no_RadioTocando)) #e toca ela
MudouEstacao = True #Avisa la que mudou de estacao!
if GPIO.input(CHANNEL_DW): #Se apertar o botao para descer a estacao:
no_RadioTocando -= 1 #decrementa o indice
if no_RadioTocando < 1: #Testa se chegou abaixo da primeira da lista
no_RadioTocando = 30 #se sim passa pra ultima
exec_command("sudo service mpd restart")
exec_command("mpc play " + str(no_RadioTocando)) #e toca ela
MudouEstacao = True #Avisa la que mudou de estacao tambem!
if MudouEstacao: #Se a estacao mudou, atualiza o LCD e o terminal
lcd.clear()
lcd.message(nomeradio[no_RadioTocando - 1]) #Escreve a primeira linha (nome da radio)
lcd.message('\n') #Passa pra linha de baixo
lcd.message(cidade[no_RadioTocando - 1]) #Escreve a cidade
print "Tocando... " #mostra no terminal qual esta tocando
print nomeradio[no_RadioTocando - 1]
print cidade[no_RadioTocando - 1]
sleep(0.2)
Code: Select all
pi@raspberrypi:~ $ cd Desktop
pi@raspberrypi:~/Desktop $ sudo python Radio.py
sh: 1: stream.mp3: not found
sh: 1: stream/1: not found
Tocando... http://srv05.brasilstream.com.br:9061/mp3?type=.mp3
Clube Patos AM
press CTRL + C to stop
Tocando...
Clube Patos AM
Patos de Minas
Tocando...
Clube Patos AM
Patos de Minas
Tocando...
Clube Patos AM
Patos de Minas
Tocando...
Clube Patos AM
Patos de Minas
O que eu fiz de errado? Que adaptação temos que fazer para migrar do Pi 3B para o Zero?