sábado, 6 de dezembro de 2025

Relógio "Self Learning" com ESP32

O Self-Learning Clock (SLC) é um curioso relógio que usa um ESP32 e ecrã e-Paper, e que usa um sistema de auto-aprendizagem para melhorar a precisão.

O Self-Learning Clock (SLC) é um relógio "faça-você-mesmo" que usa um mecanismo de auto-aprendizagem para manter a hora correcta em modo de baixo consumo. Em vez de depender de sincronizações frequentes com servidores NTP na internet - processo que, além de consumir energia, obriga a uma ligação WiFi regular - o SLC aprende o seu próprio desvio interno e compensa-o autonomamente. O resultado é um sistema que mantém maior precisão com menos sincronizações diárias e um consumo energético tão reduzido que permite funcionar durante meses sem preocupação com recarregamentos da bateria.

A base do projecto é uma placa de desenvolvimento de ultra baixo consumo, combinada com um ecrã e-paper de 4.2", tecnologia que tem a vantagem de só gastar energia durante as alterações e ser extremamente legível mesmo sob luz forte. A autonomia é um dos grandes destaques: o relógio consome menos de 0.75 mAh em média, graças a passar a maior parte do tempo em modo "sleep" (apenas entra em actividade cerca de 0.8 segundos por cada minuto).

Microcontroladores como o ESP32 utilizam dois tipos de osciladores: um cristal de alta precisão para modos de maior desempenho e um oscilador RC interno para modo de baixo consumo. Este último, apesar de eficiente, é notoriamente impreciso e pode acumular minutos de erro por dia. Normalmente, a solução tradicional passa por adicionar um módulo de relógio externo (RTC), com o seu próprio cristal e bateria, mas este Self-Learning Clock contorna essa necessidade. Em vez de hardware adicional, o relógio modela matematicamente o desvio do seu próprio oscilador e aplica correcções ao tempo exibido.
Durante as primeiras 48 horas, o relógio recolhe amostras das diferenças entre o tempo interno e o tempo real fornecido pelos servidores NTP. A partir daí, entra num ciclo constante de autoaperfeiçoamento, ajustando o desvio do oscilador. O processo nunca pára: ao longo dos dias, a precisão torna-se cada vez melhor, compensando variações térmicas, flutuações do oscilador e até envelhecimento dos componentes. Após esta fase inicial, o SLC mantém-se dentro de uma margem de ±2 segundos por dia, fazendo sincronizações com um servidor NTP apenas duas vezes por dia (quem quiser poderá reduzir ainda mais esse tempo, fazendo sincronizações NTP apenas uma vez por dia, ou ainda com menor frequência).

O microcontrolador nunca precisa de permanecer acordado mais do que o estritamente necessário, o que não só reduzi o consumo como também reduz o aquecimento interno. Com tão pouca dissipação, o dispositivo pode ficar fechado numa caixa selada e também minimiza variações de temperatura - uma das principais causas para a variação oscilador RC.

O ecrã e-paper desempenha um papel fundamental, proporcionando excelente legibilidade com dígitos gigantes. Utiliza actualizações parciais entre minutos, com um refresh completo do ecrã a cada 60 ciclos (de hora a hora) para reduzir o efeito de ghosting. Além da hora, o SLC mostra também o nível de bateria - substituindo momentaneamente os dois pontos entre as horas e minutos - e exibe ainda a temperatura interna do microprocessador, o erro de sincronização em PPM, o estado da última ligação WiFi, o resultado da última sincronização NTP e o horário da próxima actualização.

Como sugestão para melhorias, tendo em conta o tamanho do ecrã, podem considerar a apresentação de informação adicional, como o estado do tempo ou outra informação que seja relevante.

Sem comentários:

Enviar um comentário

Related Posts with Thumbnails