Comment obtenez-vous un timestamp dans arduino-esp8266
Je voudrais obtenir un horodatage avec arduino-esp8266
(https://github.com/esp8266/Arduino).
Mais je n'ai aucune idée de comment l'obtenir.
Je suppose que nous devons faire passer le temps sur internet depuis le ESP8266 a pas d'horloge. Avons-nous besoin de le faire qu'une seule fois ou à chaque fois que nous avons besoin d'un timestamp?
Je suis déjà connecté en wifi à l'internet.
- la peine de mentionner: vous pourrez obtenir une RTC module pour moins de $1 expédiés... ebay.com/itm/201577236297
InformationsquelleAutor stallingOne | 2016-11-09
Vous devez vous connecter pour publier un commentaire.
NTP est une façon éprouvée de l'obtention du temps à distance. NTP bibliothèques comme @Marcel indique est de rendre les connexions UDP du serveur, avec un intervalle. Donc, vous n'avez pas besoin de faire une interrogation du serveur avant de l'utiliser.
Ici est l'utilisation de NTP bibliothèque avec 1 heure de décalage et 1 minute d'intervalle d'actualisation :
Pour obtenir le timestamp ou formaté en temps quand tu veux, utiliser les fonctions :
error: 'WiFiUDP' does not name a type
ai-je besoin d'une autre bibliothèque pour qui ?#include <WiFiUdp.h>
et qu'il a la compilationtimeClient.getFormattedTime();
= 00:04:49 quand il est 12:46, comment puis-je addjust cela ? (Je suis dans l'europe de Bruxelles)#include <WiFiUdp.h>
. Cet exemple fonctionne: github.com/arduino-libraries/NTPClient/blob/master/examples/... et est à seulement 1 heure de repos#define NTP_OFFSET 1*60*60
comme vous l'avez dit. Merci ! (Je pense que votre responsab manque égalementtimeClient.begin();
)unsigned long epcohTime = getEpochTime();
ne fonctionne pas. Je pense que vous pouvez le supprimerEn regardant le code, je ne pense pas que ce micro-contrôleur directement a une horloge construite en comme mentionné. Puisque vous avez le wifi si vous pouvez faire une requête sur le web pour obtenir la place.
J'avais utiliser un RESTE de la requête dans un endroit comme celui-ci
https://timezonedb.com/api
Qui va vous redonner un format json temps. Si vous avez seulement besoin de précision +/- quelques secondes ce sera très bien. Vous pourrait réduire la bande passante et améliorer la vie de la batterie par le réglage de l'heure comme ceci ensuite à l'aide d'une horloge interne pour calculer un décalage au lieu de faire une requête à chaque fois que vous besoin d'un horodatage. Finalement, vous auriez besoin d'actualiser le temps et "correcte" depuis votre minuteur sur que c'est probablement pas exact pendant de longues périodes de temps, plus il pourrait finalement être reporté.
Si vous avez besoin de temps plus précis que vous aurez probablement besoin d'une horloge. On pourrait essayer de faire un peu de correction basée sur ping, mais dans l'ensemble, le degré de précision qu'il doit être basé sur les besoins de votre projet.
Contacter directement une date/heure API sur l'Internet tel que décrit par @user2927848. Ou envoyer une simple requête HTTP à un serveur de confiance et de lire les
Date
en-tête de réponse.Si vous avez besoin de plus de précision, vous pouvez utiliser un Client NTP pour Arduino.