[[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 == * Site Arduino - MKR FAMILY | Getting started with the MKR WiFi 1010 | Arduino IDE V2 == 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 - Arduino Library List == Distributeurs == * Mouser ---- ==== 1. La gamme MKR ==== La gamme MKR 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 (Datasheet) * **U-BLOX NINA-W10** Series Low Power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi (Datasheet) * **ECC508 Crypto Authentication**. (Datasheet) {{ :arduino:mkr1010.jpg?nolink&350 | }} 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. === 1.2 Brochage === {{ :arduino:uc:mkr_wifi_1010_pinout.jpg?nolink |}} Diagramme de brochage complet au format PDF et schéma de la carte MKR Wifi 1010. === 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) 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. ==== 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 github * **Documentation** sur arduino.cc 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 Nick O'Leary sur github 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 github 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 ESP32 WebServer et des ESP8266WebServer. \\ 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 ArduinoHttpClient. \\ ==== 4. Arduino MKR Connector Carrier (Grove compatible) ==== Toutes les cartes de la gamme MKR possèdent le même nombre d'E/S. 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 Arduino MKR Connector Carrier (Grove compatible). [Schéma] {{ :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" === void setup() { pinMode(LED_BUILTIN,OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } {{ :arduino:uc:platformioico.png?nolink&50|}} Télécharger le projet PlatformIO pour VSCode. === 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. // 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" //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|}} Le projet PlatformIO pour VSCode. === 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"]]