Code minimal des fonctions réseau : Différence entre versions

(Contenu remplacé par « {{Tuto Details |Main_Picture=Code_minimal_des_fonctions_r_seau_WiKi_Reseau.png |Licences=Attribution (CC-BY) |Description=Page obsolète - voir dans la rubrique "Intro... »)
(Balise : Remplacé)
 
(95 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.
 
 
 
 
 
'''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" |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() ;
 
|-
 
|Dans le Loop
 
|Utilisation
 
|Le test de la connexion, et la récupéraiton de l'adresse IP peuvent aussi être utilisés dans le loop().
 
|}<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}}

Version actuelle datée du 6 février 2023 à 10:07

Auteur avatarPhilippe Blusseau | Dernière modification 6/02/2023 par Philby

Code minimal des fonctions r seau WiKi Reseau.png
Page obsolète - voir dans la rubrique "Introduction" les liens vers les pages qui la remplacent.
Difficulté
Technique
Durée
10 heure(s)
Disciplines scientifiques
Arduino, Informatique
<languages />
Licence : Attribution (CC-BY)

Introduction

Page obsolète. Elle a été découpée en quatre épisodes, accessibles ici :


  1. Connecter le Wemos D1 Mini à internet en Wi-Fi.
  2. Héberger un site web sur mon Wemos D1 Mini.
  3. Mon Wemos D1 Mini récupère des données sur Internet  (format Json).
  4. Mes Wemos D1 Mini discutent sur Internet (protocole MQTT)


Il est nécessaire de commencer par l'épisode 1, par contre les épisodes suivants peuvent être consultés dans n'importe quel ordre.

Étape 1 - Ben non, y en n'a plus ...

... puisque la page est obsolète ... (mais le Wiki impose au moins une étape)


Dernière modification 6/02/2023 par user:Philby.

Commentaires

Draft