Quantcast
Channel: MakerHero
Viewing all articles
Browse latest Browse all 416

Acompanhe o Brasileirão com ESP8266

$
0
0

O Campeonato Brasileiro Série A começa no próximo sábado, dia 15/04. E para celebrar esse início de umas das maiores competições nacionais, desenvolvemos um projeto utilizando uma Placa WeMos D1 R1 Wifi para você acompanhar os jogos do brasileirão com ESP8266 em tempo real através de uma API.

Nesse projeto é possível visualizar através de um display LCD:

  1. Os jogos que irão ocorrer naquele dia
  2. Horário dos jogos
  3. Placar em tempo real
  4. Alerta visual e sonoro em caso de gol
  5. Alerta visual caso a partida tenha terminado

O intuito dessa aplicação é fazer o usuário poder acompanhar em tempo real com atualização constante (média de 6 segundos por partida) o jogo do seu time ou dos times que estão disputando posições semelhantes na tabela. Bastando apenas o dispositivo estar conectado a uma rede WiFi.

Para os assinantes da HeroBox que possuíam assinatura no período da copa, é possível aproveitar a HeroBox 24, bastando apenas gravar o novo código referente ao Brasileirão 2023.

Materiais Necessários

Segue abaixo a lista de componentes utilizados para essa aplicação:

Esquemático Eletrônico

Segue abaixo o circuito eletrônico para esse projeto:

 

Esquemático eletrônico: Projeto Brasileirão com ESP8266
Esquemático eletrônico: Projeto Brasileirão com ESP8266

Programação

Segue abaixo o passo a passo para a programação do WeMos D1 R1 WiFi:

Preparação da Arduino IDE – Placa WeMos D1 R1 WiFi

Para essa aplicação, iremos utilizar a IDE da Arduino. Para isso, precisamos instalar algumas bibliotecas:

Primeiramente, vá em Arquivo > Preferências e no campo “URLs Adicionais para Gerenciadores de Placas” cole o link abaixo.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Arquivo > Preferências
Arquivo > Preferências
URLs Adicionais para Gerenciadores de Placas
URLs Adicionais para Gerenciadores de Placas

Após isso, vá em Ferramentas > Placa > Gerenciador de Placas e busque por esp8266.

IMPORTANTE: Faça instalação da versão 2.7.4 !

Ferramentas > Placa > Gerenciador de Placas
Ferramentas > Placa > Gerenciador de Placas
Gerenciador de Placas
Gerenciador de Placas

Feito isso, vá novamente em Ferramentas > Placas e selecione ESP8266 Boards e depois WeMos D1 R1 (Ou LOLIN (WeMos) D1 R1).

Ferramentas > Placas > ESP8266 Boards > WeMos D1 R1 (Ou LOLIN (WeMos) D1 R1).
Ferramentas > Placas > ESP8266 Boards > WeMos D1 R1 (Ou LOLIN (WeMos) D1 R1).

Bibliotecas adicionais

Precisamos instalar algumas bibliotecas adicionais. Para isso, vá em Ferramentas > Gerenciar de Bibliotecas.

Ferramentas > Gerenciar de Bibliotecas
Ferramentas > Gerenciar de Bibliotecas

Busque por Arduino Json e clique em instalar.

Instalando a Biblioteca Arduino Json
Instalando a Biblioteca Arduino Json
Instalando a Biblioteca U8G2
Instalando a Biblioteca U8G2
NTPClient
Instalando a Biblioteca NTPClient

Código

Você pode fazer o download do código no seguinte link: Código Brasileirão com ESP8266

No código, precisamos alterar três informações. A primeira delas é o nome da rede WiFi que o dispositivo estará conectado. O nome deve ser inserido dentro das aspas. Depois é necessário inserir a senha da rede WiFi, também dentro das aspas:

// informações da rede WiFi
const char *ssid     = "Nome-da-rede";
const char *password = "senha-da-rede";

E por último a chave da API.

IMPORTANTE:Utilize uma rede 2.4 GHz. Pois o ESP8266 não consegue conectar com rede 5 GHz !

Para finalizar, precisamos inserir a chave API no código. Para obter a chave, no seu navegador, busque por football-data.org e clique em Get started.

Página inicial do site football-data.org
Página inicial do site football-data.org

Insira seu nome, e-mail escolha C#/. NET. Aceite os termos de uso e clique em Create account.

Cração de conta no football-data.org
Cração de conta no football-data.org

Após isso, você deve receber um e-mail confirmando a criação da sua conta. No seu e-mail procure por “Your API Token” e copie o código com letras e números que estará após os dois pontos.

// Informações sobre a API football-data.org
#define API_KEY "INsira-Aqui-Sua-API-KEY"

Por fim, conecte a placa Wemos D1 R1 no seu computador usando o cabo USB. Vá em Ferramentas > Porta e selecione a porta que a placa está conectada.

Seleção de porta na Arduino IDE
Seleção de porta na Arduino IDE

Feito isso, clique no botão Carregar e aguarde o processo ser finalizado (Não é necessário apertar botões para carregar o código).

Funcionamento – Atualização dos jogos

Uma vez por dia o sistema faz o download por meio da API e seleciona os jogos que irão ocorrer naquele dia. Esse download leva em média 45 minutos.

O download é feito de duas formas:

  1. Em horário pré determinado – Se o sistema ficar ligado 24hrs por dia, o download ocorre todo dias às 02:30 da madrugada (devido ao fato de não costumar ter jogo nesse horário)
  2. Ao ligar- Ou, toda vez que o sistema é energizado/ligado.

Caso o usuário opte por desligar o sistema todo dia, deve-se levar em consideração que, ao ligar, o mesmo irá demorar aproximadamente 45 minutos para mostrar os jogos daquele dia. 

Tela de download de jogos: Projeto Brasileirção com ESP8266
Tela de download de jogos: Projeto Brasileirão com ESP8266

Acompanhamento dos jogos em tempo real

Após feito o download dos jogos, caso haja ao menos um jogo, o sistema irá mostrar os times da rodada, placar (caso o jogo esteja finalizado ou em andamento), status da partida (se o jogo finalizou, ficará escrito (FIM)),  horário e irá avisar caso algum time faça um gol.

O tempo de atualização dos placares depende da quantidade de jogos que há no dia. Exemplos: 1 jogo = 6 segundos, 3 jogos = 18 segundos, 6 jogos = 36 segundos e etc.

Jogos de hoje no projeto: Projeto Brasileirão com ESP8266
Jogos de hoje no projeto: Projeto Brasileirão com ESP8266
Tela de gol do projeto Brasileirão com ESP8266
Tela de gol do projeto Brasileirão com ESP8266

E em dias que não há jogos?

Em dias em que não há jogos, o usuário poderá alternar a tela entre três opções: logo do Brasileirão, relógio grande e tela mostrando que não há jogos hoje. Para alterar as telas, utilize o analógico para a esquerda ou para a direita.

 

Observações finais

  • Se o display ficar mostrando “Tentando conectar…” por muito tempo, significa que o dispositivo não está conseguindo conectar com a rede WiFi. Caso isso ocorra, confirme se a rede e senha foram digitados corretamente e se a rede é 2.4 GHz. O ESP8266 não consegue conectar em redes 5 GHz.
  • Não é previsto que em nenhuma parte do código o display fique sem informação escrita (em branco/azul). Portanto, caso isso ocorra, verifique se há algum erro de ligação. Outra sugestão é verificar o ajuste de contraste com o trimpot que fica na parte traseira do display. 
  • A API que fornece as informações dos jogos possui, no plano gratuito, uma limitação de até 10 requisições por minuto. Visto isso,  o tempo de download de cada jogo deve ser de no mínimo 6 segundos. Caso sejam feitas 11 ou mais requisições no intervalo de 1 minuto, a API dá erro, o que pode comprometer o funcionamento do código. Isso justifica o tempo inicial de download dos 380 jogos ser aproximadamente 40 minutos. Lembrando que esse tempo é apenas uma vez por dia, às 02:30 da madrugada. O acompanhamento dos gols em tempo real demora no máximo 1 minuto.
  • É possível utilizar o mesmo código para outros campeonatos com rodadas de pontos corridos? Sim, porém, será necessário modificar a ID inicial (“int id” no código) com os códigos do outro campeonato. Além de alterar o limite de “i” no “for” da “void update” conforme a quantidade máxima de jogos. E por último, deve-se modificar os nomes no void “baixar_times_rodada”.

Ficou animado com esse projeto? Conta para nós nos comentários. E não esqueça de nos seguir no Instagram para ficar por dentro de todas as novidades do universo Maker 😉

O post Acompanhe o Brasileirão com ESP8266 apareceu primeiro em MakerHero.


Viewing all articles
Browse latest Browse all 416