Olá pessoal,
Eu fiz uma automação de relógio de torre de igreja, e precisava manter a hora mais sincronizada, então resolvi fazer uso de NTP.
Porém, eu não sei se tem algum servidor NTP que já fornece a hora corrigida de acordo com a região, que esteja sob o horário de verão.
Parece que já existe alguma coisa sobre horário de verão para países da Europa, mas as regras adotadas no Brasil, são bem interessantes, se tiver um pouco de paciência, de uma conferida.
Encontrei uma alternativa para algum calculo, mas apesar de mais prático manualmente, se mostrou mais complexo no código, e passou a consumir mais recurso, pelos testes que fiz.
Consegui encontrar a placa ESP8266, que é de baixo custo e consegue operar com NTP e sem o Arduino, mas pode ser programada pela IDE do Arduíno.
Então, procurando na internet, encontrei alguns sites que me ajudaram a montar essas rotinas anexadas. Não deu para postar diretamente devido ao tamanho.
Notem que a biblioteca DateTime do Arduino parece não funcionar mais nas novas IDE, sendo substituídas por outras bibliotecas, como a TimeLib.
O código ainda está com diversos 'testes' comentados, que eu usei para depurar, então pode ser possível enxugar ainda mais, quem sabe se sobrar um tempo, faço uma biblioteca para facilitar o uso.
Se encontrar algum erro, que realmente seja um erro, por favor informe, se possível vamos acertando.
Com estas rotinas basta entrar com o ano, que vai poder obter o dia e mês que poderá iniciar o horário de verão e o término, que acontecerá no ano seguinte.
O consumo de recursos é de cerca de 10% de Flash e RAM para um Nano 328.
O código está disponível para uso não comercial.
Obrigado e boa sorte!
Arduino_Summer_Time.ino (17.5 KB)