Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 25, 2022 10:05 pm GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To