Na dúvida, um relógio. Não importa se você planeja reciclar um tablet antigo ou obter relatórios precisos do clima, o relógio é um projeto ideal para satisfazer o bicho do DIY. Com isso em mente, recentemente descobrimos o Tiny Internet Clock, publicado por «gokux» na plataforma Instructables. Tudo o que você precisa é de uma pequena tela OLED, um módulo baseado no ESP32 ou ESP8266, e a dose exata de impressão 3D.
Arduino, Raspberry Pi, microcontroladores, impressão 3D… sem dúvida é um dos melhores momentos para molhar os pés nas águas do DIY. Na verdade, há muitos projetos online que nem sequer exigem um ferro de solda, e oferecem uma excelente oportunidade para todos os usuários. O Tiny Internet Clock de «gokux» é um desses projetos, mas se você tiver acesso a uma impressora 3D e estiver disposto a dar alguns pontos de solda nas conexões, poderá obter um relógio WiFi muito compacto e simples.
Como construir um relógio com WiFi
Do ponto de vista técnico, você só precisa de três coisas: um módulo ESP32 ou ESP8266 compatível (aqui ele usa o Seeed Studio Xiao), uma tela OLED SSD1306 com formato de 128 x 32 pixels, e alguma fonte de energia. «gokux» decidiu simplificar o design ao máximo e alimentar seu Xiao com um cabo USB tipo C, mas não é má ideia adicionar um módulo TP4056 e uma pequena bateria para "cortar o cordão". Ainda assim, não podemos falar em portabilidade porque as credenciais WiFi ficam codificadas no código Arduino (detalhes abaixo).
«gokux» também teve a gentileza de compartilhar os arquivos para imprimir a carcaça do Tiny Internet Clock, composta por três peças que deveriam ficar perfeitas mesmo na mais básica das impressoras. De longe, a parte intimidante do projeto é carregar o código Arduino no ESP32, mas na realidade só nos interessam quatro parâmetros:
- const char* ssid = "SSID"; Aqui devemos substituir "SSID" pelo SSID real da rede WiFi (entre aspas)
- const char* password = "Password"; O mesmo, mas escrevemos a senha
- int GMTOffset = 19080; Aqui vai o offset negativo ou positivo do nosso fuso horário, em segundos
- int daylightOffset = 0; Semelhante ao anterior, mas inserimos o offset para horário de verão (se necessário)
A única linha adicional de código que gostaria de destacar é:
configTime(GMTOffset, daylightOffset, "0.in.pool.ntp.org","time.nist.gov");
O servidor 0.in.pool.ntp.org pertence à Índia, e talvez seja mais conveniente usar um NTP local.
Com todo o código carregado, o resto é questão de verificar as conexões físicas entre o ESP32 e a tela, ligá-lo e esperar que se sincronize. Faça o teste!
Site oficial: Clique aqui