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:
- Os jogos que irão ocorrer naquele dia
- Horário dos jogos
- Placar em tempo real
- Alerta visual e sonoro em caso de gol
- 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:
- WeMos D1 R1 WiFi ESP8266
- Display LCD Gráfico 128×64
- Barra de Pinos 1×40 180 Graus
- Joystick Arduino 3 Eixos
- Motor de Vibração 1027
- Fonte 5V micro-usb
- Jumpers Macho-Fêmea
- Cola quente para fixação dos componentes
Esquemático Eletrônico
Segue abaixo o circuito eletrônico para esse projeto:

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


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 !


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

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

Busque por Arduino Json e clique em instalar.



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.

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

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.

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:
- 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)
- 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.

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.


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.