|
|
(94 révisions intermédiaires par le même utilisateur non affichées) |
Ligne 2 : |
Ligne 2 : |
| |Main_Picture=Code_minimal_des_fonctions_r_seau_WiKi_Reseau.png | | |Main_Picture=Code_minimal_des_fonctions_r_seau_WiKi_Reseau.png |
| |Licences=Attribution (CC-BY) | | |Licences=Attribution (CC-BY) |
− | |Description=Nous allons résumer ici les différentes façons d'utiliser les fonction réseau des cartes compatibles Arduino possédant une puce Wi-Fi (Wemos D1 mini, ESP32, ...). Ces fonctions vont permettre à ces cartes de discuter entre elles, d'accéder à un site web, ou même de se comporter elles-même comme un (mini) site web. | + | |Description=Page obsolète - voir dans la rubrique "Introduction" les liens vers les pages qui la remplacent. |
| |Disciplines scientifiques=Arduino, Computing | | |Disciplines scientifiques=Arduino, Computing |
| |Difficulty=Technical | | |Difficulty=Technical |
Ligne 10 : |
Ligne 10 : |
| }} | | }} |
| {{Introduction | | {{Introduction |
− | |Introduction=Cette expérience regroupe différentes manières de bénéficier des capacités de communication des cartes compatibles Arduino possédant une puce Wi-Fi. On suppose (''Cf. "Expériences ré-requises" ci-après'') que vous avez déjà manipulé une carte Arduino et son environnement de développement. '''Toutes les étapes décrites ici sont en fait indépendantes''' : | + | |Introduction='''Page obsolète'''. Elle a été découpée en quatre épisodes, accessibles ici : |
| | | |
| <br /> | | <br /> |
| | | |
− | *Les deux premières étapes permettent à notre carte de se connecter au Wi-Fi, de façon basique ('''étape 1''') ou un peu plus évoluée, et souple ('''étape 2''') ;
| + | #[https://www.wikidebrouillard.org/wiki/Code_Minimal_R%C3%A9seau_-_(1)_Connecter_le_Wemos_D1_mini_%C3%A0_internet_en_wifi Connecter le Wemos D1 Mini à internet en Wi-Fi]. |
− | *L''''étape 3''' permet à la carte d'être dans un mode particulier, dit "AP"(Access Point") et se comporter comme une borne Wi-Fi.
| + | #[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]. |
− | *Les étapes suivantes correspondent à des besoins différents :
| + | #[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ées sur Internet (format Json)]. |
− | **'''étape 4''' : visualiser et/ou modifier des paramètres de notre carte via une interface web ;
| + | #[https://www.wikidebrouillard.org/wiki/Code_Minimal_R%C3%A9seau_-_(4)_Mes_Wemos_D1_Mini_discutent_sur_Internet_avec_MQTT Mes Wemos D1 Mini discutent sur Internet (protocole MQTT)] |
− | **'''étape 5''' : permettre à notre carte d'accéder à des données d'un site externe, utilisant le format standardisé '''JSON''' <sup>(1)</sup>
| |
− | **'''étape 6''' : permettre à notre carte d'envoyer et de recevoir des messages courts, via le protocole standardisé '''MQTT''' <sup>(1)</sup>
| |
| | | |
− | Dans la même philosophie que les expériences "[https://www.wikidebrouillard.org/wiki/Code_minimal_des_capteurs_pour_Arduino Code minimal des capteurs pour Arduino]" et "[https://www.wikidebrouillard.org/wiki/Code_minimal_des_actionneurs_pour_Arduino Code minimal des actionneurs pour Arduino]", <u>nous fournirons ici uniquement le code relatif à nos besoins de connexion</u>, sans mettre au point une quelconque application. Donc, ici, pas besoin de connecter une led ou un capteur, donc <u>pas de schéma de montage</u> : vous branchez simplement votre carte en USB sur votre ordinateur, et les résultats seront visibles en mode texte dans le moniteur série de l'environnement de développement Arduino.
| |
| | | |
− | | + | <u>Il est nécessaire de commencer par l'épisode 1</u>, par contre les épisodes suivants peuvent être consultés dans n'importe quel ordre. |
− | Il existe bien sûr déjà un tas de tutoriels avec des exemples similaires, sans compter bien sûr les exemples fournis avec les bibliothèques que l'on va utiliser <sup>(2)</sup>. La modeste contribution de de cette page est de tenter de regrouper les cas de figures les plus importants. S'il en manque, n'hésitez pas à mettre un commentaire, voire à ajouter une étape !
| |
− | | |
− | | |
− | '''(1)''' ''Pas d'inquiétude sur les "JSON "et autre "MQTT", on explique tout dans les étapes correspondantes''
| |
− | | |
− | '''(2)''' ''On donnera d'ailleurs les liens vers les bibliothèques et leurs exemples à chaque étape.''
| |
− | }}
| |
− | {{Materials
| |
− | |ItemList={{ItemList
| |
− | |Item=D1 mini
| |
− | }}{{ItemList
| |
− | |Item=Câble USB - micro-USB
| |
− | }}{{ItemList
| |
− | |Item=Logiciel Arduino
| |
− | }}
| |
− | |Prerequisites={{Prerequisites
| |
− | |Prerequisites=Installer l'environnement Arduino sur votre système
| |
− | }}{{Prerequisites
| |
− | |Prerequisites=Premiers pas avec Arduino
| |
− | }}{{Prerequisites
| |
− | |Prerequisites=Utiliser le D1 mini avec Arduino
| |
− | }}
| |
− | }}
| |
− | {{Tuto Step
| |
− | |Step_Title=Connexion Wi-Fi de base
| |
− | |Step_Content=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.
| |
− | | |
− | | |
− | 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.
| |
− | | |
− | {| class="wikitable" cellspacing="0" border="0"
| |
− | | height="17" bgcolor="#999999" align="left" |
| |
− | | valign="middle" bgcolor="#999999" align="center" |
| |
− | | bgcolor="#999999" align="center" |Connexion Wi-Fi de base
| |
− | |-
| |
− | | rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
| |
− | | valign="middle" align="left" |#include <ESP8266WiFi.h> // Pour le Wemos D1 Mini, ou ...
| |
− | | |
− | <nowiki>#</nowiki>include "WiFi.h" // Pour l'ESP32
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Création de l’objet
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | rowspan="3" valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Démarrage de la connexion
| |
− | | 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
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Test de la connexion
| |
− | | valign="middle" align="left" |if (WiFi.Status() == WL_CONNECTED) { (...) }
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Récupération de l'adresse IP
| |
− | |WiFi.localIP() ;
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Dans le Loop
| |
− | | valign="middle" bgcolor="#999999" align="center" |Utilisation
| |
− | |Le test de la connexion, et la récupération de l'adresse IP peuvent aussi être utilisés dans le loop().
| |
− | |}
| |
− | | |
− | | |
− | | |
− | Pour connaître toutes les 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 /><syntaxhighlight lang="arduino" line="1">
| |
− | /* =========================================================================================================
| |
− | *
| |
− | * CODE MINIMAL RESEAU - ETAPE 1 : connexion basique au Wi-Fi
| |
− | *
| |
− | * ---------------------------------------------------------------------------------------------------------
| |
− | * Les petits Débrouillards - décembre 2022 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
| |
− | * ========================================================================================================= */
| |
− | | |
− | // Bibliothèques WiFi : UNE SEULE EST NECESSAIRE, choisir celle correspondant à votre matériel.
| |
− | // ATTENTION AUX MAJUSCULES & MINUSCULES ! Sinon d'autres bibliothèques, plus ou moins valides, seraient utilisées.
| |
− | | |
− | #include <ESP8266WiFi.h> // A utiliser pour le D1 Mini
| |
− | //#include <WiFi.h> // A utiliser pour l'ESP32
| |
− | | |
− | // Définition du point d'accès Wi-Fi et de son mot de passe ("clé de sécurité")
| |
− | // A REMPLACER PAR LES VERITABLES VALEURS CORRESPONDANT A VOTRE EMPLACEMENT
| |
− |
| |
− | const char* mySSID = "MA_BOX_INTERNET";
| |
− | const char* mySecKey = "MA_CLE_DE_SECURITE";
| |
− | | |
− | /* --------------------------------------------------------------------------------------------------------
| |
− | * SETUP : Initialisation
| |
− | * -------------------------------------------------------------------------------------------------------- */
| |
− | void setup() {
| |
− | | |
− | // Initialisation de la liaison série, affichage 1er message
| |
− | | |
− | Serial.begin(115200);
| |
− | delay(100) ;
| |
− | Serial.println();
| |
− | Serial.println("----------------------------------") ;
| |
− | Serial.println("Exemple de connexion Wi-Fi basique") ;
| |
− | Serial.println("----------------------------------") ;
| |
− | | |
− | // Initialisation de la bibliothèque avec le nom du point d'accès Wi-Fi et son mot de passe
| |
− | | |
− | WiFi.begin(mySSID, mySecKey) ;
| |
− | | |
− | // Essai de connexion au Wi-Fi, pendant 10 secondes (20 x 500 ms)
| |
− | | |
− | Serial.print("Connexion à "); Serial.print(mySSID) ; Serial.print(" ") ;
| |
− | int tryNumber = 1 ;
| |
− | while (WiFi.status() != WL_CONNECTED)
| |
− | {
| |
− | delay(500);
| |
− | Serial.print(".");
| |
− | if (++tryNumber > 20) {
| |
− | Serial.println() ; Serial.println("Pas de connexion, abandon") ;
| |
− | return ;
| |
− | }
| |
− | }
| |
− | | |
− | // La connexion a réussi ! On affiche l'adresse IP obtenue.
| |
− |
| |
− | Serial.println(); Serial.print("Connecté ! Adresse IP : ");
| |
− | Serial.println(WiFi.localIP());
| |
− |
| |
− | }
| |
− | | |
− | /* --------------------------------------------------------------------------------------------------------------
| |
− | * LOOP : fonction appelée régulièrement par le système
| |
− | * ------------------------------------------------------------------------------------------------------------- */
| |
− | void loop() {
| |
− | /* On ne fait rien de particulier sur cet exemple */
| |
− | }
| |
− | | |
− | | |
− | | |
− | </syntaxhighlight><br />
| |
− | }}
| |
− | {{Tuto Step
| |
− | |Step_Title=Oui, mais si mon Wi-Fi change ?
| |
− | |Step_Content=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 deux possibilités
| |
− | | |
− | *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 ...
| |
− | *on utilise la bibliothèque "wifimanager", qui nous simplifie grandement la tâche !
| |
− | | |
− | (... à suivre)
| |
− | | |
− | | |
− | '''METTRE LIEN(S) vers description et exemples'''
| |
− | | |
− | {| class="wikitable" cellspacing="0" border="0"
| |
− | | height="17" bgcolor="#999999" align="left" |
| |
− | | valign="middle" bgcolor="#999999" align="center" |
| |
− | | bgcolor="#999999" align="center" |Wifimanager
| |
− | |-
| |
− | | rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Création de l’objet
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
| |
− | | valign="middle" bgcolor="#999999" align="center" |Utilisation
| |
− | | valign="middle" align="left" |
| |
− | |}<br /><syntaxhighlight lang="arduino" line="1">
| |
− | ////////////////////////
| |
− | // *Code Minimal* //
| |
− | // Wi-Fi Manager //
| |
− | ////////////////////////
| |
− | /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour
| |
− | permettre la prise en main rapide d'un composant électronique.
| |
− | A retrouver sur https://www.wikidebrouillard.org
| |
− | | |
− | (...)
| |
− |
| |
− | ___
| |
− | / ___ \
| |
− | |_| | |
| |
− | /_/
| |
− | _ ___ _
| |
− | |_| |___|_| |_
| |
− | ___|_ _|
| |
− | |___| |_|
| |
− | | |
− | Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
| |
− | | |
− | */
| |
− | | |
− | // Déclaration des variables constantes
| |
− | (...)
| |
− | | |
− | // Boucle d'initialisation
| |
− | void setup() {
| |
− | | |
− | (...)
| |
− | | |
− | }
| |
− | | |
− | //Boucle principale
| |
− | void loop() {
| |
− | | |
− | (...)
| |
− | | |
− | }
| |
− | </syntaxhighlight><br />
| |
− | }}
| |
− | {{Tuto Step
| |
− | |Step_Title=Et si je veux rester en mode AP (Access Point ?)
| |
− | }}
| |
− | {{Tuto Step
| |
− | |Step_Title=Et maintenant, on fait quoi avec le Wi-Fi ? (tiens, pourquoi pas un petit serveur web ?)
| |
− | |Step_Content=... Site web pour allumer une led (à détailler)
| |
− | | |
− | '''METTRE LIEN(S) vers description et exemples'''
| |
− | {| class="wikitable" cellspacing="0" border="0"
| |
− | | height="17" bgcolor="#999999" align="left" |
| |
− | | valign="middle" bgcolor="#999999" align="center" |
| |
− | | bgcolor="#999999" align="center" |Site web
| |
− | |-
| |
− | | rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" bgcolor="#999999" align="center" |Création de l’objet
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
| |
− | | valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
| |
− | | valign="middle" align="left" |
| |
− | |-
| |
− | | valign="middle" height="41" bgcolor="#999999" align="center" |Dans le Loop
| |
− | | valign="middle" bgcolor="#999999" align="center" |Utilisation
| |
− | | valign="middle" align="left" |
| |
− | |}<br /><syntaxhighlight lang="arduino" line="1">
| |
− | ////////////////////////
| |
− | // *Code Minimal* //
| |
− | // Wi-Fi de base //
| |
− | ////////////////////////
| |
− | /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour
| |
− | permettre la prise en main rapide d'un composant électronique.
| |
− | A retrouver sur https://www.wikidebrouillard.org
| |
− | | |
− | (...)
| |
− |
| |
− | ___
| |
− | / ___ \
| |
− | |_| | |
| |
− | /_/
| |
− | _ ___ _
| |
− | |_| |___|_| |_
| |
− | ___|_ _|
| |
− | |___| |_|
| |
− | | |
− | Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
| |
− | | |
− | */
| |
− | | |
− | // Déclaration des variables constantes
| |
− | (...)
| |
− | | |
− | // Boucle d'initialisation
| |
− | void setup() {
| |
− | | |
− | (...)
| |
− | | |
− | }
| |
− | | |
− | //Boucle principale
| |
− | void loop() {
| |
− | | |
− | (...)
| |
− | | |
− | }
| |
− | </syntaxhighlight><br />
| |
− | | |
− | Une application plus complète, permettant d'actionner plusieurs leds et un moteur, et de récupérer des données d'un capteur, est disponible [https://www.wikidebrouillard.org/wiki/Commander_un_D1_mini_avec_une_interface_web ici].
| |
− | | |
− | | |
− | L'utilisation de notre carte en mode n'est qu'un exemple de ce qu'il est possible de faire, il existe plein d'autres possibilités, détaillées dans les étapes suivantes !
| |
− | }}
| |
− | {{Tuto Step
| |
− | |Step_Title=Interrogation de serveurs web (mode JSON)
| |
| }} | | }} |
| + | {{Materials}} |
| {{Tuto Step | | {{Tuto Step |
− | |Step_Title=Diffusion d'information (mode MQTT) | + | |Step_Title=Ben non, y en n'a plus ... |
| + | |Step_Content=... puisque la page est obsolète ... (mais le Wiki impose au moins une étape) |
| }} | | }} |
| {{Notes}} | | {{Notes}} |