Liebe Arduino - Gemeinde,
Ich möchte mir mit einem ESP32 einen Bewegungsmelder bauen, der nur nachts aktiv ist.
Uhrzeit über WLAN auslesen, funktioniert soweit über:
#include <WiFi.h>
#include "time.h"
const char* ssid = "*** hier steht das WLAN-NETZ***";
const char* password = "***hier steht der KEY***";
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void setup()
{
Serial.begin(115200);
//connect to WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
//init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();
//disconnect WiFi as it's no longer needed
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);
}
void loop()
{
delay(1000);
printLocalTime();
}
Ich stelle es mir aktuell so vor, dass ich dann über eine if - Abfrage mit bspw. t > 20 den Bewegungsmelder erst ab 20 Uhr aktiv werden lasse. Dafür muss ich aber irgendwie an dieses %H aus der Funktion printLocalTime bzw. aus dem struct timeinfo rankommen.
Wie kann man da die Stundenzeit rausziehen und einer Variable int t zuweisen?
Ich freue mich über eure HIlfe?
viele Grüße,
Matthias