Go Down

Topic: Calcular Data do Horário de Verão do Brazil - Summer Time Clock BR (Read 513 times) previous topic - next topic

rtek1000

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.

https://giovanibettiol.wordpress.com/2009/10/06/algoritmo-para-calcular-o-periodo-do-horario-de-verao/

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.

http://www.profcardy.com/artigos/pascoa.php

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!

rtek1000

Mais sobre o horário de verão:

http://nippobrasilia.com.br/news/horario-brasileiro-de-verao-20162017/

Arank

Quote
Quando começa e termina o Horário Verão?

Desde 2008, foi fixada a data de início e término do Horário de Verão no Brasil, que deve começar à zero hora do terceiro domingo de outubro e terminar à zero hora do terceiro domingo de fevereiro do ano seguinte (se coincidir com o domingo de carnaval, o horário é prorrogado por mais uma semana).
O horário de verão brasileiro é bem fácil de calcular na verdade.

Code: [Select]
int timeZone() {
  int previousSunday = day() - weekday();
  if (month() < 2 || month() > 10) return -2;
  else if (month() == 2 && previousSunday < 14) return -2;
  else if (month() == 10 && previousSunday >= 14) return -2;
  else return -3;
}

Go Up