Go Down

Topic: arduino mega+ethernet shield+ ntp ora (Read 267 times) previous topic - next topic

devilx

Salve a tutti

è un giorno che ci sbatto la testa ma senza un risultato, vorrei poter visualizzare su blink nel widget LCD l'ora e la data che si aggiornano via LAN, la base di partenza del codice è questa

Code: [Select]
#define BLYNK_PRINT Serial


#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <TimeLib.h>
#include <WidgetRTC.h>


char auth[] = "YourAuthToken";

#define W5100_CS  10
#define SDCARD_CS 4

BlynkTimer timer;

WidgetRTC rtc;


void clockDisplay()
{
 
  String currentTime = String(hour()) + ":" + minute() + ":" + second();
  String currentDate = String(day()) + " " + month() + " " + year();
  Serial.print("Current time: ");
  Serial.print(currentTime);
  Serial.print(" ");
  Serial.print(currentDate);
  Serial.println();

 
  Blynk.virtualWrite(V1, currentTime);
 
  Blynk.virtualWrite(V2, currentDate);
}

void setup()
{
 
  Serial.begin(9600);

  pinMode(SDCARD_CS, OUTPUT);
  digitalWrite(SDCARD_CS, HIGH);
  Blynk.begin(auth);
 
  rtc.begin();

 
  timer.setInterval(10000L, clockDisplay);
}

void loop()
{
  Blynk.run();
  timer.run();
}


primo problema fino ireri l'ora e la data ok, oggi per magia la data ferma al 1970 e l'ora non va piu.
Ho pensato di sincornizzare il tutto via lan , ma ho provato diverse soluzioni senza successo....

Che mi consigliate

docdoc

Scaricata la batteria tampone dell'RTC?
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

devilx

la schedina rtc non la vorrei mettere, fare tutto via lan

docdoc

#3
Jan 22, 2019, 05:22 pm Last Edit: Jan 22, 2019, 05:24 pm by docdoc
Ah, ok, scusa, non conosco bene blynk quindi non sapevo se il widget RTC funzionasse correttamente anche senza una schedina RTC.

Però il tuo codice è molto simile a quello di uno degli examples della libreria ossia RTC.ino dove però vedo alcune differenze.

1) hai definito SDCARD_CS, quindi tu HAI una schedina RTC (che in genere include anche un lettore SD)?

2) Manca questa (che non so cosa faccia, anche se dal nome...):

Code: [Select]
BLYNK_CONNECTED() {
  // Synchronize time on connection
  rtc.begin();
}


3) hai messo nel setup() anche una "  rtc.begin();", che nell'esempio non c'è o meglio sta dentro a BLYNK_CONNECTED (?).

Se esegui quindi direttamente l'esempio che succede?


Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

devilx

niente da fare mi da sempre un ora sballata e la data 1/1/1970...
dovrei inserire qualche stringa che all'avvio si sincronizzi con qualche cosa .....

docdoc

Beh se non hai un vero RTC, si, dovrebbe sincronizzarsi con "qualcosa" ma non capisco in questo ambito (Blynk senza scheda RTC) con "cosa" dovrebbe sincronizzarsi? Ripeto, non conosco Blynk quindi non ho alcuna idea mi spiace...
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

devilx

in teoria, si dovrebbe sincronizzare con qualche server ntp, cioè prendere l'ora da internet , un po come i pc...

devilx

ho provato diversi progetti presi su internet come esempio, la cosa strana e che nel serial monitor mi da sempre la data 1970 e l'ora sballata, il dubbio che mi sta venendo e che se il problema fosse la versione 1.8.8 di arduino ??

ssono esempi che gli utenti dicono che funziona

devilx

risolto il problema....dopo tanti tentativi....
avevo due librerie Tim-master e SimpleTimer-master, forse andavano in conflitto , ho concellato la seconda adesso si sincronizza alla perfezione


grazie a tutti

Go Up