Minha opção de relógio DIY com o cliente NTP
Como em publicações anteriores ele nunca chegou ao produto final, proponho minha própria versão. O ferro não é minha especialização, portanto, não julgue estritamente.Então, em ordem. Quando meu amor por relógios e a hora exata chegaram ao estágio terminal, foi decidido tornar o sonho realidade. Começou a busca por placas de desenvolvimento acessíveis com Ethernet a bordo. O Rapsberry com Linux parecia uma "arma para pardais", então fiz uma pergunta no fórum do Netduino, porque agora estou sentado em C # e era interessante executar o bytecode no microcontrolador. Mas, infelizmente, o único moderador do fórum, aparentemente, saiu de férias, e ele levou várias semanas para aprovar e publicar minha primeira mensagem. Não é bom, não é bom ... Uma placa Arch Pro e outro kit de corpo em falta foram encomendados no aliexpress. Então foi a solução mais acessível. O microcontrolador NXP LPC1768 é instalado na própria placa (núcleo Cortex-M3), além de LPC11U35 (Cortex-M0) para facilitar a comunicação com seu software. O próprio fabricante fornece um IDE online,A compilação também está em seu servidor, o firmware é baixado e baixado para a placa como um arquivo em uma unidade flash USB, não há depurador, então comecei a desenvolver o projeto no Keil uVision, uma versão de teste, é claro. Somente o cabo micro-USB é necessário para o firmware e a depuração do microcontrolador.Como relógio em tempo real, foi escolhido o DS3231, que veio a mim na forma de um módulo pronto para comunicação via I2C:
Por alguma razão, o módulo misterioso só funcionou quando o analisador lógico foi conectado e ligado (eu uso o Logic-U ISL dos caras de Kharkov):
Deve haver 10K resistores entre as linhas de sinal e V +, o módulo discou mega-átomos. Que tipo de manequim, em vez de um conjunto de resistores e um LED que nunca acende, eu não entendi. Os resistores soldados que o módulo reviveu, mas o limiar da fazenda coletiva cruzou uma certa linha; portanto, uma placa foi desenvolvida como o "escudo" do Arduino:
Esquema:
Uma exibição de segmento foi tomada como um indicador - esse tamanho (0,8 "de altura) era apenas com LEDs brancos; de toda a documentação, os chineses forneciam apenas um jipe com pinagem; alguns caracteres ilegíveis tinham que ser adivinhados pelo método de exclusão. O controlador foi utilizado pelo conhecido MAX7219, comunicando-se pela SPI.Caso ... Nos feriados de Ano Novo, é claro, não há impressora 3D ou corte a laser à mão. Eu próprio vi um plexiglass de 8 mm deitado.O momento de desesperança na fase final:
visualização do produto final:
O relógio recebe um endereço IP via DHCP (um roteador os distribui para mim). O servidor NTP é selecionado aleatoriamente. O tempo é solicitado a cada 25 horas (meu provedor se desconecta da Internet no mesmo horário da noite, para que eu não queira entrar nesse período). Devido à constante mudança na legislação com fusos horários, decidi não implementar a transição para o verão e o inverno, dois botões simplesmente reduzem ou aumentam o deslocamento do UTC em uma hora. O deslocamento é registrado na EEPROM do microcontrolador. Além disso, o relógio é suportado por uma bateria de lítio de 3V, portanto, falta de energia e internet não são um problema. Quatro LEDs coloridos na placa são usados para indicar problemas com a Internet, hardware ou erros no tempo de execução.O código fonte do firmware no github:https://github.com/sapozhnikov/eclock Source: https://habr.com/ru/post/pt384127/
All Articles