| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| microc:uc:mkr [2024/06/03 05:31] – phil | microc:uc:mkr [2025/06/19 19:29] (Version actuelle) – modification externe 127.0.0.1 |
|---|
| |
| ===== Microcontrôleurs - Arduino MKR Wifi 1010 ===== | ===== Microcontrôleurs - Arduino MKR Wifi 1010 ===== |
| [Mise à jour le 3/6/2024] | [Mise à jour le 21/4/2025] |
| {{ :arduino:arduino.png?80&nolink|}} | {{ :arduino:arduino.png?80&nolink|}} |
| |
| {{ :arduino:uc:mkr_wifi_1010_pinout.jpg?nolink |}} | {{ :arduino:uc:mkr_wifi_1010_pinout.jpg?nolink |}} |
| |
| <callout type="tip" icon="true">Pour afficher le diagramme de brochage complet au format PDF, cliquer <html><a href="https://content.arduino.cc/assets/Pinout-MKRwifi1010_latest.pdf" target="_blank"><b>ici</b></a></html> ou le **schéma** de la carte MKR Wifi 1010, cliquer <html><a href="https://webge.fr/doc/wikis/pdf/MKRWiFi1010V2.0_sch.pdf" target="_blank"><b>ici</b></a></html>.</callout> | <callout type="tip" icon="true"><html><a href="https://content.arduino.cc/assets/Pinout-MKRwifi1010_latest.pdf" target="_blank"><b>Diagramme</b> de brochage complet</a></html> au format PDF et <html><a href="https://webge.fr/doc/wikis/pdf/MKRWiFi1010V2.0_sch.pdf" target="_blank"><b>schéma</b></a></html> de la carte MKR Wifi 1010.</callout> |
| |
| === 1.3 Principales caractéristiques === | === 1.3 Principales caractéristiques === |
| * **Mise à jour du firmware du module WIFI NINA** | * **Mise à jour du firmware du module WIFI NINA** |
| - Mettre à jour la bibliothèque WiFiNINA avec le gestionnaire de bibliothèques. | - Mettre à jour la bibliothèque WiFiNINA avec le gestionnaire de 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 et exécuter **//FirmwareUpdater//** dans la carte (→ Fichier → Exemples → WiFiNINA -> Tools) puis mettre à jour le firmware à l'aide de **WIFI101/WiFiNINA Firmware Updater** (-> Outils). \\ __Remarque__ : on peut également 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 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 == |
| |
| 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) ==== |
| | |
| <callout type="warning" icon="true">Ce paragraphe présente **deux** versions d'un serveur HTTP : \\ | <callout type="warning" icon="true">Ce paragraphe présente **deux** versions d'un serveur HTTP : \\ |
| - La **Version 1** est une étude de cas pour le cours d'algorithmique \\ | - La **version** utilisée dans les projets. \\ |
| - La **dernière version** est utilisée dans les projets. | - La **Version 1**, une étude de cas pour le cours d'algorithmique |
| </callout> | </callout> |
| | |
| | == 5.3.1 VERSION utilisée dans les projets == |
| | * **Principe retenu** |
| | {{ :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 == | == 5.3.1 VERSION 1 : étude de cas == |
| {{ :materiels:capteurs:distance:arduinoico.png?nolink&50|}} | {{ :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> | <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> |
| |
| * **Tests**{{ :arduino:uc:pageaccueil.png?nolink |}} | |
| |
| == 5.3.2 VERSION utilisée dans les projets == | |
| * **Principe retenu** | |
| {{ :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_V4.zip" target="_blank" title="Version 4">projet </a></html> Arduino.</callout> | |
| |
| * **Tests** {{ :arduino:uc:pageaccueilv4.jpg?nolink |}} | |
| |
| === 5.4 Client MQTT=== | === 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"]] | * Voir la page [[microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou MKR Wifi 1010"]] |