Acionamento do motor de acordo com a hora.
6155 단어 esp32cppdiyprogramming
Bibliotecas adicionadas:
#include <NTPClient.h>
O NTP(Protocolo de Tempo para Redes), é o padrão que permite a sincronização dos relógios dos dispositivos de uma rede. Além do protocolo de comunicação em si, o NTP define uma série de algoritmos utilizados para Consultar os servidores, calcular a diferença de tempo e estimar um erro, escolher as melhores referências e ajustar o relógio local.
Associações entre dispositivos:
Permanentes: são criadas por uma configuração ou comando e mantidas sempre. Este é o tipo de associação recomendável para se trabalhar em aplicações do dia a dia.
Priorizáveis: são específicas da versão 4 do NTP e criadas por uma configuração ou comando, podem ser desfeitas no caso de haver um servidor melhor, ou depois de um certo tempo.
Efêmeras ou transitórias: são criadas por solicitação de outro dispositivo NTP e podem ser desfeitas em caso de erro ou depois de um certo tempo.
영구적으로 사용할 수 있습니다.
Resolvi utilizar esse método pois, ao tentar fazer usando a biblioteca ctime, que gera uma struct com os dados de dias e horas não estava funcionando.
Ao ser utilizado junto ao esp32 ele não recebia a hora, pois essa estrutura recebe a hora do computador em que esta sendo executado.
Por esse motivo decidi receber as informações direto via internet.
펠로 사이트 NTP.br , 우리는 timeClient의 기능을 링크할 수 있습니다.
운동을 위한 코디고:
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("\nHora: %i ", horas);
Serial.printf("\nMinutos: %i ", minutos);
if ((horas == 7 && minutos == 0)) {
digitalWrite(PIN_LED, HIGH);
Serial.println("\nAcendeu");
delay(9000);
digitalWrite(PIN_LED, LOW);
delay(60000);
};
}
Dentro da função timeClient, é passado como paraâmetro, o, o site em será pego as informações, a mudança de fuso horário.
로고는 getHours와 getMinute의 가치를 존중하는 다양한 시간과 최소 시간으로 변경됩니다. Somei mais 10 (dez) nos minutos, para diminuir a diferença entra a hora adquirida com a hora local. Pode está diferença de acordo com o servidor.
Imprimo os mesmos para ter uma noção de como estão.
Logo em seguida faço o código 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 não se acione novamente.
Chamo a função ligaHora dentro da função 루프:
void loop() {
VerificaConexoesWiFIEMQTT();
MQTT.loop();
ligaHora();
delay(2000);
}
Essa função loop chama as outras funçãos de verificação, mqtt e ligar o motor a cada 2 (dois) segundos.
Reference
이 문제에 관하여(Acionamento do motor de acordo com a hora.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/henriquebros/acionamento-do-motor-de-acordo-com-a-hora-3co3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)