Connecter Sécurément l'Arduino MKR GSM 1400 à Google Cloud IoT Core – Guide Pas à Pas
Composants et fournitures
| Composant | Quantité | Notes |
|---|---|---|
| Arduino MKR GSM 1400 | 1 | |
| Câble Micro-USB vers USB | 1 | |
| Batterie LiPo 3,7 V | 1 | |
| Carte Micro SIM | 1 | Avec forfait data |
| Antenne cellulaire U.FL | 1 |
Applications et services en ligne
- Arduino IDE
- Google Cloud IoT Core
À propos de ce projet
Note : Ce tutoriel peut être daté. Consultez ce lien pour une version à jour.
Introduction
Les appareils peuvent se connecter à GCP IoT Core via HTTP ou MQTT. Ce guide montre comment connecter un Arduino MKR GSM 1400 sécurément à GCP IoT Core en utilisant un client MQTT. MQTT (Message Queuing Telemetry Transport) est un protocole M2M léger de messagerie publish/subscribe.
L'authentification utilise des JWT (JSON Web Tokens) (RFC 7519). GCP IoT Core supporte RSA et ECC (Elliptic Curve) pour vérifier les signatures JWS (RFC 7515).
Chaque carte MKR avec connectivité embarquée (dont la MKR GSM 1400) possède un élément cryptographique Microchip ATECC508A/ATECC608A. Cet élément génère et stocke sécurisément une clé ECC 256 bits. Nous utiliserons la clé privée stockée dans cet élément pour signer le JWT.
Configuration logicielle et matérielle
- Installer Arduino IDE.
- Dans l'IDE : Outils → Board → Board Manager, rechercher « Arduino SAMD », installer la dernière version (1.6.20+).
- Installer les bibliothèques via Croquis → Inclure une bibliothèque → Gérer les bibliothèques :
MKRGSMArduino_JSONArduinoECCX08(version ≥ 1.3.0)ArduinoMqttClient(version ≥ 0.1.3)Arduino Cloud Provider Examples(version ≥ 1.2.0)
- Insérer la carte SIM, connecter l'antenne, brancher la LiPo sur le connecteur JST, connecter l'USB.
- Dans l'IDE : sélectionner le port série et la board « Arduino MKR GSM 1400 ».

Configuration et ajout de la carte à GCP IoT Core
GCP IoT Core exige un JWT pour l'authentification MQTT. Nous allons générer une paire de clés sur la carte, puis ajouter la clé publique (format PEM) dans la console GCP.
- Ouvrir l'exemple : Fichier → Exemples → ArduinoECCX08 → Tools → ECCX08JWSPublicKey.
- Téléverser, ouvrir le Moniteur Série (fin de ligne « Both NL & CR »).
- Le sketch propose de configurer et verrouiller définitivement l'élément crypto (irréversible, mais nécessaire). Cela crée 5 emplacements de clés privées (slots 0-4), régénérables à volonté.
- Choisir le slot 0 pour ce tutoriel. La clé privée ne quitte jamais l'élément crypto.
- Copier la clé publique PEM générée (exemple ci-dessous).
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4+DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzR
e2kqGWFEb+QP4V4YUK9Zy7PsmRABi1sWgxiAoEhg1FEQgg==
-----END PUBLIC KEY-----
Créer le projet et le registre sur GCP Console
- Aller sur cloud.google.com, se connecter.
- Cliquer « GO TO CONSOLE » → « CREATE » nouveau projet (ex: « MKR GCP Tutorial »).
- Menu ☰ → BIG DATA → IoT Core → « Enable API ».
- « Create a device registry » : Registry ID (ex: « MKR_GCP_Tutorial »), région (ex: « us-central1 »).
- Dans le registre, onglet « Devices » → « + CREATE A DEVICE ».
- Nom de l'appareil (ex: « MyMKRGSM1400 »), format clé publique « ES256 », coller la clé PEM. « Create ».

Connexion de la carte à GCP IoT Core
- Ouvrir l'exemple : Fichier → Exemples → Arduino Cloud Provider Examples → GoogleCloudPlatformIoTCore → GCP_IoT_Core_GSM.
- Onglet
arduino_secrets.h: renseigner PIN SIM (si requis), APN GPRS, login, mot de passe de votre opérateur. - Renseigner les identifiants GCP :
#define SECRET_PROJECT_ID "mkr-gcp-tutorial"
#define SECRET_CLOUD_REGION "us-central1"
#define SECRET_REGISTRY_ID "MKR_GCP_Tutorial"
#define SECRET_DEVICE_ID "MyMKRGSM1400"
- Téléverser, ouvrir le Moniteur Série. La carte se connecte au réseau cellulaire puis à GCP IoT Core via MQTT.

Interagir avec la carte sur GCP IoT Core
Le sketch envoie un message sur /devices/{deviceId}/state toutes les 5 s et écoute sur /devices/{deviceId}/config et /devices/{deviceId}/commands/#.
- Dans la console GCP, page de l'appareil → « SEND COMMAND ».
- Entrer un message (ex: « Hello There! ») → « SEND COMMAND ».
- Le message apparaît sur le Moniteur Série de la carte.

Pour voir les messages envoyés par la carte : onglet « Configuration & state history ». Les messages sont en Base64 ; cliquer une entrée et sélectionner « Text » pour lire.

Conclusion
Ce tutoriel a montré comment utiliser sécurisément un Arduino MKR GSM 1400 avec GCP IoT Core : JWT signé via la clé privée stockée dans l'ATECC508A/608A, protocole MQTT, envoi/réception de messages. C'est un point de départ pour intégrer d'autres services GCP.
Code
GitHub : ArduinoCloudProviderExamples
Processus de fabrication
- ADLINK et Google Cloud collaborent pour des solutions IoT transparentes
- Connecter un Raspberry Pi 3 au capteur DHT11 et envoyer les données vers le cloud ThingsIo.ai
- Surveillance Précise de Température et Humidité avec SHT15 sur Windows 10 IoT Core
- Installation de Windows 10 IoT Core sur Raspberry Pi 3 Model B+ : Guide Étape par Étape
- Construire un robot piloté par la parole avec Windows 10 IoT Core sur Raspberry Pi 2
- Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link
- Arduino Mega : Capturer des photos et les téléverser automatiquement sur Google Drive
- Système de Contrôle de Piscine IoT Azure : Capteurs Intelligents & Surveillance à Distance
- Maîtriser les passerelles IoT : connecter les appareils au cloud de manière transparente