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

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. Chaque "étape" décrite ci-dessous est en fait indépendante, et correspond à des besoins différents. 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.
+
|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. '''Toutes les étapes sont en fait indépendantes''' :
  
 +
<br />
  
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>(*)</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 !
+
* 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''') ;
 +
* Les étapes suivantes correspondent à des besoins différents :
 +
** '''étape 3''' : visualiser et/ou modifier des paramètres de notre carte via une interface web ;
 +
** '''étape 4''' : permettre à notre carte d'accéder à des données d'un site externe, utilisant le format standardisé '''JSON''' <sup>(1)</sup>
 +
** '''étape 5''' : 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.
  
(*) ''on donnera d'ailleurs les liens vers les bibliothèques et leurs exemples à chaque étape.''
+
 
 +
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
 
{{Materials

Version du 22 novembre 2022 à 11:10

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

Code minimal des fonctions r seau WiKi Reseau.png
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.
Licence : Attribution (CC-BY)

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. Toutes les étapes sont en fait indépendantes :


  • 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) ;
  • Les étapes suivantes correspondent à des besoins différents :
    • étape 3 : visualiser et/ou modifier des paramètres de notre carte via une interface web ;
    • étape 4 : permettre à notre carte d'accéder à des données d'un site externe, utilisant le format standardisé JSON (1)
    • étape 5 : permettre à notre carte d'envoyer et de recevoir des messages courts, via le protocole standardisé MQTT (1)

Dans la même philosophie que les expériences "Code minimal des capteurs pour Arduino" et "Code minimal des actionneurs pour Arduino", nous fournirons ici uniquement le code relatif à nos besoins de connexion, sans mettre au point une quelconque application. Donc, ici, pas besoin de connecter une led ou un capteur, donc pas de schéma de montage : 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.


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 (2). 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.
  • Expériences pré-requises

Étape 1 - Connexion Wi-Fi de base

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


Connexion Wi-Fi de base
Avant le Setup Importation de la bibliothèque
Création de l’objet
Dans le Setup Démarrage de l’objet
Dans le Loop Utilisation

 1 ////////////////////////
 2 //   *Code Minimal*   //
 3 //    Wi-Fi de base   //
 4 ////////////////////////
 5 /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour 
 6 permettre la prise en main rapide d'un composant électronique.
 7 A retrouver sur https://www.wikidebrouillard.org
 8 
 9 (...)
10  
11    ___
12  / ___ \
13 |_|   | |
14      /_/ 
15      _   ___   _ 
16     |_| |___|_| |_
17          ___|_   _|
18         |___| |_|
19 
20 Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
21 
22 */
23 
24 // Déclaration des variables constantes
25 (...)
26 
27 // Boucle d'initialisation
28 void setup() {
29 
30   (...)
31 
32 }
33 
34 //Boucle principale
35 void loop() {
36 
37   (...)
38 
39 }

Étape 2 - Oui, mais si mon Wi-Fi change ?

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

Wifimanager
Avant le Setup Importation de la bibliothèque
Création de l’objet
Dans le Setup Démarrage de l’objet
Dans le Loop Utilisation

 1 ////////////////////////
 2 //   *Code Minimal*   //
 3 //    Wi-Fi Manager   //
 4 ////////////////////////
 5 /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour 
 6 permettre la prise en main rapide d'un composant électronique.
 7 A retrouver sur https://www.wikidebrouillard.org
 8 
 9 (...)
10  
11    ___
12  / ___ \
13 |_|   | |
14      /_/ 
15      _   ___   _ 
16     |_| |___|_| |_
17          ___|_   _|
18         |___| |_|
19 
20 Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
21 
22 */
23 
24 // Déclaration des variables constantes
25 (...)
26 
27 // Boucle d'initialisation
28 void setup() {
29 
30   (...)
31 
32 }
33 
34 //Boucle principale
35 void loop() {
36 
37   (...)
38 
39 }

Étape 3 - Et maintenant, on fait quoi avec le Wi-Fi ? (un petit serveur web)

... Site web pour allumer une led (à détailler)

METTRE LIEN(S) vers description et exemples

Site web
Avant le Setup Importation de la bibliothèque
Création de l’objet
Dans le Setup Démarrage de l’objet
Dans le Loop Utilisation

 1 ////////////////////////
 2 //   *Code Minimal*   //
 3 //    Wi-Fi de base   //
 4 ////////////////////////
 5 /*Les programmes "Code Minimal" des petits débrouillards sont conçu pour 
 6 permettre la prise en main rapide d'un composant électronique.
 7 A retrouver sur https://www.wikidebrouillard.org
 8 
 9 (...)
10  
11    ___
12  / ___ \
13 |_|   | |
14      /_/ 
15      _   ___   _ 
16     |_| |___|_| |_
17          ___|_   _|
18         |___| |_|
19 
20 Les petits Débrouillards - décembre 2020 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
21 
22 */
23 
24 // Déclaration des variables constantes
25 (...)
26 
27 // Boucle d'initialisation
28 void setup() {
29 
30   (...)
31 
32 }
33 
34 //Boucle principale
35 void loop() {
36 
37   (...)
38 
39 }

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 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 !

Étape 4 - Interrogation de serveurs web (mode JSON)

Étape 5 - Diffusion d'information (mode MQTT)


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

Commentaires

Draft