Ciao a tutti, sono consapevole che l'argomento è trito e ritrito ma nonostante tutto non riesco a farlo funzionare..
Riporto una parte di codice con l'uso della libreria time...
Quello che devo fare è leggere l'ora e temperatura e visualizzarla nella dashboards di Arduino IoT.
const char* ssid = "xxxx";
const char* password = "yyy";
const char* NTP_SERVER = "time.inrim.it";
const char* TZ_INFO = "CET-1CEST,M3.5.0/2,M10.5.0/3"; // enter your time zone (https://remotemonitoringsystems.ca/time-zone-abbreviations.php)
tm timeinfo;
time_t now;
long unsigned lastNTPtime;
unsigned long lastEntryTime;
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
dht.begin();
WiFi.begin(ssid, password);
Serial.print("Provo a collegarmi al WiFi");
delay(1500);
configTime(0, 0, NTP_SERVER);
// See https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv for Timezone codes for your region
setenv("TZ", TZ_INFO, 1);
tzset();
if (getNTPtime(10))
{
// wait up to 10sec to sync
}
else
{
Serial.println("Timer non settato");
ESP.restart();
}
showTime(&timeinfo);
lastNTPtime = time(&now);
lastEntryTime = millis();
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
delay(2000);'
getNTPtime(10);
showTime(&timeinfo);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
uint8_t ora = timeinfo.tm_hour;
uint8_t minuti = timeinfo.tm_min;
Quello che succede è che l'ora visualizzata è quella di oggi meno 1-ora....
Dove sbaglio?
Grazie per la pazienza e l'aiuto...
Benny