An Interest In:
Web News this Week
- April 26, 2024
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
- April 20, 2024
Acionamento do motor de acordo com a hora.
Deixarei o repositrio do projeto aberto para que vocs possam utilizar tambm.
Bibliotecas adicionadas:
#include <NTPClient.h>
O NTP(Protocolo de Tempo para Redes), o padro que permite a sincronizao dos relgios dos dispositivos de uma rede. Alm do protocolo de comunicao em si, o NTP define uma srie de algoritmos utilizados para consultar os servidores, calcular a diferena de tempo e estimar um erro, escolher as melhores referncias e ajustar o relgio local.
Associaes entre dispositivos:
Permanentes: so criadas por uma configurao ou comando e mantidas sempre. Este o tipo de associao recomendvel para se trabalhar em aplicaes do dia a dia.
Priorizveis: so especficas da verso 4 do NTP e criadas por uma configurao ou comando, podem ser desfeitas no caso de haver um servidor melhor, ou depois de um certo tempo.
Efmeras ou transitrias: so criadas por solicitao de outro dispositivo NTP e podem ser desfeitas em caso de erro ou depois de um certo tempo.
Estou utilizando a permanente.
Resolvi utilizar esse mtodo pois, ao tentar fazer usando a biblioteca ctime, que gera uma struct com os dados de dias e horas no estava funcionando.
Ao ser utilizado junto ao esp32 ele no recebia a hora, pois essa estrutura recebe a hora do computador em que esta sendo executado.
Por esse motivo decidi receber as informaes direto via internet.
Pelo site NTP.br, e usando o link dentro da funo timeClient.
Cdigo para acionamento do motor:
void ligaHora(void) { WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "a.st1.ntp.br", -3 * 3600, 6000); int horas = timeClient.getHours(); int minutos = timeClient.getMinutes()+ 10; Serial.printf("
Hora: %i ", horas); Serial.printf("
Minutos: %i ", minutos); if ((horas == 7 && minutos == 0)) { digitalWrite(PIN_LED, HIGH); Serial.println("
Acendeu"); delay(9000); digitalWrite(PIN_LED, LOW); delay(60000); };}
Dentro da funo timeClient, passado como parmetro, o, o site em ser pego as informaes, a mudana de fuso horrio.
Logo em seguida criado as variveis inteiras horas e minutos recebendo respectivamente seus valores pela funo getHours e getMinute. Somei mais 10 (dez) nos minutos, para diminuir a diferena entra a hora adquirida com a hora local. Pode ter est diferena de acordo com o servidor.
Imprimo os mesmos para ter uma noo de como esto.
Logo em seguida fao o cdigo que ira acionar o motor. Quando o horario for igual a 7 horas e 0 minutos, ele ligar e desligara depois de 9 segundos. Ficar em espera por 1 (um) minuto para que no se acione novamente.
Chamo a funo ligaHora dentro da funo loop:
void loop() { VerificaConexoesWiFIEMQTT(); MQTT.loop(); ligaHora(); delay(2000);}
Essa funo loop chama as outras funos de verificao, mqtt e ligar o motor a cada 2 (dois) segundos.
Original Link: https://dev.to/henriquebros/acionamento-do-motor-de-acordo-com-a-hora-3co3
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To