Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. [[microc:accueilmc|{{ :iconemaison.jpg?nolink&30|Sommaire Microcontrôleur}}]] ===== Microcontrôleurs - Arduino MKR Wifi 1010 ===== [Mise à jour le 27/4/2026] {{ :arduino:arduino.png?80&nolink|}} == Ressources == * <html>Site Arduino - <a href = "https://store.arduino.cc/arduino-genuino/arduino-genuino-mkr-family" target="_blank">MKR FAMILY</a></html> | <html><a href="https://www.arduino.cc/en/Guide/MKRWiFi1010#toc3" target="_blank">Getting started with the MKR WiFi 1010</a></html> | <html><a href="https://docs.arduino.cc/software/ide-v2" target="_blank">Arduino IDE V2</a></html> == Lectures connexes == * 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 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> == Distributeurs == * <html><a href="https://www.mouser.fr/new/arduino/arduino-mkr-wifi-1010/" target="_blank">Mouser</a></html> ---- ==== 1. La gamme MKR ==== La gamme <html><a href="https://store.arduino.cc/arduino-genuino/arduino-genuino-mkr-family" target="_blank"><strong>MKR</strong></a></html> est une référence dans le domaine des cartes de développement **IoT**. Elle regroupe plusieurs cartes dont le tarif varie entre 20 et 60 euros (2019). {{ :arduino:mkr_family.jpg?nolink&600 |}} ==== 2. La carte Arduino MKR Wifi 1010 ==== === 2.1 Généralités === Le MKR WIFI 1010 est équipé d'un module **ESP32** fabriqué par U-BLOX. Cette carte a pour objectif d’accélérer et de simplifier le prototypage des applications IoT basées sur le WiFi grâce à la flexibilité du module ESP32 et à sa faible consommation d’énergie. La carte est composée de **trois principaux blocs** : * Microcontrôleur **SAMD21** Cortex-M0+ 32bit Low Power ARM MCU <html><a href="https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Atmel-42181-SAM-D21_Datasheet.pdf" target="_blank">(Datasheet)</a></html> * **U-BLOX NINA-W10** Series Low Power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi <html><a href="https://content.u-blox.com/sites/default/files/NINA-W10_DataSheet_UBX-17065507.pdf" target="_blank">(Datasheet)</a></html> * **ECC508 Crypto Authentication**. <html><a href="https://www.microchip.com/wwwproducts/en/atecc508a" target="_blank">(Datasheet)</a></html> {{ :arduino:mkr1010.jpg?nolink&350 | }} <callout type="info" icon="true">Le réseau Wi-Fi est à faible consommation d'énergie. Le port USB du MKR1010 peut être utilisé pour alimenter la carte sous 5V. Il possède un circuit de charge Li-Po qui permet à l'Arduino MKR WIFI 1010 de fonctionner sur batterie ou sur une source externe de 5 volts, chargeant la batterie Li-Po tout en utilisant une alimentation externe. Le passage d'une source à l'autre se fait automatiquement.</callout> === 1.2 Brochage === {{ :arduino:uc:mkr_wifi_1010_pinout.jpg?nolink |}} <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 === * **Alimentation** de la carte : **5V** (circuit sous **3,3V**:!:) * **Batterie** supportée : Li-Po Single Cell, 3.7V, 700mAh Minimum * **E/S numériques** : 8 (7mA) * **PWM** : 2 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 - or 18 -, A4 -or 19) * **UART** : 1 * **SPI** : 1 * **I2C** : 1 * **I2S** : 1 * **Réseau** : Wifi (sécurisé à l'aide du cryptage SHA-256) * **Entrées analogiques** : 7 (ADC 8/10/12 bit) * **Sortie analogique** : 1 (DAC 10bits) * **Interruptions externes** : 8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 - or 17) * **Flash** : 256KB * **SRAM** : 32KB * **EEPROM** : Non * **Fréquence d'horloge** : 48MHz, 32.768 kHz (RTC) <callout type="warning" color="red" icon="true" title="TENSION SUR LES GPIO">Contrairement à la plupart des cartes Arduino, le MKR WIFI 1010 fonctionne sous 3,3V. La tension maximale tolérée par les broches d’E/S est de 3,3V. **L'application de tensions supérieures à 3,3 V à n'importe quelle broche d'E/S peut endommager la carte**. Bien que la sortie sur des appareils numériques 5V soit possible, la communication bidirectionnelle avec des appareils 5V nécessite un décalage de niveau approprié. **Cette adaptation de niveau est réalisée par la carte Arduino MKR Connector Carrier** ci-dessous.</callout> ==== 3. Préparation de l'IDE Arduino ==== === 3.1 Installation du support "Arduino SAMD Boards" === * Dans le menu « **Outils** » , « **Type de carte** » et « **Gestionnaire de carte** », rechercher « Arduino SAMD Board » et installer le composant. {{ :arduino:uc:gestmkr1010.png?nolink |}} === 3.2 Les bibliothèques === A partir du **gestionnaire de bibliothèque** de l'IDE Arduino, **télécharger** et **installer** : == 3.2.1 WifiNINA == * **Sources** sur <html><a href="https://github.com/arduino-libraries/WiFiNINA" target="_blank">github</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> 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 WiFiNINA** - Mettre à jour la bibliothèque WiFiNINA avec le gestionnaire de bibliothèques (→ Onglet Outils → Gérer les bibliothèques). - 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 |}} == 3.2.2 PubSubClient == * **Sources** et documentation de <html><span title="Créateur de Node Red"><strong>Nick O'Leary</strong></span></html> sur <html><a href="https://github.com/knolleary/pubsubclient" target="_blank">github</a></html> Cette bibliothèque fournit un client pour faire de simples messages de publication / abonnement avec un serveur prenant en charge MQTT. == 3.2.3 WifiWebServer == * **Sources** sur <html><a href="https://github.com/khoih-prog/WiFiWebServer" target="_blank">github</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) ==== Toutes les cartes de la gamme MKR possèdent le même nombre d'<html><a href="https://www.didel.com/LogiqueMicro.pdf" target="_blank" title="On appelle entrées-sorties les échanges d'informations entre le processeur et les périphériques qui lui sont associés."><strong>E/S</strong></a></html>. Elles sont fournies avec un total de **22 broches d'E/S numériques**, dont **12 broches PWM**. Elles comprennent également **7 broches d'entrée analogique** et **1 broche de sortie analogique**. Il existe plusieurs shields MKR, par exemple le blindage MKR Relay Proto Shield qui permet d’utiliser des relais et qui fournit de l'espace pour ajouter d'autres composants grâce à sa zone de prototypage. Bien qu'elles ne soient pas compatibles avec les shields Arduino Uno, il est possible de connecter facilement des capteurs aux cartes MKR à l'aide de l'adaptateur <html><a href="https://store.arduino.cc/arduino-mkr-connector-carrier" target="_blank">Arduino MKR Connector Carrier</a></html> (Grove compatible). <html><a href="https://webge.fr/doc/wikis/pdf/MKRConnectorCarrier_V3.0_sch.pdf" target="_blank">[Schéma]</a></html> {{ :arduino:arduino_mkr_connector.jpg?nolink&500 |}} ==== 5. Démarrer avec la carte Arduino MKR WiFi 1010 ==== === 5.1 Blink un premier programme pour dire "Hello" === <code cpp *.cpp> void setup() { pinMode(LED_BUILTIN,OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } </code> {{ :arduino:uc:platformioico.png?nolink&50|}} <callout type="tip" icon="true"><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_MKR1010_Blink.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</callout> === 5.2 Intégrer une nouvelle carte MKR1010 dans le réseau Wifi=== * Ouvrir l'exemple //**WiFiPing**// accessible à partir de (-> Fichier -> Exemples -> WiFiNINA) dans le logiciel Arduino. * Compléter le **SSID** et le **mot de passe** du Wifi comme dans l'exemple ci-dessous. <code cpp *.cpp> // Modifications dans WiFiPing // Specify IP address or hostname String hostName = "IP de la box à renseigner"; // Modifications dans arduino_secrets.h #define SECRET_SSID "à renseigner" #define SECRET_PASS "à renseigner" </code> //Résultat dans le moniteur série// {{ :arduino:wifiping.png?nolink&400 |}} * Programmer la carte. * Entrer l'**@MAC** et attribuer une **@IP** à la carte dans l'onglet "//Réservation DHCP//" de la box du réseau. * Redémarrer la carte. {{ :arduino:uc:platformioico.png?nolink&50|}} <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 Client MQTT=== * Voir la page [[microc:iot:clientmqttesp8266|"Mettre en oeuvre un client MQTT sur un EP8266 (ESP32) Feather Huzzah ou MKR Wifi 1010"]] microc/uc/mkr.txt Dernière modification : 2026/04/27 23:48de mno