Algumas partes deste site ainda não estão disponíveis no seu idioma. Estamos trabalhando para corrigir isso e pedimos desculpas por qualquer inconveniente.
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.
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