Site icon Blog Usinainfo

ESP32 Projeto Relógio OLED com Protocolo NTP

O ESP32 Projeto Relógio OLED é um dispositivo que utiliza o Protocolo de Rede NTP para sincronização de dados e obtenção de informações de tempo, como por exemplo, o horário que utilizaremos para o nosso relógio.

ESP32 Projeto Relógio OLED

Normalmente em projetos com Arduino utilizamos o tradicional Módulo RTC (Relógio de Tempo Real) que nos possibilita um controle preciso do horário, porém com a possibilidade de termos um acesso à internet, dispensamos a utilização deste módulo.

Esta talvez seja uma grande vantagem deste protocolo, porém como o Módulo RTC precisa sempre de sua bateria para a manutenção dos dados em eventuais desligamentos, o ESP32 Projeto Relógio OLED também torna-se dependente da rede de internet para isto.

No projeto iremos descobrir como acessar os dados do Servidor NTP usando o ESP32 através da IDE Arduino, assim como realizar a conexão de um Display OLED junto ao mesmo para a impressão dos dados obtidos.

 

O que é NTP?

A sigla NTP vem do inglês Network Time Protocol e é traduzido de forma literal como Protocolo de Tempo para Rede, um protocolo padrão para a sincronização dos computadores em um mesmo horário com os dados obtidos de um IP externo.

O protocolo NTP pode ser utilizado na sincronização de dispositivos em rede junto ao UTC (Tempo Universal Coordenado) dentro de alguns milissegundos. Por ser um padrão de tempo mundial, intimamente relacionado ao GMT (Horário Médio de Greenwich), o UTC não varia, é o mesmo em todo o mundo, o que muda é o fuso, veja:

Tabela de UTC com Fuso Horário Brasileiro do Protocolo NTP

O NTP define os relógios para UTC e qualquer deslocamento no fuso horário local ou deslocamento terrestre com sincronização de sinal faz com que as informações sejam atualizadas, independentemente das diferenças de localização e fuso horário.

 

Como funciona a Arquitetura NTP?

O Protocolo NTP usa uma arquitetura hierárquica que pode ser constituída por até 16 níveis, sendo que cada nível é mundialmente conhecido como estrato. No topo desta constituição hierárquica estão os dispositivos de estrato 0, os famosos relógios atômicos, responsáveis pela perfeita sincronização do tempo, uma espécie de relógio de hardware.

Modelo de Arquitetura NTP

Após feita a obtenção dos dados pelos relógios de hardware do estrato 0 temos os servidores do estrato 1, responsáveis pelo recebimento e organização dos dados, consequentemente são os dispositivos com maior precisão de tempo.

Cada estrato na hierarquia é sincronizado com o estrato acime e atua como servidor para estratos inferiores, por exemplo, o nosso ESP32 é um estrato inferior da rede UDP (Protocolo de Datagrama do Usuário), possuindo um estrato semelhante ao do computador que utilizamos.

 

Display OLED 128×64 – I2C

O Display OLED é a melhor opção para quem deseja incluir ao projeto um dispositivo com alta eficiência e resolução gráfica, um dispositivo como este garante ao ESP32 Projeto Relógio OLED a devida profissionalidade que procuramos.

Seu pequeno, mas eficiente painel monocromático disponibiliza um total de 128 pixels de largura e 64 pixels de altura, medindo 0,96” (polegadas) de diâmetro proporciona uma tela legível com alto contraste e ajuste preciso e de qualidade.

Display OLED 128×64

Como cada pixel ilumina-se individualmente, não é necessária uma luz de fundo, o que reduz significativamente a energia necessária para executar o OLED, garantindo um ângulo de visão extremamente alto e amplo com níveis profundos de preto.

Por que utilizar o Display OLED com o ESP32?

Um dos fatores que destaca a utilização em especial deste display com o ESP32 é a sua tensão de comunicação que é de 1,65 a 3,3V, afinal de contas o ESP32 possui uma linguagem de comunicação também de 3,3V.

Existe modelos de Display OLED diferentes?

Sim, além deste modelo de display OLED que possui 4 pinos, dentre eles dois de comunicação I2C e dois para alimentação, existe um modelo de Display SPI que conta com 6 pinos, quatro pinos para a comunicação SPI e dois para alimentação.

 

O que foi Utilizado no ESP32 Projeto Relógio OLED?

NodeMCU ESP32 Iot com WiFi e Bluetooth – 38 Pinos;

Cabo Micro USB 1,2m para Nodemcu ESP32;

Display OLED 0.96″ I2C 128×64;

Protoboard 400 Pontos para Montagem de Projetos;

4 Jumper para Protoboard Macho-Macho 10cm.

 

Esquema de Ligação do ESP32 Projeto Relógio OLED

O esquema de ligação do ESP32 Projeto Relógio OLED é extremamente simples uma vez que utiliza apenas dois pinos para a comunicação I2C e dois pinos para sua alimentação, para melhor compreensão segue abaixo uma tabela com o diagrama de pinos.

Esquema de pinos do ESP32

Além disto, disponibilizamos também o esquema de ligação completo com todos os componentes utilizados, veja:

Esquema de Ligação ESP32 Projeto Relógio OLED

Como vemos, não existe segredo no esquema de ligação do produto e como estamos utilizando o protocolo NTP para capturar os dados de horário, dispensamos a necessidade de um módulo RTC e assim simplificamos nosso projeto.

 

Código de Funcionamento do ESP32 Projeto Relógio OLED

Antes de darmos continuidade ao nosso ESP32 Projeto Relógio OLED precisamos nos certificar que a nossa IDE Arduino esteja pronto para a utilização deste dispositivo, caso você já o tenha utilizado antes, este procedimento não precisa ser realizado, porém caso esteja utilizando o ESP32 pela primeira vez em seu computador, veja:

ESP32 Tutorial com Primeiros Passos

Com o seu Arduino IDE pronto para programar o ESP32, vamos copiar o seguinte código e fazer algumas alterações antes de carrega-lo em nosso microcontrolador. Após o código estão especificadas as alterações necessárias.
[crayon-673f9ad984c1b907240974/]
Como mencionado anteriormente, antes de iniciarmos o upload do código é necessário fazermos algumas alterações que ele funcione normalmente, dentre elas temos:

– O nome da rede e a senha postos no código estão entre as aspas e precisam ser alterados de acordo com a rede Wi-Fi que irá utilizar para se conectar, então deve trocar NOME_DA_REDE pelo nome da sua rede e SENHA_DA_REDE pela senha da mesma, abaixo as duas linhas que precisa alterar:
[crayon-673f9ad984c27329249391/]
– O fuso horário das regiões do brasil podem se alterar assim como na tabela demonstrada acima, para isto verifique e altere se necessário, na região em que me encontro o fuso é -3, mas se for do estado de Roraima, por exemplo, deve alterar por -4, veja a linha em questão:
[crayon-673f9ad984c29287253365/]
Outros servidores NTP assim como um relógio conectado diretamente a um estrato 0 você encontra na página oficial da NTP.br, para isto CLIQUE AQUI.

Após alteradas as informações da rede Wi-Fi e verificado o fuso se de acordo com a sua região, pode-se fazer o upload normalmente.

Se tudo tiver dado certo, o seu ESP32 em instantes se conectará com a sua rede de internet Wi-Fi e já estará pronto para exibir o horário exato do local ao qual foi programado. Caso o horário não apareça, é porque o seu ESP não conseguiu se conectar com a internet então veja o seu usuário e senha de rede se está correto.

Caso o seu dispositivo carregue e o horário exibido não esteja correto, é possível que o seu microcontrolador tenha se conectado com a Internet, mas esta esteja sem sinal, ou seja, o dispositivo precisa se conectar com a internet e ela precisa estar funcionando normalmente.

 

Conclusão

O protocolo de comunicação NTP é bastante útil para quem deseja desenvolver projeto com o ESP32 e precisam do acesso ao horário para alguma coisa, como por exemplo, para quem deseja programar um relé para armar-se em algum horário específico ou até mesmo para quem deseja fazer um sistema de cadastramento de dados com referência no tempo.

Este método torna-se extremamente prático e funcional uma vez que elimina a necessidade de um módulo RTC e também simplifica o seu projeto, neste caso do ESP32 Projeto Relógio OLED, podemos incrementar adicionando um Buzzer e fazermos um despertador, por exemplo.

Diversas possibilidades podem ser exploradas em conjunto com este protocolo de comunicação, até o desenvolvimento de um relógio internacional que exibe o fuso de diversos lugares do mundo, basta escolher a biblioteca certa para isto.

Se você gostou, tem alguma sugestão ou dúvida, não esqueça de deixar o seu comentário logo a baixo, espero que tenham gostado.

Sair da versão mobile