Buongiorno a tutti
la mia situazione e' questa: arduino con RTC DS3231 e modem AI-Thinker A6 che si connette ad internet.
Come fare ad ottenere "l'ora esatta" (via NTP o cosa?) dopo essermi connesso ad internet?
Speravo ci fosse un comando AT specifico, ma non nel set dei comandi per A6 [(PDF)](https://www.smart-prototyping.com/image/data/9_Modules/101756 Wireless A6C/A6A7A6CA20_AT_Commends.pdf) .
Ho visto librerie tipo questa GitHub - arduino-libraries/NTPClient: Connect to a NTP server che funzionano se si e' connessi col modulo wifi ESP8266, ma non ho trovato niente per il mio caso . Client NTP ?
Che posso fare?
Non credo sia una versione specifica per ESP (magari basta sostituire ESP8266WiFi.h con Ethernet.h e WiFiUDP.h con EthernetUdp.h), comunque sia prova a vedere QUI.
docdoc:
Non credo sia una versione specifica per ESP (magari basta sostituire ESP8266WiFi.h con Ethernet.h e WiFiUDP.h con EthernetUdp.h), comunque sia prova a vedere QUI.
grazie per il link. Ma non ho una scheda ethernet.
La domanda che pongo e':
"Se la connessione ad internet del nostro arduino e' fatta attraverso un modem (no wifi- no eth) come e' possibile sincronizzare un orologio RTC tipo il DS3231?"
PS: il problema non e' settare RTC, ma avere un dato da sincronizzare
ivanpiffer:
"Se la connessione ad internet del nostro arduino e' fatta attraverso un modem (no wifi- no eth) come e' possibile sincronizzare un orologio RTC tipo il DS3231?"
Magari se spieghi meglio cosa intendi per "connessione ad internet via modem" e specifichi quale modem ... forse qualcuno ti può aiutare ...
Guglielmo
gpb01:
Magari se spieghi meglio cosa intendi per "connessione ad internet via modem" e specifichi quale modem ... forse qualcuno ti può aiutare ...Guglielmo
certo. Come dicevo nel primo post il modem e' un AI Thinker A6 ed ho postato anche il link al manuale con i comandi AT.
Con "connessione ad internet" intendo una sim TIM con APN impostato.
Eseguo con successo le richieste GET su pagine web, ma l'ora via NTP ? Ci sono librerie che posso usare allo scopo? O come fare?
Non usa un modem, termine ormai improprio visto che ha senso solo per i vecchi sistemi pre ADSL, ha un modulo GSM/GPRS, dice che si tratta del AI-Thinker A6.
La vedo dura ottenere l'ora NTP, se non supportata direttamente dal modulo con appositi comandi, senza scrivere del codice per implementare il relativo client.
La GET è una richiesta HTTP che usa il TCP, riesci a vedere se puoi spedire/ricevere pacchetti UDP ?
Perché richiedere l'ora ad un server NTP è praticamente fare una richiesta UDP.
Se trovi come inviare pacchetti UDP allora basta che segui l'esempio per Arduino con la Ethernet per vedere cosa devi trasmettere e cosa ti aspetti di ricevere verso/da UDP.
Però ripeto ... è necessario ch trovi il modo di trasmettere/ricevere pacchetti di tipo UDP.
Guglielmo
... nella pagina descrittiva che hai linkato leggo:
GPRS
...
Stack PPP/TCP/UDP/HTTP/FTP/SMTP/MUX
... quindi sembrerebbe possibile inviare/ricevere pacchetti UDP :
Guglielmo
P.S.: Il link al manuale invece non funziona ... prova a correggerlo ...
gpb01:
... nella pagina descrittiva che hai linkato leggo:... quindi sembrerebbe possibile inviare/ricevere pacchetti UDP :
Guglielmo
P.S.: Il link al manuale invece non funziona ... prova a correggerlo ...
link al manuale corretto... mi scuso.
Penso che la cosa piu' facile per me sia prendere l'ora e la data corretta da un header http su un mio server che so aggiornato a ora corretta ...
Un accrocchio, ma che dovrebbe funzionare.
Se hai un tuo server ... portesti scrivere un'applicazioncina .php che recupera l'ora dal server e te la restituisce con una HTTP GET (sicuramente più facile). Se sul tuo server imposti poi un servizio che, es. ogni 24 ore, aggorna l'ora locale via NTP ... sei a posto
Guglielmo
gpb01:
Se hai un tuo server ... portesti scrivere un'applicazioncina .php che recupera l'ora dal server e te la restituisce con una HTTP GET (sicuramente più facile). Se sul tuo server imposti poi un servizio che, es. ogni 24 ore, aggorna l'ora locale via NTP ... sei a postoGuglielmo
si... faro' cosi'. Grazie Guglielmo.
ivanpiffer:
Penso che la cosa piu' facile per me sia prendere l'ora e la data corretta da un header http su un mio server che so aggiornato a ora corretta ...
Un accrocchio, ma che dovrebbe funzionare.
Beh ma scusa, anche senza un "tuo" server, non potresti fare un GET / su www.google.it e dagli header cercare la "Date:"? Avrai solo da controllare il fuso (generalmente indica GMT)...
Esempio di risposta di www.google.it:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Location: Google
Content-Length: 258
Date: Fri, 21 Jul 2017 13:02:15 GMT