Índice:
- Etapa 1: Obtenha todas as peças
- Etapa 2: Placa ESP32
- Etapa 3: decodificador de MP3
- Etapa 4: Nextion Display
- Etapa 5: Conectando todas as peças
- Etapa 6: O Código do Projeto
- Etapa 7: Considerações Finais e Melhorias
Vídeo: Rádio na Internet usando um ESP32: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Caros amigos bem vindos a mais um Instructable! Hoje vamos construir um dispositivo de rádio da Internet com uma grande tela de 3,5”usando uma placa ESP32 barata. Acredite ou não, agora podemos construir um rádio na Internet em menos de 10 minutos e com menos de $ 30. Há muito o que abordar, então vamos começar!
Há alguns meses, concluí um projeto do Arduino FM Radio que funciona muito bem e parece ainda melhor na minha opinião. Se você quiser ver como construí este projeto, você pode ler o Instructable aqui. O problema é que, embora esse rádio pareça legal, não é prático porque moro em uma pequena cidade no sul da Grécia e as grandes rádios gregas que prefiro ouvir não têm transmissores por aqui. Por isso, ouço as minhas rádios preferidas online no meu portátil ou tablet pc, o que também não é muito prático. Então, hoje vou construir um dispositivo de rádio na Internet para poder ouvir minhas rádios favoritas de todo o mundo!
Como você pode ver, uma primeira versão do projeto está pronta em um breadboard. Vamos ligar. Como você pode ver, o projeto se conecta à Internet e, em seguida, transmite música de estações de rádio predefinidas.
Sintonizei a estação de rádio Real FM de Atenas e usando esses botões podemos mudar a estação de rádio que estamos ouvindo. Salvei minhas estações de rádio favoritas na memória do ESP32 para poder acessá-las facilmente. Com este potenciômetro, posso alterar o volume do alto-falante. Eu exibo o nome da estação de rádio que estamos ouvindo em um grande display de 3,5”com uma interface de usuário retro. O projeto funciona bem e é muito fácil de construir.
Você pode construir o mesmo projeto em menos de 10 minutos, mas precisa ter alguma experiência. Se este é seu primeiro projeto, considere construir um mais simples primeiro, para ganhar alguma experiência. Verifique meus Instructables para ideias de projetos simples e quando você estiver mais confortável com o Arduino, a eletrônica volta para construir este projeto legal. Vamos agora começar a construir nosso próprio rádio na Internet.
ATUALIZAÇÃO 2019-06-06
O problema de ruído foi resolvido adicionando um transformador isolador. Confira o diagrama semântico atualizado. Obrigado!
Etapa 1: Obtenha todas as peças
Vamos precisar das seguintes peças:
- ESP32 ▶
- Decodificador de MP3 ▶
- Isolation Transformer ▶
- Amplificador ▶
- Alto-falante 3W ▶
- Display Nextion de 3,5 "▶
- Botões de pressão ▶
- Breadboard ▶
- Wires ▶
O custo total do projeto é de cerca de 40 $, mas se você não usar um display, o custo do projeto é de cerca de 20 $. Coisas incríveis. Podemos construir nossa própria rádio na Internet com apenas 20 $!
Etapa 2: Placa ESP32
O coração do projeto é, obviamente, a poderosa placa ESP32. Se você não estiver familiarizado com ele, o chip ESP32 é o sucessor do chip ESP8266 popular que usamos muitas vezes no passado. O ESP32 é uma fera! Ele oferece dois núcleos de processamento de 32 bits que operam a 160 MHz, uma enorme quantidade de memória, WiFi, Bluetooth e muitos outros recursos com um custo de cerca de 7 $! Coisas incríveis!
Por favor, assista à análise detalhada que preparei para este fórum. Anexei o vídeo neste Instructable. Isso ajudará a entender por que esse chip mudará a maneira como fazemos as coisas para sempre! Uma das coisas mais interessantes sobre o ESP32 é que, embora seja tão poderoso, ele oferece um modo de hibernação que requer apenas 10μΑs de corrente. Isso torna o ESP32 o chip ideal para aplicações de baixo consumo de energia.
Neste projeto, a placa ESP32 se conecta à Internet e depois recebe os dados MP3 da estação de rádio que estamos ouvindo e envia alguns comandos para o display.
Etapa 3: decodificador de MP3
Os dados MP3 são então enviados para o módulo decodificador de MP3 usando a interface SPI. Este módulo usa o IC VS1053. Este IC é um decodificador de MP3 de hardware dedicado. Ele obtém os dados MP3 do ESP32 e os converte muito rápido em um sinal de áudio.
O sinal de áudio que ele produz neste conector de áudio é fraco e barulhento, portanto, precisamos eliminá-lo do ruído e amplificá-lo. (Se você estiver usando fones de ouvido, o sinal não precisa ser eliminado do ruído ou amplificado.) É por isso que estou usando um transformador de isolamento para limpar o áudio do ruído e um amplificador de áudio PAM8403 para amplificar o sinal de áudio e enviá-lo para um alto-falante. Também conectei dois botões ao ESP32 apenas para alterar o fluxo de MP3 do qual estamos obtendo dados e um display Nextion para exibir a estação de rádio que estamos ouvindo.
Etapa 4: Nextion Display
Escolhi usar um display Nextion para este projeto, pois é muito fácil de usar. Só precisamos conectar um fio para controlá-lo.
Os visores Nextion são novos tipos de visores. Eles têm seu próprio processador ARM na parte traseira, que é responsável por conduzir o display e criar a interface gráfica do usuário. Assim, podemos usá-los com qualquer microcontrolador e obter resultados espetaculares. Eu preparei uma revisão detalhada deste display Nextion que explica em detalhes como eles funcionam, como usá-los e suas desvantagens. Você pode ler aqui ou assistir ao vídeo em anexo.
Etapa 5: Conectando todas as peças
Tudo o que temos que fazer agora é conectar todas as partes de acordo com este diagrama esquemático. Você pode encontrar o diagrama esquemático anexado aqui. A conexão é direta.
No entanto, há duas coisas a serem observadas. O módulo decodificador de MP3 emite um sinal estéreo, mas estou usando apenas um canal de áudio neste projeto. Para obter o sinal de áudio, conectei um cabo de áudio ao conector de áudio do módulo e o cortei para revelar quatro fios internos. Eu conectei dois dos fios. Um deles é o GND e o outro é o sinal de áudio de um dos dois canais de áudio. Se desejar, você pode conectar os dois canais ao módulo amplificador e acionar dois alto-falantes.
Cada canal de áudio deve passar pelo transformador de isolamento para limpar qualquer ruído presente antes de conectar ao amplificador
Para enviar dados ao display, só precisamos conectar um fio ao pino TX0 do ESP32. Depois de conectar as partes, temos que carregar o código para o ESP32, e temos que carregar a GUI para o display do Nextion.
Para carregar a GUI para o display do Nextion, copie o arquivo InternetRadio.tft que vou compartilhar com você para um cartão SD vazio. Coloque o cartão SD no slot de cartão SD na parte de trás da tela. Em seguida, ligue o monitor e a GUI será carregada. Em seguida, remova o cartão SD e conecte a alimentação novamente.
Depois de carregar o código com sucesso, vamos ligar o projeto. Ele exibe o texto “Conectando…” por alguns segundos no visor. Depois de se conectar à Internet, o projeto se conecta a uma estação de rádio predefinida. O hardware está funcionando conforme o esperado, mas agora vamos ver o lado do software do projeto.
Etapa 6: O Código do Projeto
Em primeiro lugar, deixe-me mostrar uma coisa. O código do projeto tem menos de 140 linhas de código. Pense nisso, podemos construir um Internet Radio com um display de 3,5”com 140 linhas de código, isso é incrível. Podemos conseguir tudo isso usando várias bibliotecas, é claro, que contêm milhares de linhas de código. Este é o poder do Arduino e da comunidade de código aberto. Facilita as coisas para os criadores.
Neste projeto, estou usando a biblioteca VS1053 para a placa ESP32.
Em primeiro lugar, temos que definir o SSID e a senha da rede wi-fi. Em seguida, temos que salvar algumas estações de rádio aqui. Precisamos da URL do host, o caminho onde o stream está localizado e a porta que precisamos usar. Salvamos todas essas informações nessas variáveis.
char ssid = "seuSSID"; // SSID da sua rede (nome) char pass = "yourWifiPassword"; // sua senha de rede
// Poucas estações de rádio
char * host [4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char * path [4] = {"/ 1", "/ ert-kosmos", "/ realfm", "/ skai1003"}; porta interna [4] = {8062, 80, 80, 80};
Incluí 4 estações de rádio neste exemplo.
Na função de configuração, colocamos interrupções nos botões, inicializamos o módulo decodificador de MP3 e nos conectamos ao Wi-Fi.
void setup () {
Serial.begin (9600); atraso (500); SPI.begin ();
pinMode (previousButton, INPUT_PULLUP);
pinMode (nextButton, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);
attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }
Na função de loop, em primeiro lugar, verificamos se o usuário selecionou uma estação de rádio diferente daquela da qual estamos recebendo os dados. Nesse caso, nos conectamos à nova estação de rádio, senão pegamos dados do stream e os enviamos para o módulo decodificador de MP3.
void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}
Isso é tudo! Quando o usuário pressiona um botão, ocorre uma interrupção e altera o valor de uma variável que informa a qual fluxo se conectar.
void IRAM_ATTR previousButtonInterrupt () {
estático não assinado long last_interrupt_time = 0;
longo interrupt_time sem sinal = millis (); if (interrupt_time - last_interrupt_time> 200) {if (radioStation> 0) radioStation--; senão radioStation = 3; } last_interrupt_time = interrupt_time; }
Para atualizar o display, simplesmente enviamos alguns comandos para a porta serial.
void drawRadioStationName (int id) {comando String; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (comando); endNextionCommand (); pausa; // 1940 UK Radio case 1: command = "p1.pic = 3"; Serial.print (comando); endNextionCommand (); pausa; // Caso 2 do KOSMOS GREK: command = "p1.pic = 4"; Serial.print (comando); endNextionCommand (); pausa; // Caso 3 REAL FM GREGO: command = "p1.pic = 5"; Serial.print (comando); endNextionCommand (); pausa; // SKAI 100,3 GREGO}}
Agora, vamos dar uma olhada na GUI da tela do Nextion. O Nextion GUI consiste em uma imagem de fundo e uma imagem que exibe o nome da estação de rádio. A placa ESP32 envia comandos para alterar o nome da estação de rádio a partir das imagens incorporadas. Isso é muito fácil. Por favor, assista ao tutorial de exibição do Nextion que preparei há algum tempo para obter mais informações. Você pode criar rapidamente sua própria GUI se desejar e exibir mais coisas nela.
Como sempre, você pode encontrar o código do projeto anexado neste Instructable.
Etapa 7: Considerações Finais e Melhorias
Este projeto é muito simples. Eu queria um esqueleto simples de projeto de rádio na Internet para trabalhar. Agora que a primeira versão do projeto está pronta, podemos adicionar muitos recursos para melhorá-la. Em primeiro lugar, preciso projetar um gabinete para abrigar todos os componentes eletrônicos.
Neste livro sobre os rádios mais bonitos já feitos, há rádios muito legais para escolher como um gabinete para este projeto. Acho que vou construir um recinto em torno deste rádio Art Déco espetacular. O que você acha, gosta do visual dessa rádio ou prefere algo mais moderno? Você tem alguma outra ideia de gabinete? Além disso, você gosta deste projeto de Rádio na Internet e quais recursos acha que precisamos adicionar a ele para torná-lo mais útil? Eu adoraria ler seus pensamentos e idéias, por favor, poste-os na seção de comentários abaixo.
Recomendado:
Automação residencial controlada por Internet / nuvem usando Esp8266 (aREST, MQTT, IoT): 7 etapas (com imagens)
Automação residencial controlada por Internet / nuvem usando Esp8266 (aREST, MQTT, IoT): TODOS os créditos para http://arest.io/ pelo serviço em nuvem !! IoT o assunto mais discutido no mundo agora !! Servidores e serviços em nuvem que tornam isso possível são o ponto de atração do mundo de hoje … ELIMINAR A BARREIRA DE DISTÂNCIA foi e é o
Controle conduzido em todo o mundo usando Internet usando Arduino: 4 etapas
Controle conduzido em todo o mundo usando Internet usando Arduino: Olá, sou Rithik. Vamos fazer um led controlado pela internet usando seu telefone. Vamos usar softwares como Arduino IDE e Blynk. É simples e se você conseguiu, pode controlar quantos componentes eletrônicos quiser. Coisas que precisamos: Hardware:
Como fazer um drone usando o Arduino UNO. Faça um quadricóptero usando um microcontrolador: 8 etapas (com imagens)
Como fazer um drone usando o Arduino UNO. Faça um Quadcopter Usando Microcontrolador: IntroduçãoVisite Meu Canal do YoutubeUm Drone é um gadget (produto) muito caro para comprar. Neste post irei discutir, como faço isso mais barato ?? E como você pode fazer seu próprio assim a um preço barato … Bem, na Índia, todos os materiais (motores, ESCs
Rádio-controle RF 433MHZ usando HT12D HT12E - Fazendo um controle remoto Rf usando HT12E e HT12D com 433 MHz: 5 etapas
Rádio-controle RF 433MHZ usando HT12D HT12E | Fazendo um controle remoto Rf usando HT12E e HT12D com 433 mhz: Neste instrutível, vou mostrar como fazer um controle remoto RADIO usando o módulo receptor transmissor 433 mhz com codificação HT12E & IC decodificador HT12D. Neste instrutível, você poderá enviar e receber dados usando COMPONENTES muito baratos, COMO: HT
Rádio na Internet / Rádio na Web com Raspberry Pi 3 (sem cabeça): 8 etapas
Rádio na Internet / Rádio na Web com Raspberry Pi 3 (sem cabeça): HI Você quer sua própria hospedagem de Rádio na internet então você está no lugar certo. Vou tentar elaborar o máximo possível. Eu tentei várias maneiras, a maioria deles precisava de uma placa de som que eu estava relutante em comprar. mas conseguiu fi