<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://tala-informatique.fr/index.php?action=history&amp;feed=atom&amp;title=Esp8266_ntp_client</id>
	<title>Esp8266 ntp client - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://tala-informatique.fr/index.php?action=history&amp;feed=atom&amp;title=Esp8266_ntp_client"/>
	<link rel="alternate" type="text/html" href="https://tala-informatique.fr/index.php?title=Esp8266_ntp_client&amp;action=history"/>
	<updated>2026-06-13T17:07:23Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://tala-informatique.fr/index.php?title=Esp8266_ntp_client&amp;diff=3045&amp;oldid=prev</id>
		<title>Jc.forton : /* Installation des librairies */</title>
		<link rel="alternate" type="text/html" href="https://tala-informatique.fr/index.php?title=Esp8266_ntp_client&amp;diff=3045&amp;oldid=prev"/>
		<updated>2018-02-18T23:06:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Installation des librairies&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 19 février 2018 à 01:06&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Ligne 7 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 7 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Time.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Time.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fichier:Arduino ntp libraries.png|500px|centré]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fichier:Arduino ntp libraries.png|500px|centré]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;N&#039;hésitez pas à aller directement sur la page [https://github.com/gmag11/NtpClient/blob/master/src/NtpClientLib.h Github] de la librairie pour avoir la liste des fonctions.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Connexion au réseau =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Connexion au réseau =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Commençons par nous connecter à un réseau en utilisant le DHCP :  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Commençons par nous connecter à un réseau en utilisant le DHCP :  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki-mediawiki-:diff:1.41:old-3044:rev-3045:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jc.forton</name></author>
	</entry>
	<entry>
		<id>https://tala-informatique.fr/index.php?title=Esp8266_ntp_client&amp;diff=3044&amp;oldid=prev</id>
		<title>Jc.forton : Page créée avec « = Introduction = Dans cet exemple nous allons utiliser le protocole NTP, qui va nous permettre de récupérer l&#039;heure pour effectuer des opérations qui nécessitent une c... »</title>
		<link rel="alternate" type="text/html" href="https://tala-informatique.fr/index.php?title=Esp8266_ntp_client&amp;diff=3044&amp;oldid=prev"/>
		<updated>2018-02-18T22:38:48Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « = Introduction = Dans cet exemple nous allons utiliser le protocole NTP, qui va nous permettre de récupérer l&amp;#039;heure pour effectuer des opérations qui nécessitent une c... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Introduction =&lt;br /&gt;
Dans cet exemple nous allons utiliser le protocole NTP, qui va nous permettre de récupérer l&amp;#039;heure pour effectuer des opérations qui nécessitent une certaine précision.&lt;br /&gt;
&lt;br /&gt;
= Installation des librairies =&lt;br /&gt;
Avant d&amp;#039;aller plus loin, l&amp;#039;exemple suivant nécessite l&amp;#039;installation de deux librairies :&lt;br /&gt;
*NtpClientLib;&lt;br /&gt;
*Time.&lt;br /&gt;
[[Fichier:Arduino ntp libraries.png|500px|centré]]&lt;br /&gt;
= Connexion au réseau =&lt;br /&gt;
Commençons par nous connecter à un réseau en utilisant le DHCP : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
const char ssid[] = &amp;quot;cfcasa&amp;quot;;&lt;br /&gt;
const char password[] = &amp;quot;********&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
	// on démarre le port série&lt;br /&gt;
	Serial.begin(115200);&lt;br /&gt;
	// On attend &amp;quot;un peu&amp;quot; que le buffer soit prêt&lt;br /&gt;
	delay(10);&lt;br /&gt;
	// On efface la configuration précédente&lt;br /&gt;
	WiFi.disconnect(true);&lt;br /&gt;
	// Initialisation de la connection&lt;br /&gt;
	WiFi.begin(ssid, password);&lt;br /&gt;
	// Test pour déterminer quand la connection est prete&lt;br /&gt;
	while (WiFi.status() != WL_CONNECTED) {&lt;br /&gt;
		delay(500);&lt;br /&gt;
	}&lt;br /&gt;
	// Affichage des informations&lt;br /&gt;
	Serial.print(&amp;quot;\nConnecte a &amp;quot;);&lt;br /&gt;
	Serial.print(ssid);&lt;br /&gt;
	Serial.print(&amp;quot; avec l&amp;#039;ip &amp;quot;);&lt;br /&gt;
	Serial.println(WiFi.localIP());&lt;br /&gt;
}&lt;br /&gt;
void loop() {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Le code précédent vous donne le résultat suivant sur le port série :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connecte a cfcasa avec l&amp;#039;ip 192.168.1.9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Client NTP =&lt;br /&gt;
Nous allons maintenant ajouter la partie client NTP.&lt;br /&gt;
&lt;br /&gt;
Dans la partie des imports ajoutez la ligne suivante : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;TimeLib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;NtpClientLib.h&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dans la partie des variables statiques ajoutez les lignes suivantes : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// Serveur NTP&lt;br /&gt;
const char ntpServer[] = &amp;quot;pool.ntp.org&amp;quot;;&lt;br /&gt;
// Offset depuis UTC&lt;br /&gt;
int8_t timeZoneOffset = 0;&lt;br /&gt;
// Le fuseau utilise les horaires été / hiver&lt;br /&gt;
bool dayligthSaving = true;&lt;br /&gt;
// Minutes d&amp;#039;offset à ajouter&lt;br /&gt;
int8_t minutesOffset = 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A la fin de la fonction &amp;#039;&amp;#039;setup()&amp;#039;&amp;#039; nous allons ajouter les lignes suivantes :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// Démarrage du processus NTP&lt;br /&gt;
NTP.begin (ntpServer, timeZoneOffset, dayligthSaving, minutesOffset);&lt;br /&gt;
// Interval de synchronisation en seconde (30 min.)&lt;br /&gt;
NTP.setInterval (1800);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nous allons créer la fonction &amp;#039;&amp;#039;printTime&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void printTime(){&lt;br /&gt;
  static uint16_t i = 0;&lt;br /&gt;
  Serial.printf (&amp;quot;%d %s &amp;quot;, i, NTP.getTimeDateString ().c_str());&lt;br /&gt;
  Serial.print (NTP.isSummerTime () ? &amp;quot;Heure d&amp;#039;été. &amp;quot; : &amp;quot;Heure d&amp;#039;hiver. &amp;quot;);&lt;br /&gt;
  Serial.printf (&amp;quot;Démarrage le: %s allumé depuis %s\n&amp;quot;, NTP.getTimeDateString(NTP.getFirstSync()).c_str(), NTP.getUptimeString().c_str());&lt;br /&gt;
  i++;&lt;br /&gt;
  delay(5000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Que nous allons appeler dans la fonction &amp;#039;&amp;#039;loop&amp;#039;&amp;#039; : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void loop () {&lt;br /&gt;
  printTime();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Le code précédent vous donne le résultat suivant sur le port série :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 00:00:01 01/01/1970 Heure d&amp;#039;hiver. Démarrage le: 00:00:00 01/01/1970 allumé depuis    0 days 00:00:09&lt;br /&gt;
1 00:00:06 01/01/1970 Heure d&amp;#039;hiver. Démarrage le: 00:00:00 01/01/1970 allumé depuis    0 days 00:00:14&lt;br /&gt;
2 00:00:11 01/01/1970 Heure d&amp;#039;hiver. Démarrage le: 00:00:00 01/01/1970 allumé depuis    0 days 00:00:19&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Récupérer les événements =&lt;br /&gt;
Il est possible de récupérer les événements NTP grâce à la fonction &amp;#039;&amp;#039;onNTPSyncEvent&amp;#039;&amp;#039;. Pour cela nous allons créer la fonction &amp;#039;&amp;#039;processNtpEvent&amp;#039;&amp;#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void processNtpEvent (NTPSyncEvent_t ntpEvent) {&lt;br /&gt;
  if (ntpEvent) {&lt;br /&gt;
    Serial.print (&amp;quot;Erreur de synchronisation: &amp;quot;);&lt;br /&gt;
    if (ntpEvent == noResponse)&lt;br /&gt;
      Serial.println (&amp;quot;Serveur NTP injoignable&amp;quot;);&lt;br /&gt;
    else if (ntpEvent == invalidAddress)&lt;br /&gt;
      Serial.println (&amp;quot;Adresse du serveur NTP invalide&amp;quot;);&lt;br /&gt;
  } else {&lt;br /&gt;
    Serial.print (&amp;quot;Récupération du temps NTP: &amp;quot;);&lt;br /&gt;
    Serial.println (NTP.getTimeDateString (NTP.getLastNTPSync ()));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nous allons ensuite l&amp;#039;appeler dans la fonction &amp;#039;&amp;#039;loop&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
NTP.onNTPSyncEvent ([](NTPSyncEvent_t event) {&lt;br /&gt;
  processNtpEvent(event);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Le code précédent vous donne le résultat suivant sur le port série :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Récupération du temps NTP: 22:38:21 18/02/2018&lt;br /&gt;
0 22:38:21 18/02/2018 Heure d&amp;#039;hiver. Démarrage le: 22:38:21 18/02/2018 allumé depuis    0 days 00:00:12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jc.forton</name></author>
	</entry>
</feed>