[[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"]]