Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
microc:uc:mkr [2025/04/21 09:47] – [5.3 Serveurs HTTP] philmicroc:uc:mkr [2026/04/27 23:48] (Version actuelle) – [Microcontrôleurs - Arduino MKR Wifi 1010] mno
Ligne 2: Ligne 2:
  
 ===== Microcontrôleurs - Arduino MKR Wifi 1010 ===== ===== Microcontrôleurs - Arduino MKR Wifi 1010 =====
-[Mise à jour le 3/6/2024]+[Mise à jour le 27/4/2026]
 {{ :arduino:arduino.png?80&nolink|}} {{ :arduino:arduino.png?80&nolink|}}
  
Ligne 11: Ligne 11:
   * Wiki matériels - [[materiels:accueilmateriels|"Capteurs, afficheurs, préactionneurs, etc."]]   * Wiki matériels - [[materiels:accueilmateriels|"Capteurs, afficheurs, préactionneurs, etc."]]
   * Wiki Arduino - [[:microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou Wifi MKR1010"]]   * Wiki Arduino - [[:microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou Wifi MKR1010"]]
 +  * Wiki Serveur HTTP - [[web:javascript:serveurhttp|C++ & jQuery - Communiquer avec une carte à microcontrôleur]]
   * Bibliothèques - <html><a href="https://www.arduinolibraries.info/" target="_blank">Arduino Library List</a></html>   * Bibliothèques - <html><a href="https://www.arduinolibraries.info/" target="_blank">Arduino Library List</a></html>
  
Ligne 78: Ligne 79:
   * **Documentation** sur <html><a href="https://support.arduino.cc/hc/en-us/articles/9359374546332-Check-the-WiFiNINA-firmware-version?queryID=undefined"target="_blank">arduino.cc</a></html>   * **Documentation** sur <html><a href="https://support.arduino.cc/hc/en-us/articles/9359374546332-Check-the-WiFiNINA-firmware-version?queryID=undefined"target="_blank">arduino.cc</a></html>
  
-Active la **connexion réseau** (locale et Internet) des Arduino MKR Wifi 1010, Arduino MKR VIDOR 4000 et Arduino UNO Wifi Rev.2. Avec cette bibliothèque, vous pouvez instancier des serveurs, des clients et envoyer / recevoir des paquets UDP via le wifi. La carte peut se connecter à des réseaux ouverts ou cryptés (WEP, WPA). L'adresse IP peut être attribuée de manière statique ou via un serveur DHCP. La bibliothèque peut aussi gérer le DNS.+WifiNINA active la **connexion réseau** (locale et Internet) des Arduino **MKR Wifi 1010**, Arduino MKR VIDOR 4000 et Arduino UNO Wifi Rev.2. Avec cette bibliothèque, vous pouvez instancier des serveurs, des clients et envoyer / recevoir des paquets UDP via le wifi. La carte peut se connecter à des réseaux ouverts ou cryptés (WEP, WPA). L'adresse IP peut être attribuée de manière statique ou via un serveur DHCP. La bibliothèque peut aussi gérer le DNS.
  
-  * **Mise à jour du firmware du module WIFI NINA** +  * **Mise à jour du firmware du module WiFiNINA** 
-    - Mettre à jour la bibliothèque WiFiNINA avec le gestionnaire de bibliothèques. +    - Mettre à jour la bibliothèque WiFiNINA avec le gestionnaire de bibliothèques (→ Onglet Outils → Gérer les bibliothèques)
-    - Vérifier la version du firmware installé en téléchargeant et en exécutant l'exemple **//CheckFirmwareVersion//**  (→ Fichier → Exemples → WiFiNINA -> Tools). Les informations apparaissent dans le moniteur série. +    - Télécharger **//FirmwareUpdater//** (→ Onglet Fichier → Exemples → WiFiNINA_Generic → Tools) et le transférer dans la carte puis mettre à jour le firmware (→ Onglet Outils →  Mise à Jour du Firmre/WIFININA).  \\ //__Exemple__// {{ :microc:uc:firmware_nina.png?nolink&500 |}} \\ __Remarque__ : on peut également vérifier la version du firmware installé en téléchargeant et en exécutant l'exemple **//CheckFirmwareVersion//**  (→ Onglet Fichier → Exemples → WiFiNINA_Generic → Tools). Les informations apparaissent dans le moniteur série. \\ //__Exemple__// {{ :microc:uc:firmware_nina2.png?nolink |}}
-    - Télécharger et exécuter l'exemple **//FirmwareUpdater//** dans la carte (→ Fichier → Exemples → WiFiNINA -> Tools) puis mettre à jour le firmware à l'aide de **WIFI101/WiFiNINA Firmware Updater** (-> Outils).+
  
 == 3.2.2 PubSubClient == == 3.2.2 PubSubClient ==
Ligne 94: Ligne 94:
  
 WifiWebServer est une bibliothèque serveur simple mais complète pour les cartes AVR, Teensy, SAM DUE, **Arduino SAMD21**, Adafruit SAMD21/SAMD51, Adafruit nRF52, ESP32/ESP8266, STM32F/L/H/G/WB/MP1, etc., utilisant les modules/boucliers WiFi (WiFiNINA, WiFi101, U-Blox W101, W102, ESP8266/ESP32-AT, etc.). \\ Les fonctions sont similaires et compatibles à celles de  <html><a href="https://github.com/espressif/arduino-esp32/tree/master/libraries/WebServer" target="_blank">ESP32 WebServer</a></html> et des <html><a href="https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer" target="_blank">ESP8266WebServer</a></html>. \\ A partir de la v1.1.0 cette bibliothèque fournit également un client HTTP et WebSocket de haut niveau dont les fonctions sont similaires et compatibles à celles de la bibliothèque <html><a href="https://github.com/arduino-libraries/ArduinoHttpClient" target="_blank">ArduinoHttpClient</a></html>. WifiWebServer est une bibliothèque serveur simple mais complète pour les cartes AVR, Teensy, SAM DUE, **Arduino SAMD21**, Adafruit SAMD21/SAMD51, Adafruit nRF52, ESP32/ESP8266, STM32F/L/H/G/WB/MP1, etc., utilisant les modules/boucliers WiFi (WiFiNINA, WiFi101, U-Blox W101, W102, ESP8266/ESP32-AT, etc.). \\ Les fonctions sont similaires et compatibles à celles de  <html><a href="https://github.com/espressif/arduino-esp32/tree/master/libraries/WebServer" target="_blank">ESP32 WebServer</a></html> et des <html><a href="https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer" target="_blank">ESP8266WebServer</a></html>. \\ A partir de la v1.1.0 cette bibliothèque fournit également un client HTTP et WebSocket de haut niveau dont les fonctions sont similaires et compatibles à celles de la bibliothèque <html><a href="https://github.com/arduino-libraries/ArduinoHttpClient" target="_blank">ArduinoHttpClient</a></html>.
 +
 +\\
  
 ==== 4. Arduino MKR Connector Carrier (Grove compatible) ==== ==== 4. Arduino MKR Connector Carrier (Grove compatible) ====
Ligne 144: Ligne 146:
 <callout type="tip" icon="true" title="TELECHARGER">Le <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_PING_MKR1010.zip" target="_blank">projet </a></html>PlatformIO pour VSCode.</callout> <callout type="tip" icon="true" title="TELECHARGER">Le <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_PING_MKR1010.zip" target="_blank">projet </a></html>PlatformIO pour VSCode.</callout>
  
-=== 5.3 Serveurs HTTP === 
-  * ** Ressource ** : <html><a href="https://randomnerdtutorials.com/esp32-http-get-post-arduino/" target="_blank">ESP32 HTTP GET and HTTP POST with Arduino IDE (JSON, URL Encoded, Text)</a></html> 
-  
-<callout type="warning" icon="true">Ce paragraphe présente **deux** versions d'un serveur HTTP : \\ 
- - La **dernière version** est utilisée dans les projets. \\ 
- - La **Version 1** est une étude de cas pour le cours d'algorithmique  
-</callout> 
  
- == 5.3.1 VERSION utilisée dans les projets == +=== 5.3 Client MQTT=== 
-  * **Principe retenu** +  * Voir la page [[microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32Feather Huzzah ou MKR Wifi 1010"]]
-{{ :arduino:uc:principe_projet.png?nolink |}} +
-  * ** Source** : //AdvancedWebServer// (-> Fichier -> Exemples -> WiFiWebServer) +
-  * **Montage**{{ :arduino:uc:mkr1010serveur.jpg?nolink |}} +
-  * **Algorithme** +
-<code> +
-// Serveur HTTP V4 +
-// Le serveur répond à une requête en envoyant une ou des valeurs lues sur ses entrées +
-// et/ou en déclenchant une commande sur ses sorties +
-// Exemples +
-// pas de données dans la requête => envoie de la page d'accueil +
-// /ecrire/valA?val=1 => activation de la sortie valA +
-// /ecrire/valA?val=0 => désactivation de la sortie valA +
-// /lire/val1 => mesure et envoie la valeur présente sur l'entrée val1 (issue du CAN) +
-// ------------------------------------------------------------------------------------ +
-// Variables +
-   chaîne de caractères <- page HTML (accueil) +
-   tableaux de caractères <- SSID et mot2passe +
  
-// Liste des gestionnaires (fonctions) répondant à une requête 
-   g1. Envoie de la page d'accueil 
-   g2. Commande de la led L de la carte et de la sortie D0 
-   g3. Commande de la sortie D1 
-   g4. Mesure et transmission de la valeur analogique présente sur A0 
-   g5. Mesure et transmission de la valeur analogique présente sur A1 
-   g6. Mesure et transmission des valeurs analogiques présentes sur A0 et A1 au format JSON 
-   g7. Traitement des requêtes non prises en charge 
-   ... 
-   gn ... 
- 
-// Initialisation 
-   a. Configuration des E/S 
-   b. Si le module wifi n'est pas détecté, alors  
-        bloquer le programme !!!! 
-   c. tant que le module n'est pas connecté au réseau wifi  
-        faire 
-          se connecter au réseau Wifi avec le SSID et le mot2passe 
-      fin tant que    
-   d. Inscription les gestionnaires de requête 
-   e. Démarrage du serveur HTTP 
-       
-Répéter toujours 
-   Traiter une requête 
-</code> 
- 
-  * **Code**  
-{{ :materiels:capteurs:distance:arduinoico.png?nolink&50|}} 
-<callout type="tip" icon="true" title="TELECHARGER">La dernière version du <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_MKR1010_HTTP_SERVER_V6.zip" target="_blank" title="Version 6"><b>projet</b></a></html> Arduino.</callout> 
- 
-  * **Tests** {{ :microc:uc:pageaccueilserveur.png?nolink |}} 
- 
-== 5.3.1 VERSION 1 : étude de cas == 
-  * ** Source** : //SimpleWebServer// (-> Fichier -> Exemples -> WiFiNINA) 
-  * **Montage**{{ :arduino:uc:mkr1010serveur.jpg?nolink |}} 
-  * **Algorithme** 
-<code> 
-// Principe 
-// Le serveur lit les requêtes caractère par caractère et extrait les données de l'url  
-// En réponse à la requête, il envoie une valeur ou/et déclenche une commande  
-// Exemples 
-// pas de données dans la requête => envoie de la page d'accueil 
-// /arduino/digital/led/1 => activation d'une sortie 
-// /arduino/digital/led/0 => désactivation d'une sortie 
-// /arduino/analog/val1 => mesure et envoie d'une valeur issue du CAN 
- 
-// Initialisation 
-Créer un serveur HTTP à l'écoute sur le port 80 
- 
-1.  si le module wifi n'est pas détecté alors  
-        bloquer le programme 
-2.  tant que le module n'est pas connecté au wifi faire 
-        se connecter au wifi avec le SSID et le mot2passe 
-    fin tant que 
-3. Démarrer le serveur HTTP 
- 
-// Programme 
-Répéter toujours 
- début // 4. Traiter les requêtes 
-    Attente blocante d'un client 
-    si un client est connecté alors 
-      currentLine <- "" // mémorise la donnée transmise dans la requête 
-      tant que le client est connecté faire 
-        | si il reste des caractères à lire  
-        | alors   
-        |  |  lire le dernier caractère transmis 
-        |  |  si ce caractère est une fin de ligne  
-        |  |  alors 
-        |  |   | si currentLine = "" // on a eu 2 fin de lignes consécutifs ! => pas de donnée transmise 
-        |  |   | alors  
-        |  |      Envoyer la page d'accueil au client et sortir de la boucle tant que 
-        |  |   | sinon 
-        |  |      currentLine <- "" 
-        |  |   | fin si 
-        |  |  sinon  
-        |  |   | si le caractère lu n'est pas un retour chariot  
-        |  |   | alors  
-        |  |      on l'ajoute à la fin de currentLine 
-        |  |   | fin si 
-        |  |  fin si 
-        |  |  // Traitement les autres requête(s) (une url suit l'@IP) 
-        |  |  Traiter la requête 1 et sortir de la boucle tant que 
-        |  |  Traiter la requête 2 et sortir de la boucle tant que  
-        |  |  ...     
-        |  |  Traiter la requête n et sortir de la boucle tant que      
-        | fin si 
-      fin tant que 
-    fin si 
-    Fermer la connexion 
- fin 
-</code> 
- 
-  * **Code** (adaptation de l'exemple __SimpleWebServer__) 
-{{ :materiels:capteurs:distance:arduinoico.png?nolink&50|}} 
-<callout type="tip" icon="true" title="TELECHARGER">Le <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_MKR1010_HTTP_SERVER_V1.zip" target="_blank" title="Version 1">projet</a></html> Arduino.</callout> 
-=== 5.4 Client MQTT=== 
-  * Voir la page [[microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou MKR Wifi 1010"]] 
  
-==== 6. Tutoriels ==== 
-<html><a href="https://randomnerdtutorials.com/" target="_blank">RANDOM NERD TUTORIALS</a></html> et des liens vers des tutoriels sont accessibles sur la page [[arduino:webographie|webographie]]. 
  • microc/uc/mkr.1745221638.txt.gz
  • Dernière modification : 2025/06/19 19:25
  • (modification externe)