1 pontos por GN⁺ 2026-02-10 | 1 comentários | Compartilhar no WhatsApp
  • Projeto que sincroniza um relógio analógico de quartzo barato com a hora da internet, controlando-o com um módulo ESP8266 e um sketch Arduino
  • Mantém a precisão obtendo a hora de um servidor NTP a cada 15 minutos e inclui ajuste automático do horário de verão
  • Modifica o relógio separando a bobina do motor de passo Lavet para que o ESP8266 possa controlá-la, e usa um chip EERAM para salvar as posições dos ponteiros de hora, minuto e segundo mesmo quando a energia é desligada
  • Na configuração inicial, define a posição dos ponteiros por meio de uma interface de página web fornecida pelo ESP8266 e, depois disso, visualiza o estado do relógio em uma página de status com SVG ou HTML Canvas
  • Exemplo open source de como implementar um relógio com sincronização precisa pela rede usando hardware de baixo custo, mostrando uma aplicação prática de tecnologias de controle IoT embarcado

Visão geral do projeto

  • ESP8266 WiFi Analog Clock é um sistema que usa um módulo WEMOS D1 Mini ESP8266 e um sketch Arduino para obter e exibir automaticamente a hora local a partir de um servidor NTP (Network Time Protocol)
    • Reconecta ao servidor NTP a cada 15 minutos para manter a precisão do relógio
    • Inclui ajuste automático de horário de verão (Daylight Saving Time)
  • O projeto é baseado em um relógio analógico de quartzo barato e combina modificação de hardware com controle por software

Configuração de hardware

  • O relógio usado foi um relógio analógico de quartzo comprado no Walmart por US$ 3,88
  • A movimentação de quartzo do relógio foi aberta, a bobina interna do motor de passo Lavet foi separada do oscilador de quartzo e fios foram soldados em cada terminal para conexão ao ESP8266
    • A maioria desses mecanismos é montada por encaixe, sem parafusos
    • Os fios da bobina são mais finos que um fio de cabelo, exigindo extremo cuidado no manuseio
  • O circuito final foi montado em uma perfboard, junto com o CI EERAM e outros componentes

Funcionamento do software

  • O sketch AnalogClock.ino faz o ESP8266 comparar, 10 vezes por segundo, a hora real com a hora mostrada no relógio
    • Se o relógio estiver atrasado, o ponteiro dos segundos é movido mais rapidamente para sincronizar
    • Se o relógio estiver adiantado, ele aguarda até que a hora real alcance a indicação
  • O movimento do ponteiro dos segundos acontece aplicando um pulso bipolar (bipolar pulse) à bobina do motor Lavet
    • Dependendo das características do motor, é necessário ajustar a constante PULSETIME; experimentalmente, 30 ms foi adequado
  • Como relógios baratos não têm feedback da posição dos ponteiros, a informação de posição se perde quando a energia é desligada
    • Para resolver isso, foi usado o Microchip 47L04 Serial EERAM (SRAM de 4 Kbit + backup em EEPROM)
    • As posições dos ponteiros de hora, minuto e segundo são salvas a cada segundo e restauradas quando o sistema é religado

Configuração inicial e interface web

  • Na primeira execução do sketch, o ESP8266 fornece uma página web simples para que o usuário defina a posição inicial dos ponteiros do relógio
  • Depois disso, o ESP8266 passa a lembrar a posição dos ponteiros usando os dados salvos na EERAM
  • Durante a operação, ele fornece uma página de status (status page) com suporte a três modos de exibição
    • Exibição gráfica do mostrador baseada em SVG
    • Exibição do mostrador baseada em HTML Canvas
    • Exibição de status somente em texto

Licença e informações técnicas

  • O projeto é publicado sob a licença MIT
  • A composição principal de linguagens é C++ 64,1% e C 35,9%
  • O repositório no GitHub tem 252 stars e 2 forks
  • Tags relacionadas: arduino, esp8266, clock, analog-clock, ntp, hardware-construction

Significado

  • Exemplo prático de conversão de um relógio barato em um relógio inteligente sincronizado por Wi‑Fi
  • Caso de implementação de controle preciso de tempo e interface baseada na web usando ESP8266 e o ambiente Arduino
  • Material de referência open source para aprender sobre modificação de hardware IoT e técnicas de sincronização de firmware

1 comentários

 
GN⁺ 2026-02-10
Comentários no Hacker News
  • Projeto realmente muito legal
    A parte que achei especialmente interessante foi o chip "SRAM with EEPROM backup"
    Ele permite salvar permanentemente a posição dos ponteiros sempre que eles se movem, sem consumir a vida útil de escrita como uma EEPROM comum
    E custa menos de 1 dólar por unidade, então é um componente útil para hobby e projetos pequenos
    • Resumindo como acho que esse chip funciona:
      SRAM e EEPROM ficam no mesmo encapsulamento junto com um controlador, e há um pequeno capacitor (4.7µF) por perto
      A SRAM mantém os dados enquanto houver energia, e a EEPROM guarda os dados permanentemente mesmo sem energia, mas tem limite de gravações
      Quando o controlador detecta queda de tensão, ele despeja imediatamente o conteúdo da SRAM na EEPROM
      O capacitor fornece energia nesse momento para permitir a gravação dos dados na EEPROM
      Quando a energia volta, os dados da EEPROM são copiados de volta para a SRAM
      A desvantagem é a capacidade pequena, de 4 kilobits, mas se isso resolve o problema por 1 dólar, já vale bastante a pena
    • Não tenho certeza se é uma tecnologia parecida, mas o link de produto da Adafruit também é interessante
    • Eu também gosto de FRAM para esse tipo de uso
      Principalmente para salvar logs de depuração em formato de buffer circular, porque assim dá para preservar logs de crash de sistemas embarcados mesmo sem estar conectado a um PC de desenvolvimento
  • O preço do Walmart aparece como $3.88, mas por causa da política de preços dinâmicos por região e usuário, na minha região ele aparece como $5.92
    Link do produto
  • Aqui em casa tenho um relógio atômico Seiko que deveria ajustar a hora automaticamente pelo sinal WWVB
    Mas onde moro agora o sinal é fraco demais, então configurar manualmente é bem incômodo
    Por isso eu mesmo fiz um código Arduino que usa ESP32 e servidor NTP para emular sinais de relógios atômicos do mundo todo
    Também é bem interessante conhecer a história e as diferenças entre os sinais de transmissão de relógios atômicos de cada país
    • Só que vale tomar cuidado: transmitir na mesma frequência do WWVB provavelmente é ilegal
  • Queria ver alguém modificar um relógio de projeção assim
    O brilho vermelho da projeção é perfeito à noite, mas como ele não tem sincronização via Wi‑Fi, não dá para ajustar a hora com NTP ou GPS
    A parte do projetor é ligada ao corpo principal por um cabo flat, então deve ser divertido fazer engenharia reversa
    Idealmente, seria legal se uma matriz de LED no teto mostrasse outras informações além da hora
    Existem produtos assim, mas são muito caros, como os da buyfrixos.com
    • Já fiz uma versão com brilho baixo
      Link do meu projeto
    • O produto do link tem função "Atomic Time", então parece sincronizar pelo sinal WWVB
      Eu também uso vários relógios de parede baratos desse tipo, e quase não têm erro de horário
      Acho até que podem ter menos jitter do que NTP
    • Eu também gosto de relógios WWV/WWVB
      Nunca precisei acertar a hora deles, e eles batem com relógios NTP com diferença de menos de 1 segundo
      Já os relógios do forno e do micro-ondas dão vontade de desligar
    • Na prática, quando você entra nesse tipo de modificação, acaba concluindo que o preço de um produto pronto é razoável por causa do custo das peças e do tempo
    • Tenho alguns relógios digitais comprados no Temu que adiantam com o tempo
      Em um mês ficam cerca de 1 minuto adiantados, então seria ótimo se tivessem sincronização por Wi‑Fi
  • Eu adoro essa estética hacker
    Hoje em dia os produtos estão cada vez mais fechados, e sinto falta de fazer coisas simples e hackeáveis com as próprias mãos
    Quando eu sair da correria do trabalho, quero tentar fabricar meus próprios eletrodomésticos simples, confiáveis e amigáveis para hackers
    Ver projetos assim é realmente inspirador
  • Se quiser sujar menos as mãos, recomendo o Crazy Clock
    Comprei um para minha filha, mas o tique-taque irregular atrapalhava os estudos, então agora ele está parado
    Mesmo assim, foi uma experiência bem divertida
    • O modo "Early clock" mantém o relógio entre 0 e 10 minutos adiantado, o que é ótimo para evitar atrasos
      Só que, se houver vários relógios em casa, você precisa decidir usar só ele para isso funcionar
  • Se tiver um orçamento maior, também existem relógios grandes que fazem um som de "tum" a cada 30 segundos
    Apresentação do Gents Turret Movement
    Eu usei um deles para fazer um relógio eletromecânico baseado em diapasão
    Em vez de uma fonte de tempo precisa, ele é acionado por diapasão e lógica 74xx
    • Esses relógios de diapasão são realmente incríveis
      Fico me perguntando por que a Accutron ainda não fabrica algo assim
      O uso da frequência de ressonância é parecido com um relógio de quartzo, mas visualmente mais atraente
  • Ao projetar um circuito de ponte H para motor de passo, é preciso considerar obrigatoriamente a corrente reversa
    Caso contrário, picos podem causar mau funcionamento ou até danificar o microcontrolador
    O ideal é isolar a tensão de gate com um optotransistor e alimentar o motor separadamente
  • Vi um vídeo no YouTube chamado "Como fazer uma mesa de edição de vídeo de €400 a partir de lixo de €0"
    Também existe um projeto no GitHub
    • A ideia de reaproveitar um controlador de VCR como dispositivo de entrada digital é excelente
      Ainda existem muitos decks antigos e controladores LANC por aí, então isso tem bastante utilidade
  • O projeto é legal, mas parece haver possibilidade de deriva de tempo
    Mesmo que o relógio saiba a hora exata, se a velocidade real de acionamento variar um pouco, o erro acumulado pode crescer
    Principalmente se a constante PULSETIME estiver errada por apenas 1 ms, a diferença já pode aparecer em um dia
    Claro que um motor de passo Lavet teoricamente mantém passos com base em uma frequência de oscilação constante, mas desgaste ou ruído podem introduzir viés
    Ainda assim, para um relógio de parede, talvez seja um erro desprezível
    • O motor de passo do tipo Lavet tem seu funcionamento controlado pela contagem de pulsos, então a quantidade importa mais do que a largura do pulso
      Consultar a explicação da Wikipedia ajuda a entender melhor
    • pulsetime é apenas o tempo para avançar um passo
      Desde que nenhum passo seja perdido, não haverá erro acumulado
      Ou seja, basta manter a contagem de passos correta