#include <WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <time.h>
LiquidCrystal_I2C LCD= LiquidCrystal_I2C(0X27,16,12);
const char* ssid="Wokwi-GUEST";
const char* password="";
#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET -10800
#define UTC_OFFSET_DST 0
struct tm tempo;
void printLocalTime()
{
if(!getLocalTime(&tempo))
{
LCD.setCursor(0,1);
LCD.println("Erro conexão");
return;
}
LCD.setCursor(8, 0);
LCD.println(&tempo, "%H:%M:%S");
LCD.setCursor(0,1);
LCD.println(&tempo, "%d/%m/%Y %Z");
}
void setup() {
Serial.begin(115200);
pinMode(25,OUTPUT);
pinMode(2,OUTPUT);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Conectando");
LCD.setCursor(0, 1);
LCD.print("Wifi ");
WiFi.begin("Wokwi-GUEST", "", 6);
LCD.clear();
LCD.setCursor(0, 0);
while(WiFi.status() !=WL_CONNECTED){
delay(250);
LCD.print("Conectando...");
}
Serial.println("");
Serial.println("WiFi conectada.");
Serial.println("Endereço de IP:");
Serial.println(WiFi.localIP());
LCD.clear();
LCD.setCursor(0, 0);
LCD.println("Online");
LCD.setCursor(0, 1);
LCD.println("Atualizando...");
configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
}
void loop()
{
printLocalTime();
delay(250);
if (tempo.tm_hour == 2 && tempo.tm_min == 10)
{
digitalWrite(2,HIGH);
digitalWrite(25, HIGH);
delay(500);
digitalWrite(25, LOW);
delay(500);
digitalWrite(25, HIGH);
delay(500);
digitalWrite(25, LOW);
delay(500);
} else{
digitalWrite(2,LOW);
digitalWrite(25, LOW);
}
}