Cette page fournit une interface de navigation pour trouver toutes les valeurs d’une propriété et une page donnée. D’autres interfaces de recherche disponibles incluent la recherche de propriété et le constructeur de requête « ask ».
Liste de résultats
*'''Episode 2 :''' [https://www.wikidebro … </br>*'''Episode 2 :''' [https://www.wikidebrouillard.org/wiki/Code_Minimal_R%C3%A9seau_-_(2)_H%C3%A9berger_un_site_web_sur_mon_Wemos_D1_mini Héberger un site web sur mon Wemos D1 mini].</br>*'''Episode 3 :''' [https://www.wikidebrouillard.org/wiki/Code_Minimal_R%C3%A9seau_-_(3)_Mon_D1_Mini_r%C3%A9cup%C3%A8re_des_donn%C3%A9es_sur_Internet_(Json) Mon Wemos D1 mini récupère des donnée sur Internet (Json)].</br>*'''Episode 4 :''' [https://www.wikidebrouillard.org/wiki/Code_Minimal_R%C3%A9seau_-_(4)_Mes_Wemos_D1_Mini_discutent_sur_Internet_avec_MQTT Mon Wemos D1 mini discute sur Internet avec MQTT].</br></br>''Ces trois épisodes sont indépendants les uns des autres''.</br>des sont indépendants les uns des autres''.
+
<nowiki>Cette première étape permet … <nowiki>Cette première étape permet à un Wemos D1 mini (ou autre carte compatible Arduino avec puce Wi-Fi) de se connecter au Wi-Fi dans un environnement connu, et qui ne change pas ; C'est-à-dire que l'on à accès à une borne Wi-Fi, on connait son mot de passe - aka "clé de sécurité réseau", et a priori la carte va rester dans cet environnement.<br /><br /><br />Ces bibliothèques sont pré-chargées dans l'environnement Arduino, il n'est pas nécessaire d'aller les chercher dans le gestionnaire de bibliothèques.<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">Connexion Wi-Fi de base<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include <ESP8266WiFi.h> // Pour le Wemos D1 Mini, ou ...<br />#include <WiFi.h> // ... Pour l'ESP32<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l’objet<br /></td><td valign="middle" align="left"><br /></td></tr><tr><br /><td rowspan="3" valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Démarrage de la connexion<br /></td><td valign="middle" align="left">WiFi.begin(SSID, SecKey) ; // Où SSID est le nom du point d'accès Wi-Fi, et SecKey son mot de passe<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Test de la connexion<br /></td><td valign="middle" align="left">if (WiFi.Status() == WL_CONNECTED) { (...) }<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Récupération de l'adresse IP<br /></td><td>WiFi.localIP() ;<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td>Le test de la connexion, et la récupération de l'adresse IP peuvent aussi être utilisés dans le loop().<br /></td></tr></table><br /><br /><br />Pour connaître toutes les autres possibilités de ces bibliothèques, voir leurs références, respectivement [https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi ici] (D1 Mini) et [https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi ici] (ESP32).<br /><br/><div class="mw-highlight mw-highlight-lang-arduino mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="cm">/* =========================================================================================================</span><br /><span class="linenos" data-line="2"></span><span class="cm"> * </span><br /><span class="linenos" data-line="3"></span><span class="cm"> * CODE MINIMAL RESEAU - ETAPE 1 : connexion basique au Wi-Fi</span><br /><span class="linenos" data-line="4"></span><span class="cm"> * </span><br /><span class="linenos" data-line="5"></span><span class="cm"> * ---------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="6"></span><span class="cm"> * Les petits Débrouillards - décembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/</span><br /><span class="linenos" data-line="7"></span><span class="cm"> * ========================================================================================================= */</span><br /><span class="linenos" data-line="8"></span><br /><span class="linenos" data-line="9"></span><span class="c1">// Bibliothèques WiFi : UNE SEULE EST NECESSAIRE, choisir celle correspondant à votre matériel. </span><br /><span class="linenos" data-line="10"></span><span class="c1">// ATTENTION AUX MAJUSCULES & MINUSCULES ! Sinon d'autres bibliothèques, plus ou moins valides, seraient utilisées.</span><br /><span class="linenos" data-line="11"></span><br /><span class="linenos" data-line="12"></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><ESP8266WiFi.h></span><span class="w"> </span><span class="c1">// A utiliser pour le D1 Mini </span><br /><span class="linenos" data-line="13"></span><span class="c1">//#include <WiFi.h> // A utiliser pour l'ESP32</span><br /><span class="linenos" data-line="14"></span><br /><span class="linenos" data-line="15"></span><span class="c1">// Définition du point d'accès Wi-Fi et de son mot de passe ("clé de sécurité")</span><br /><span class="linenos" data-line="16"></span><span class="c1">// A REMPLACER PAR LES VERITABLES VALEURS CORRESPONDANT A VOTRE EMPLACEMENT</span><br /><span class="linenos" data-line="17"></span><span class="w"> </span><br /><span class="linenos" data-line="18"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySSID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"MA_BOX_INTERNET"</span><span class="p">;</span><br /><span class="linenos" data-line="19"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySecKey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"MA_CLE_DE_SECURITE"</span><span class="p">;</span><br /><span class="linenos" data-line="20"></span><br /><span class="linenos" data-line="21"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="22"></span><span class="cm"> * SETUP : Initialisation</span><br /><span class="linenos" data-line="23"></span><span class="cm"> * -------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="24"></span><span class="kr">void</span><span class="w"> </span><span class="nb">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="25"></span><br /><span class="linenos" data-line="26"></span><span class="w"> </span><span class="c1">// Initialisation de la liaison série, affichage 1er message</span><br /><span class="linenos" data-line="27"></span><br /><span class="linenos" data-line="28"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span><br /><span class="linenos" data-line="29"></span><span class="w"> </span><span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="30"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><br /><span class="linenos" data-line="31"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="32"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Exemple de connexion Wi-Fi basique"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="33"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="34"></span><br /><span class="linenos" data-line="35"></span><span class="w"> </span><span class="c1">// Démarrage de la tentative de connexion, avec le nom du point d'accès Wi-Fi et son mot de passe</span><br /><span class="linenos" data-line="36"></span><br /><span class="linenos" data-line="37"></span><span class="w"> </span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="n">mySSID</span><span class="p">,</span><span class="w"> </span><span class="n">mySecKey</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="38"></span><br /><span class="linenos" data-line="39"></span><span class="w"> </span><span class="c1">// Attente de la connexion pendant 10 secondes (20 x 500 ms)</span><br /><span class="linenos" data-line="40"></span><br /><span class="linenos" data-line="41"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Connexion à "</span><span class="p">);</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">mySSID</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">" "</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="42"></span><span class="w"> </span><span class="kr">int</span><span class="w"> </span><span class="n">tryNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="43"></span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="n">status</span><span class="p">()</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">WL_CONNECTED</span><span class="p">)</span><br /><span class="linenos" data-line="44"></span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="45"></span><span class="w"> </span><span class="nf">delay</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span><br /><span class="linenos" data-line="46"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"."</span><span class="p">);</span><br /><span class="linenos" data-line="47"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">++</span><span class="n">tryNumber</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="48"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">()</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Pas de connexion, abandon"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="49"></span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="50"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="51"></span><span class="w"> </span><span class="p">}</span><span class="w"> </span><br /><span class="linenos" data-line="52"></span><br /><span class="linenos" data-line="53"></span><span class="w"> </span><span class="c1">// La connexion a réussi ! On affiche l'adresse IP obtenue.</span><br /><span class="linenos" data-line="54"></span><span class="w"> </span><br /><span class="linenos" data-line="55"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Connecté ! Adresse IP : "</span><span class="p">);</span><br /><span class="linenos" data-line="56"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">localIP</span><span class="p">());</span><br /><span class="linenos" data-line="57"></span><span class="w"> </span><br /><span class="linenos" data-line="58"></span><span class="p">}</span><br /><span class="linenos" data-line="59"></span><br /><span class="linenos" data-line="60"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="61"></span><span class="cm"> * LOOP : fonction appelée régulièrement par le système</span><br /><span class="linenos" data-line="62"></span><span class="cm"> * ------------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="63"></span><span class="kr">void</span><span class="w"> </span><span class="nb">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><br /><span class="linenos" data-line="64"></span><span class="w"> </span><span class="cm">/* On ne fait rien de particulier sur cet exemple */</span><br /><span class="linenos" data-line="65"></span><span class="p">}</span><br /></pre></div></nowiki>On ne fait rien de particulier sur cet exemple */</span><br /><span class="linenos" data-line="65"></span><span class="p">}</span><br /></pre></div></nowiki>
<nowiki>Dans l'étape précédente on s … <nowiki>Dans l'étape précédente on supposait que le Wi-Fi était permanent (cas où les cartes ne quittent pas notre labo, par exemple). Mais si on souhaite faire voyager nos cartes (démos dans des écoles, etc ...), on a trois possibilités : <br /><br />*On vient avec son environnement de développement Arduino, on met à jour le code Arduino avec les nouvelles informations Wi-Fi, et on téléverse le code sur toutes nos cartes ... un peu laborieux, n'est-il pas ?<br />*ou bien, on dispose en permanence d'un téléphone mobile avec forfait données (4G ou +), et on utilise systématiquement celui-ci en mode "Point d'accès mobile". C'est donc ce téléphone qui sera vu en permanence comme le point d'accès Wi-Fi préféré de votre carte (D1 mini ou ESP32), quelque soit l'endroit où vous vous trouvez. Pas toujours possible ...<br />*et sinon, on utilise la bibliothèque "WiFiManager", qui nous simplifie grandement la tâche !<br /><br />En effet, cette bibliothèque permet d'enregistrer de façon pérenne (même si on débranche la carte) le dernier Point d'Accès Wi-Fi sur lequel la carte a réussi à se connecter. La bibliothèque va d'abord chercher à se connecter sur ce Point d'Accès "connu". Et si ça ne fonctionne pas (on a changé de lieu, par exemple), alors elle va se positionner elle-même en mode "Point d'Accès", et va proposer sur l'adresse 192.168.4.1 une interface web permettant d'afficher les Points d'Accès Wi-Fi environnants, et d'en sélectionner un. Le nouveau Point d'Accès choisi sera sauvegardé pour les fois suivantes. <br /><br /><br /><u>Interface web du WiFi Manager :</u><br /><br />#Avec un téléphone ou ordinateur, connectez-vous au point d'accès "AP_PetitDeb" et tapez le mot de passe associé. Il y aura probablement un message indiquant qu'Internet n'est pas disponible, c'est normal, ne pas en tenir compte ;<br />#Sur votre navigateur préféré, tapez "192.168.4.1", ce qui fera apparaître l'interface web générée par la bibliothèque WiFiManager. Cliquez sur "Configure WiFi", vous arrivez sur le choix du point d'accès.<br />#Choisissez alors votre point d'accès Wi-Fi préféré, son nom sera reporté dans la case "SSID", complétez avec le mot de passe dans la case "Password", et cliquez sur Save<br /><br /><br/><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Code minimal des fonctions r seau WiKi WiFiManager S.png" data-sourceimage="https://wikidebrouillard.qualif.dokit.app/images/f/f8/Code_minimal_des_fonctions_r_seau_WiKi_WiFiManager_S.png"><span ><figure class="mw-halign-center" typeof="mw:File/Frameless"><a href="/wiki/Fichier:Code_minimal_des_fonctions_r_seau_WiKi_WiFiManager_S.png" class="mw-file-description" title="Utilisation du WiFiManager"><img alt="Image permettant de comprendre l'utilisation de la bibliothèque WiFiManager" src="/images/thumb/f/f8/Code_minimal_des_fonctions_r_seau_WiKi_WiFiManager_S.png/800px-Code_minimal_des_fonctions_r_seau_WiKi_WiFiManager_S.png" decoding="async" loading="lazy" width="800" height="574" class="mw-file-element" srcset="/images/f/f8/Code_minimal_des_fonctions_r_seau_WiKi_WiFiManager_S.png 1.5x" data-file-width="1200" data-file-height="861" /></a><figcaption>Utilisation du WiFiManager</figcaption></figure></span></div><br /><br /><br />'''Bibliothèque'''<br /><br /><br><br />La bibliothèque doit être rajoutée à l'environnement Arduino dans le gestionnaire de Bibliothèques (voir [https://www.wikidebrouillard.org/wiki/Importer_des_biblioth%C3%A8ques_dans_l%27interface_Arduino ici] pour le mode d'emploi) :<br /><br /><br/><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Code minimal des fonctions reseau Image.png" data-sourceimage="https://wikidebrouillard.qualif.dokit.app/images/5/53/Code_minimal_des_fonctions_reseau_Image.png"><span ><figure class="mw-halign-left" typeof="mw:File/Frameless"><a href="/wiki/Fichier:Code_minimal_des_fonctions_reseau_Image.png" class="mw-file-description" title="Bibliothèque WiFiManager"><img alt="Image de la Bibliothèque WiFiManager dans le Gestionnaire de Bibliothèques Arduino" src="/images/5/53/Code_minimal_des_fonctions_reseau_Image.png" decoding="async" loading="lazy" width="756" height="110" class="mw-file-element" data-file-width="756" data-file-height="110" /></a><figcaption>Bibliothèque WiFiManager</figcaption></figure></span></div><br /><br /><br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">Bibliothèque Wifi Manager<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include <WiFiManager.h><br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l’objet<br /></td><td valign="middle" align="left">WiFiManager myWiFiManager;<br /></td></tr><tr><br /><td rowspan="3" valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Déclaration du mode bloquant<br /></td><td valign="middle" align="left">myWiFiManager.setConfigPortalBlocking(true); // ... ou rien (mode par défaut)<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Déclaration du mode non bloquant<br /></td><td>myWiFiManager.setConfigPortalBlocking(false);<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Tentative de connexion à un PA Wi-Fi<br /></td><td>if (myWiFiManager.autoConnect(Nom_AP, MotDePasse_AP)) { (... connexion OK !) }<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Activation régulière pour le mode non bloquant<br /></td><td valign="middle" align="left">myWiFiManager.process() ; // Obligatoire en mode non bloquant<br /></td></tr></table><br /><br />Pour connaître toutes les autres possibilités de cette bibliothèque, voir sa référence, [https://jp112sdl.github.io/WiFiManager/ ici].<br /><br /><br /><br />'''Code minimal : mode bloquant (par défaut)'''<br /><br/><div class="mw-highlight mw-highlight-lang-arduino mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="cm">/* =========================================================================================================</span><br /><span class="linenos" data-line="2"></span><span class="cm"> * </span><br /><span class="linenos" data-line="3"></span><span class="cm"> * CODE MINIMAL RESEAU - ETAPE 2 : Connexion à un point d'accès choisi par l'utilisateur</span><br /><span class="linenos" data-line="4"></span><span class="cm"> * </span><br /><span class="linenos" data-line="5"></span><span class="cm"> * CAS A : MODE BLOQUANT - On attend tant que l'utilisateur n'a pas choisi son Point d'Accès Wi-Fi</span><br /><span class="linenos" data-line="6"></span><span class="cm"> * </span><br /><span class="linenos" data-line="7"></span><span class="cm"> * ---------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="8"></span><span class="cm"> * Les petits Débrouillards - décembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/</span><br /><span class="linenos" data-line="9"></span><span class="cm"> * ========================================================================================================= */</span><br /><span class="linenos" data-line="10"></span><br /><span class="linenos" data-line="11"></span><span class="c1">// Bibliothèque WiFiManager. Un seule bibibliothèque suffit ici, quelque soit la carte (ESP32 ou Wemos D1 Mini)</span><br /><span class="linenos" data-line="12"></span><br /><span class="linenos" data-line="13"></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><WiFiManager.h></span><span class="w"> </span><span class="c1">// Gestion de la connexion Wi-Fi (recherche de points d'accès) </span><br /><span class="linenos" data-line="14"></span><span class="n">WiFiManager</span><span class="w"> </span><span class="n">myWiFiManager</span><span class="p">;</span><span class="w"> </span><span class="c1">// Création de mon instance de WiFiManager.</span><br /><span class="linenos" data-line="15"></span><br /><span class="linenos" data-line="16"></span><span class="c1">// Définition de la carte lorsqu'elle se positionne en mode "Point d'Accès".</span><br /><span class="linenos" data-line="17"></span><span class="w"> </span><br /><span class="linenos" data-line="18"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySSID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"AP_PetitDeb"</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="c1">// Nom du point d'accès</span><br /><span class="linenos" data-line="19"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySecKey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"PSWD1234"</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="c1">// Mot de passe, 8 caractères au minimum</span><br /><span class="linenos" data-line="20"></span><br /><span class="linenos" data-line="21"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="22"></span><span class="cm"> * SETUP : Initialisation</span><br /><span class="linenos" data-line="23"></span><span class="cm"> * -------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="24"></span><span class="kr">void</span><span class="w"> </span><span class="nb">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="25"></span><br /><span class="linenos" data-line="26"></span><span class="w"> </span><span class="c1">// Initialisation de la liaison série, affichage 1er message</span><br /><span class="linenos" data-line="27"></span><br /><span class="linenos" data-line="28"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span><br /><span class="linenos" data-line="29"></span><span class="w"> </span><span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="30"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><br /><span class="linenos" data-line="31"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="32"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Exemple de connexion Wi-Fi évoluée"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="33"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="34"></span><br /><span class="linenos" data-line="35"></span><span class="w"> </span><span class="c1">// Tentative de connexion au Wi-Fi. Si la carte n'a pas réussi se connecter au dernier Point d'Accès connu,</span><br /><span class="linenos" data-line="36"></span><span class="w"> </span><span class="c1">// alors elle va se positionner en mode Point d'Accès, demandera sur l'adresse 192.168.4.1 quel nouveau</span><br /><span class="linenos" data-line="37"></span><span class="w"> </span><span class="c1">// Point d'Accès choisir. Par défaut, on restera bloqué tant que l'utilisateur n'aura pas fait de choix.</span><br /><span class="linenos" data-line="38"></span><span class="w"> </span><br /><span class="linenos" data-line="39"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Connexion au Wi-Fi ..."</span><span class="p">);</span><br /><span class="linenos" data-line="40"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">myWiFiManager</span><span class="p">.</span><span class="n">autoConnect</span><span class="p">(</span><span class="n">mySSID</span><span class="p">,</span><span class="w"> </span><span class="n">mySecKey</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="41"></span><span class="w"> </span><br /><span class="linenos" data-line="42"></span><span class="w"> </span><span class="c1">// Wi-Fi en mode standard ok --> On affiche l'adresse IP obtenue.</span><br /><span class="linenos" data-line="43"></span><br /><span class="linenos" data-line="44"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Connecté ! Adresse IP : "</span><span class="p">);</span><br /><span class="linenos" data-line="45"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">localIP</span><span class="p">());</span><br /><span class="linenos" data-line="46"></span><span class="w"> </span><br /><span class="linenos" data-line="47"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="48"></span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="49"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Connexion Wi-Fi KO :-("</span><span class="p">);</span><span class="w"> </span><br /><span class="linenos" data-line="50"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="51"></span><span class="w"> </span><br /><span class="linenos" data-line="52"></span><span class="p">}</span><br /><span class="linenos" data-line="53"></span><br /><span class="linenos" data-line="54"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="55"></span><span class="cm"> * LOOP : fonction appelée régulièrement par le système</span><br /><span class="linenos" data-line="56"></span><span class="cm"> * ------------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="57"></span><span class="kr">void</span><span class="w"> </span><span class="nb">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><br /><span class="linenos" data-line="58"></span><span class="w"> </span><span class="cm">/* On ne fait rien de particulier sur cet exemple */</span><br /><span class="linenos" data-line="59"></span><span class="p">}</span><br /></pre></div><br /><br /><br /><br />'''Code minimal : mode non bloquant'''<br/><div class="mw-highlight mw-highlight-lang-arduino mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="cm">/* =========================================================================================================</span><br /><span class="linenos" data-line="2"></span><span class="cm"> * </span><br /><span class="linenos" data-line="3"></span><span class="cm"> * CODE MINIMAL RESEAU - ETAPE 2 : Connexion à un point d'accès choisi par l'utilisateur</span><br /><span class="linenos" data-line="4"></span><span class="cm"> * </span><br /><span class="linenos" data-line="5"></span><span class="cm"> * CAS B : MODE NON BLOQUANT - On peut faire autre chose en attendant que l'utilisateur ait choisi</span><br /><span class="linenos" data-line="6"></span><span class="cm"> * son Point d'Accès Wi-Fi</span><br /><span class="linenos" data-line="7"></span><span class="cm"> * </span><br /><span class="linenos" data-line="8"></span><span class="cm"> * ---------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="9"></span><span class="cm"> * Les petits Débrouillards - décembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/</span><br /><span class="linenos" data-line="10"></span><span class="cm"> * ========================================================================================================= */</span><br /><span class="linenos" data-line="11"></span><br /><span class="linenos" data-line="12"></span><span class="c1">// Bibliothèque WiFiManager. Un seule bibibliothèque suffit ici, quelque soit la carte (ESP32 ou Wemos D1 Mini)</span><br /><span class="linenos" data-line="13"></span><br /><span class="linenos" data-line="14"></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><WiFiManager.h></span><span class="w"> </span><span class="c1">// Gestion de la connexion Wi-Fi (recherche de points d'accès) </span><br /><span class="linenos" data-line="15"></span><span class="n">WiFiManager</span><span class="w"> </span><span class="n">myWiFiManager</span><span class="p">;</span><span class="w"> </span><span class="c1">// Création de mon instance de WiFiManager.</span><br /><span class="linenos" data-line="16"></span><br /><span class="linenos" data-line="17"></span><span class="c1">// Définition de la carte lorsqu'elle se positionne en mode "Point d'Accès".</span><br /><span class="linenos" data-line="18"></span><span class="w"> </span><br /><span class="linenos" data-line="19"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySSID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"AP_PetitDeb"</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="c1">// Nom du point d'accès</span><br /><span class="linenos" data-line="20"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySecKey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"PSWD1234"</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="c1">// Mot de passe, 8 caractères au minimum</span><br /><span class="linenos" data-line="21"></span><br /><span class="linenos" data-line="22"></span><span class="c1">// Pour les besoins de l'exemple (traces)</span><br /><span class="linenos" data-line="23"></span><br /><span class="linenos" data-line="24"></span><span class="kr">bool</span><span class="w"> </span><span class="n">IAmNotConnected</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kr">true</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="25"></span><br /><span class="linenos" data-line="26"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="27"></span><span class="cm"> * SETUP : Initialisation</span><br /><span class="linenos" data-line="28"></span><span class="cm"> * -------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="29"></span><span class="kr">void</span><span class="w"> </span><span class="nb">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="30"></span><br /><span class="linenos" data-line="31"></span><span class="w"> </span><span class="c1">// Initialisation de la liaison série, affichage 1er message</span><br /><span class="linenos" data-line="32"></span><br /><span class="linenos" data-line="33"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span><br /><span class="linenos" data-line="34"></span><span class="w"> </span><span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="35"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><br /><span class="linenos" data-line="36"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="37"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Exemple de connexion Wi-Fi évoluée"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="38"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"----------------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="39"></span><br /><span class="linenos" data-line="40"></span><span class="w"> </span><span class="c1">// Déclaration du mode "non bloquant".</span><br /><span class="linenos" data-line="41"></span><span class="w"> </span><span class="c1">// Bonus : suppression des traces fournies par le WiFiManager (il est très bavard)</span><br /><span class="linenos" data-line="42"></span><span class="w"> </span><br /><span class="linenos" data-line="43"></span><span class="w"> </span><span class="n">myWiFiManager</span><span class="p">.</span><span class="n">setConfigPortalBlocking</span><span class="p">(</span><span class="kr">false</span><span class="p">);</span><span class="w"> </span><br /><span class="linenos" data-line="44"></span><span class="w"> </span><span class="n">myWiFiManager</span><span class="p">.</span><span class="n">setDebugOutput</span><span class="p">(</span><span class="kr">false</span><span class="p">);</span><span class="w"> </span><br /><span class="linenos" data-line="45"></span><br /><span class="linenos" data-line="46"></span><span class="w"> </span><span class="c1">// Tentative de connexion au Wi-Fi. Si la carte n'a pas réussi se connecter au dernier Point d'Accès connu,</span><br /><span class="linenos" data-line="47"></span><span class="w"> </span><span class="c1">// alors elle va se positionner en mode Point d'Accès, demandera sur l'adresse 192.168.4.1 quel nouveau</span><br /><span class="linenos" data-line="48"></span><span class="w"> </span><span class="c1">// Point d'Accès choisir. On ne reste pas bloqué, la suite du setup() va se dérouler, et le WiFiManager</span><br /><span class="linenos" data-line="49"></span><span class="w"> </span><span class="c1">// traitera les demandes ultérieurement, dans la fonction loop().</span><br /><span class="linenos" data-line="50"></span><span class="w"> </span><br /><span class="linenos" data-line="51"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Connexion au Wi-Fi ..."</span><span class="p">);</span><br /><span class="linenos" data-line="52"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">myWiFiManager</span><span class="p">.</span><span class="n">autoConnect</span><span class="p">(</span><span class="n">mySSID</span><span class="p">,</span><span class="w"> </span><span class="n">mySecKey</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="53"></span><span class="w"> </span><br /><span class="linenos" data-line="54"></span><span class="w"> </span><span class="c1">// Wi-Fi en mode standard ok --> On affiche l'adresse IP obtenue.</span><br /><span class="linenos" data-line="55"></span><br /><span class="linenos" data-line="56"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Connecté ! Adresse IP : "</span><span class="p">);</span><br /><span class="linenos" data-line="57"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">localIP</span><span class="p">());</span><br /><span class="linenos" data-line="58"></span><span class="w"> </span><br /><span class="linenos" data-line="59"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="60"></span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="61"></span><br /><span class="linenos" data-line="62"></span><span class="w"> </span><span class="c1">// Wi-Fi standard KO, on est passé en mode AP, qui sera traité dans le loop().</span><br /><span class="linenos" data-line="63"></span><span class="w"> </span><br /><span class="linenos" data-line="64"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Pas de point Wi-Fi connu, passage en mode AP (identifiant </span><span class="se">\"</span><span class="s">"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="kr">String</span><span class="p">(</span><span class="n">mySSID</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"</span><span class="se">\"</span><span class="s">)"</span><span class="p">);</span><span class="w"> </span><br /><span class="linenos" data-line="65"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="66"></span><span class="w"> </span><br /><span class="linenos" data-line="67"></span><span class="p">}</span><br /><span class="linenos" data-line="68"></span><br /><span class="linenos" data-line="69"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="70"></span><span class="cm"> * LOOP : fonction appelée régulièrement par le système</span><br /><span class="linenos" data-line="71"></span><span class="cm"> * ------------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="72"></span><span class="kr">void</span><span class="w"> </span><span class="nb">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><br /><span class="linenos" data-line="73"></span><span class="w"> </span><br /><span class="linenos" data-line="74"></span><span class="w"> </span><span class="c1">// Obligatoire en mode non bloquant, pour que le WiFiManager continue sa tâche.</span><br /><span class="linenos" data-line="75"></span><br /><span class="linenos" data-line="76"></span><span class="w"> </span><span class="n">myWiFiManager</span><span class="p">.</span><span class="nf">process</span><span class="p">()</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="77"></span><br /><span class="linenos" data-line="78"></span><span class="w"> </span><span class="c1">// Test pour savoir si on est enfin connecté - on ne l'affiche qu'une fois pour limiter les traces</span><br /><span class="linenos" data-line="79"></span><br /><span class="linenos" data-line="80"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">IAmNotConnected</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="81"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="n">status</span><span class="p">()</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">WL_CONNECTED</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="82"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Connecté au point d'accès "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="kr">String</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">SSID</span><span class="p">())</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">", Adresse IP : "</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="83"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="nf">localIP</span><span class="p">());</span><br /><span class="linenos" data-line="84"></span><span class="w"> </span><span class="n">IAmNotConnected</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kr">false</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="85"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="86"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="87"></span><span class="w"> </span><br /><span class="linenos" data-line="88"></span><span class="p">}</span><br /></pre></div><br/></nowiki>t;span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="87"></span><span class="w"> </span><br /><span class="linenos" data-line="88"></span><span class="p">}</span><br /></pre></div><br/></nowiki>
<nowiki>Il existe des cas particulie … <nowiki>Il existe des cas particuliers où une application n'a en fait pas besoin du Wi-Fi pour aller envoyer ou recevoir des données d'Internet, mais souhaite être juste être considérée comme un Point d'Accès Wi-Fi. Ce mode est suffisant si l'on souhaite commander notre carte depuis un système proche. Par exemple pour commander un système domotique en mode web depuis notre mobile ... petit "spoiler" de l'épisode 2 :-) <br /><br /><br />Pour utiliser le mode "Point d'Accès", on garde les librairies de base, vues à l'étape 1, en utilisant d'autres fonctions. <br/><br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">Mode Point d'Accès<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include <ESP8266WiFi.h> // Pour le Wemos D1 Mini, ou ...<br />#include <WiFi.h> // ... Pour l'ESP32<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l’objet<br /></td><td valign="middle" align="left"><br /></td></tr><tr><br /><td rowspan="3" valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Lancement du mode AP<br />avec mot de passe<br /></td><td valign="middle" align="left">if (WiFi.softAP(SSID, SecKey)) { (... succès ... } ; // Où SSID est le nom du point d'accès Wi-Fi, et SecKey son mot de passe<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Lancement du mode AP<br />sans mot de passe<br/><br /></td><td valign="middle" align="left">if (WiFi.softAP(SSID)) { (... succès ... } ; // Où SSID est le nom du point d'accès Wi-Fi<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Récupération de l'adresse IP de base<br /></td><td>WiFi.softAPIP() ;<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td>La récupération de l'adresse IP peut aussi être utilisée dans le loop().<br /></td></tr></table><br /><br /><br />Pour connaître toutes les autres possibilités de ces bibliothèques, voir leurs références, respectivement [https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi ici] (D1 Mini) et [https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFi ici] (ESP32).<br /><br/><div class="mw-highlight mw-highlight-lang-arduino mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="cm">/* =========================================================================================================</span><br /><span class="linenos" data-line="2"></span><span class="cm"> * </span><br /><span class="linenos" data-line="3"></span><span class="cm"> * CODE MINIMAL RESEAU - ETAPE 3 : Configuration en mode Point d'Accès</span><br /><span class="linenos" data-line="4"></span><span class="cm"> * </span><br /><span class="linenos" data-line="5"></span><span class="cm"> * ---------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="6"></span><span class="cm"> * Les petits Débrouillards - décembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/</span><br /><span class="linenos" data-line="7"></span><span class="cm"> * ========================================================================================================= */</span><br /><span class="linenos" data-line="8"></span><br /><span class="linenos" data-line="9"></span><span class="c1">// Bibliothèques WiFi : UNE SEULE EST NECESSAIRE, choisir celle correspondant à votre matériel. </span><br /><span class="linenos" data-line="10"></span><span class="c1">// ATTENTION AUX MAJUSCULES & MINUSCULES ! Sinon d'autres bibliothèques, plus ou moins valides, seraient utilisées.</span><br /><span class="linenos" data-line="11"></span><br /><span class="linenos" data-line="12"></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><ESP8266WiFi.h></span><span class="w"> </span><span class="c1">// A utiliser pour le D1 Mini </span><br /><span class="linenos" data-line="13"></span><span class="c1">//#include <WiFi.h> // A utiliser pour l'ESP32</span><br /><span class="linenos" data-line="14"></span><br /><span class="linenos" data-line="15"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySSID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"AP_PetitDeb"</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="16"></span><span class="kr">const</span><span class="w"> </span><span class="kr">char</span><span class="o">*</span><span class="w"> </span><span class="n">mySecKey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"PSWD1234"</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="17"></span><br /><span class="linenos" data-line="18"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="19"></span><span class="cm"> * SETUP : Initialisation</span><br /><span class="linenos" data-line="20"></span><span class="cm"> * -------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="21"></span><span class="kr">void</span><span class="w"> </span><span class="nb">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="22"></span><br /><span class="linenos" data-line="23"></span><span class="w"> </span><span class="c1">// Initialisation de la liaison série, affichage 1er message</span><br /><span class="linenos" data-line="24"></span><br /><span class="linenos" data-line="25"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">115200</span><span class="p">);</span><br /><span class="linenos" data-line="26"></span><span class="w"> </span><span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="27"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">();</span><span class="w"> </span><br /><span class="linenos" data-line="28"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"-----------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="29"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Exemple en mode Point d'Accès"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="30"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"-----------------------------"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="31"></span><br /><span class="linenos" data-line="32"></span><span class="w"> </span><span class="c1">// Déclaration du mode "Point d'Accès"</span><br /><span class="linenos" data-line="33"></span><br /><span class="linenos" data-line="34"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Déclaration Mode AP, SSID </span><span class="se">\"</span><span class="s">"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="kr">String</span><span class="p">(</span><span class="n">mySSID</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"</span><span class="se">\"</span><span class="s">"</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="35"></span><br /><span class="linenos" data-line="36"></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="n">softAP</span><span class="p">(</span><span class="n">mySSID</span><span class="p">,</span><span class="n">mySecKey</span><span class="p">))</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="37"></span><br /><span class="linenos" data-line="38"></span><span class="w"> </span><span class="c1">// Voilà, nous somme en mode "Point d'Accès", notre carte sera visible des systèmes Wi-Fi environnants,</span><br /><span class="linenos" data-line="39"></span><span class="w"> </span><span class="c1">// au même titre que les autres box Wi-Fi du voisinage. Par contre, ça s'arrête là, et si une fois</span><br /><span class="linenos" data-line="40"></span><span class="w"> </span><span class="c1">// connecté sur ce Point d'Accès "AP_PetitDeb" on cherche à joindre notre carte sur l'adresse IP obtenue</span><br /><span class="linenos" data-line="41"></span><span class="w"> </span><span class="c1">// ci-dessous par WiFi.softAPIP(), on aura droit à un beau "ERR_CONNECTION_REFUSED". Normal, on n'a pas</span><br /><span class="linenos" data-line="42"></span><span class="w"> </span><span class="c1">// précisé dans l'application ce qu'il faut faire : voir exemple suivant Code_Minimal_Etape4.</span><br /><span class="linenos" data-line="43"></span><span class="w"> </span><br /><span class="linenos" data-line="44"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Mode AP OK, IP Address : "</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="45"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="nf">WiFi</span><span class="p">.</span><span class="n">softAPIP</span><span class="p">())</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="46"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="47"></span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><br /><span class="linenos" data-line="48"></span><span class="w"> </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Mode AP KO ... :-("</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><br /><span class="linenos" data-line="49"></span><span class="w"> </span><span class="p">}</span><br /><span class="linenos" data-line="50"></span><span class="w"> </span><br /><span class="linenos" data-line="51"></span><span class="p">}</span><br /><span class="linenos" data-line="52"></span><br /><span class="linenos" data-line="53"></span><span class="cm">/* --------------------------------------------------------------------------------------------------------------</span><br /><span class="linenos" data-line="54"></span><span class="cm"> * LOOP : fonction appelée régulièrement par le système</span><br /><span class="linenos" data-line="55"></span><span class="cm"> * ------------------------------------------------------------------------------------------------------------- */</span><br /><span class="linenos" data-line="56"></span><span class="kr">void</span><span class="w"> </span><span class="nb">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><br /><span class="linenos" data-line="57"></span><span class="w"> </span><br /><span class="linenos" data-line="58"></span><span class="w"> </span><span class="c1">// Rien de spécial dans cet exemple</span><br /><span class="linenos" data-line="59"></span><span class="w"> </span><br /><span class="linenos" data-line="60"></span><span class="p">}</span><br /></pre></div></nowiki>
×
Erreur de saisie dans le nom du tutoriel
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #
Se connecter
Pas encore enregistré ? Créez un compte pour profiter de toutes les fonctionnalités du service !