Tutorial ESP32 53/55 - Construa um Relógio de Internet com LCD | Kit de Aprendizagem IoT ESP32 da SunFounder

Tutorial ESP32 53/55 - Construa um Relógio de Internet com LCD | Kit de Aprendizagem IoT ESP32 da SunFounder

Neste tutorial, construiremos um relógio LCD conectado à Internet usando o microcontrolador ESP32 da SunFounder. Este relógio se sincronizará automaticamente com a hora atual via Internet, exibindo a hora no formato de 12 ou 24 horas, juntamente com o dia da semana, data e mês. O uso do Protocolo de Tempo de Rede (NTP) garante que o relógio permaneça preciso sem ajustes manuais.

esp32-53-relógio-internet-principal

Este projeto aproveita as capacidades de Wi-Fi integradas do ESP32 para buscar a hora atual de um servidor NTP. Estaremos utilizando um Display de Cristal Líquido (LCD) para exibir a hora, que pode ser formatada de acordo com as preferências do usuário. Para mais esclarecimentos sobre quaisquer etapas, consulte o vídeo em (no vídeo em 00:30).

Hardware Explicado

Os componentes principais para este projeto incluem o microcontrolador ESP32, um display LCD 20x4 e uma fonte de energia. O ESP32 é um microcontrolador poderoso com Wi-Fi e Bluetooth integrados, tornando-o adequado para projetos de IoT. O LCD é utilizado para exibir a hora e a data, e pode ser configurado para diferentes tamanhos de display.

O LCD opera via o protocolo I2C, que permite comunicação por meio de dois fios (SDA e SCL). Isso simplifica a fiação e reduz o número de pinos necessários no ESP32. A conexão ao servidor NTP é feita utilizando as capacidades Wi-Fi do ESP32, permitindo atualizações em tempo real.

  • Assegure-se da tensão de alimentação correta (5 V).
  • Use capacitores de desacoplamento perto dos pinos de alimentação para estabilidade.
  • Tenha cuidado com as conexões I2C para evitar conflitos no barramento.
  • Verifique o endereço I2C do LCD (0x27 ou 0x3F).
  • Verifique as credenciais do Wi-Fi para uma conexão precisa.
  • Trate os ajustes do horário de verão no seu código.
  • Utilize o servidor NTP correto para a sua localização geográfica.
  • Sempre limpe o LCD antes de atualizar o display.

Instruções de fiação

ESP32-11_LCD-wiring

Para conectar o ESP32 ao LCD, comece ligando os pinos de energia. Conecte o VCC do LCD ao pino de 5V do ESP32 e o pino GND do LCD ao pino GND do ESP32. Para a comunicação I2C, conecte o pino SDA do LCD ao GPIO 21 do ESP32 e o pino SCL ao GPIO 22. Certifique-se de que as conexões estão seguras para evitar problemas de comunicação.

Ao configurar a fiação, use fios jumper de macho para fêmea para conexões fáceis. Se o seu LCD tiver um endereço I2C ou configuração de pinos diferente, ajuste o código conforme necessário. Consulte o vídeo em (no vídeo em 05:30) para opções de fiação alternativas, se necessário.

Exemplos de Código e Tutorial

O código inicializa o LCD e configura a conexão Wi-Fi para buscar dados de hora do servidor NTP. Identificadores chave, comossidepasswordsão usados para se conectar à rede Wi-Fi, enquantontpServer1entpServer2especifique os servidores NTP a serem usados.

const char* ssid = "dars";
const char* password = "llllllllllllll";
const char* ntpServer1 = "pool.ntp.org";
const char* ntpServer2 = "time.nist.gov";

Este trecho mostra as credenciais de rede e os endereços do servidor. Certifique-se de inserir seu SSID e senha do Wi-Fi com precisão, pois qualquer erro impedirá o ESP32 de se conectar à Internet.

No textoprintLocalTime()função, a hora atual é formatada para exibição. A estruturatmé usado para armazenar informações de tempo, enquantostrftimeajuda a formatar o tempo em uma string legível.

void printLocalTime() {
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)) {
    Serial.println("No time available (yet)");
    return;
  }
  char timeHour[5];
  strftime(timeHour, 5, "%H", &timeinfo);

Este código verifica se a hora local está disponível e recupera a hora. A hora formatada é então usada para exibir a hora atual no LCD. Se a hora ainda não estiver disponível, ele imprime uma mensagem no Monitor Serial.

Finalmente, osetup()a função inicializa o LCD e conecta-se ao Wi-Fi. Ela também configura as definições do servidor NTP e define uma callback para sincronização de tempo.

void setup() {
  Serial.begin(115200);
  lcd.init(); // initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);

Este trecho inicializa o Monitor Serial para depuração, configura o LCD e tenta se conectar à rede Wi-Fi especificada. O status da conexão será impresso no Monitor Serial, permitindo que você verifique a conexão.

Demonstração / O que Esperar

Após a configuração bem-sucedida, o LCD exibirá a hora atual, o dia da semana e a data. Você pode esperar que a hora seja atualizada a cada 5 segundos, graças aoloop()função. Se a conexão com o servidor NTP falhar, uma mensagem aparecerá no Monitor Serial indicando que o tempo ainda não está disponível (no vídeo às 12:00).

Os erros comuns incluem fiação incorreta, endereços I2C errados e credenciais de Wi-Fi incorretas. Certifique-se de que todas as conexões estão seguras e de que o servidor NTP é acessível a partir da sua rede.

Marcação de Tempo do Vídeo

  • 00:00 Início
  • 2:10 Introdução
  • 5:15 Explicação da fiação
  • 7:32 Código Arduino explicado
  • 18:43 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • Demonstração do Relógio da Internet 20:27

Imagens

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
esp32-53-internet-clock-main
esp32-53-internet-clock-main
854-ESP32 Tutorial 53/55- Internet Clock
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Arquivo Obrigatório (.h)