ESP32

Como pegar hora da Internet com ESP32 (e ESP8266?)

Esse artigo de como pegar hora da Internet com ESP32 não é nada complexo nem elaborado e é baseado em um sketch, mas acho bom escrever a respeito para não perder tempo com isso quando estiver implementando o recurso no Cuco  para fazer o ajuste de hora buscando a informação na Internet (as peças de correção e mais 2 relógios cuco completos chegam em mais um ou dois dias).

Bem, tendo em mente que o relógio só precisa se conectar à Internet caso o ajuste de hora deva ser feito de forma automática, após pegar a hora ele não precisará mais ficar online. Mas se quisermos, por exemplo, escolher o som do cuco, do sino e intervalo de toque (veremos detalhes sobre tudo isso no artigo correspondente), pode ser bom mantê-lo disponível no modo AP. Vamos focar exclusivamente em buscar a hora na Internet e imprimir na serial.

Configurar WiFi no ESP32

Tem duas maneiras de fazer. Acredito que as pessoas quase sempre preferem o caminho mais simples, mas tem o jeito ESP-IDF de fazer. Vou começar por ele e depois mostro o mais simples, que será o utilizado no sketch de exemplo.

ESP-IDF

Fora de loop() e setup(), crie essa função com o nome que desejar. A primeira linha da função inicializa o adaptador, então a segunda linha checa por erros, que seriam exibidas na serial.

Na terceira linha pega-se as configurações padrão, então as 3 linhas posteriores exibem os erros, caso ocorram durantes os processos:

  • Inicialização do wifi, utilizando as configurações padrão.
  • Modo de inicialização – no caso, station (poderia ser AP).
  • Inicia  a conexão.

A última linha exibe na serial a mensagem de ok. Mas não vou mostrar como configurar a UART com recursos nativos do ESP-IDF, tem outros artigos explicando isso, é só clicar em ESP32 no menu aí em cima da página.

Basta chamar essa função em setup() para suceder a conexão.

Arduino API

Agora vamos do jeito fácil.

Eu não faço questão de decorar, só fiz questão de aprender, compreender. Portanto, quando não lembro tudo de cabeça, recorro às minhas próprias referências e, sendo assim, sempre prefiro usar o modo do ESP-IDF.

Pegar hora da Internet com ESP32

Alguns parâmetros precisa ser ajustados, mas a quantidade de código para pegar a hora é insignificante.

Primeiro, incluímos a biblioteca time.h e declaramos as variáveis com o nome do servidor ntp (os servidores ntp são serviços para sincronização de hora em servidores de uma estrutura – e serve também para qualquer outro computador). Em seguida,  gmtOffset_sec em 0 (veremos outra hora) e então daylightOffset_sec em -3:00. Cada hora tem 3600 segundos e o horário é baseado em GMT (Greenwich Meridian Time – ou, Meridiano de Greenwich), Como estamos à esquerda do Meridiano e temos mais de um fuso (porque vamos de -2:00 à -5:00 e temos horário de verão em algumas regiões), devemos subtrair o número de horas em relação ao ponto 0, conforme a região do país e época do ano em que estivermos.

Depois temos a função printLocalTime, apenas para exibir o resultado formatado. Em setup(), ela é chamada depois de configTime(), que faz a busca no servidor conforme descrito acima.

Código completo para pegar hora da Internet com ESP32

O código completo para testes é esse, lembre-se apenas de ajustar o fuso e o login da sua rede WiFi. A desconexão é feita após pegar a hora, mas se quiser utilizar para outro propósito, apenas remova-a.

Quase nada de código para pegar hora da internet com esp32, hum? Mas no cuco o trabalho vai além. Bem além, espero que acompanhe os próximos artigos!

Pegar hora da Internet com ESP32

Siga-nos no Do bit Ao Byte no Facebook.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR

https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR

https://www.facebook.com/groups/raspberrybr/
Orange Pi BR

https://www.facebook.com/groups/OrangePiBR/
Odroid BR

https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR

https://www.facebook.com/groups/SistemasEmbarcadosBR/

Sistemas Eletrônicos

https://www.facebook.com/groups/544679592355388/

Projetos Arduino | Eletrônica

https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 e ESP32

https://www.facebook.com/groups/ESP8266BR/

ARM Brasil

https://www.facebook.com/groups/508153815944410/

MIPS BR

https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte

https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

 

2 comments

Comments are closed.

%d blogueiros gostam disto: