Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Connexion sécurisée d'un MKR GSM 1400 à Google Cloud IoT Core

Composants et fournitures

Arduino MKR GSM 1400
× 1
Câble Micro-USB vers USB (Générique)
× 1
Batterie Lipo 3,7 V
× 1
Carte Micro SIM
× 1
Antenne cellulaire UF.L
× 1

Applications et services en ligne

Arduino IDE
Google Cloud IoT Core

À propos de ce projet

Remarque :Ce tutoriel est peut-être obsolète, veuillez y aller ici pour une version plus actuelle.

Présentation

Les appareils peuvent se connecter à GCP IoT Core via HTTP ou MQTT. Ce didacticiel vous expliquera comment connecter une carte Arduino MKR GSM 1400 en toute sécurité à GCP IoT Core à l'aide d'un client MQTT. MQTT (Message Queuing Telemetry Transport) est un protocole de connectivité M2M (machine à machine) qui fournit un abonnement à la messagerie et un transport de publication.

Les appareils doivent utiliser des jetons Web JSON (JWT) pour l'authentification. Vous trouverez plus d'informations sur les JWT dans la RFC 7519. GCP IoT Core prend en charge les algorithmes RSA et Elliptic Curve pour vérifier les signatures Web JSON (JWS). Plus d'informations sur JWS peuvent être trouvées dans la RFC 7515.

Chaque carte Arduino MKR avec connectivité embarquée, y compris le MKR GSM 1400, est équipée d'un élément cryptographique Microchip ATECC508A ou ATECC608A. Cet élément crypto peut être utilisé pour générer et stocker en toute sécurité une clé ECC (Elliptic Curve Cryptography) 256 bits. Nous utiliserons une clé privée stockée dans l'élément crypto pour signer le JWT.

Configuration logicielle et matérielle

Si vous n'avez pas installé l'IDE Arduino sur votre ordinateur, téléchargez-le et installez-le.

Une fois qu'il est installé, assurez-vous que le dernier package "Arduino SAMD Boards" est installé. Vous pouvez vérifier en ouvrant l'IDE Arduino et en ouvrant les Outils -> Carte :"..." -> Gestionnaire de carte... entrée de menu et recherchez "Arduno SAMD". Au moment d'écrire ces lignes, la 1.6.20 était la dernière version.

Ensuite, vous devrez installer les bibliothèques Arduino qui seront utilisées, en utilisant le gestionnaire de bibliothèque de l'IDE Arduino. Ouvrez l'esquisse -> Inclure la bibliothèque -> Gérer les bibliothèques... menu, recherchez et installez individuellement chacune des bibliothèques suivantes :

  • MKRGSM
  • Arduino_JSON
  • ArduinoECCX08 (version 1.3.0 ou ultérieure)
  • ArduinoMqttClient (version 0.1.3 ou ultérieure)
  • Exemples de fournisseur de cloud Arduino (version 1.2.0 ou ultérieure)

Insérez maintenant la carte micro SIM dans la fente située au bas de la carte MKR GSM 1400, connectez l'antenne et connectez la batterie Lipo 3,7 V au connecteur JST. Branchez ensuite le MKR GSM 1400 avec le câble micro USB sur votre ordinateur, sélectionnez le port série dans l'IDE Arduino à l'aide des Outils -> Port "..." menu et sélectionnez également Arduino MKR GSM 1400 dans Outils -> Carte "..." menu.

Configuration et ajout de la carte à GCP IoT Core

Comme mentionné ci-dessus, GCP IoT Core nécessite que les appareils qui se connectent à l'aide du protocole MQTT utilisent JWT pour l'authentification. Nous allons utiliser un croquis pour générer une clé privée et publique sur le tableau, puis ajouter la valeur PEM de la clé publique à la console GCP IoT Core.

Le privé et le public peuvent être générés à l'aide d'un exemple d'esquisse de la bibliothèque ArduinoECCX08. Ouvrez l'esquisse dans l'IDE Arduino à l'aide de Fichier -> Exemples -> ArduinoECCX08 -> Outils -> ECCX08JWSPublicKey . Cliquez sur le bouton « Télécharger » pour créer et télécharger le croquis sur votre carte, puis ouvrez le moniteur série. Assurez-vous que la configuration de fin de ligne est définie sur "Both NL &CR".

Ce croquis vous invitera à configurer définitivement votre élément crypto ATECC508A à ECC608A s'il n'est pas configuré et verrouillé. REMARQUE :ce processus de verrouillage est permanent et irréversible, mais est nécessaire pour utiliser l'élément cryptographique - la configuration définie par l'esquisse vous permet d'utiliser 5 emplacements de clé privée avec n'importe quel fournisseur de cloud (ou serveur) et une clé privée peut être régénérée à tout moment pour l'un des 5 emplacements de clé privée (0 - 4) . Lorsque la carte est expédiée de l'usine, l'élément cryptographique est dans un état non configuré et déverrouillé.

Après cela, vous serez invité à indiquer quel emplacement utiliser. Pour ce didacticiel, nous utiliserons l'emplacement 0 pour générer et stocker la clé privée utilisée pour une clé publique (les emplacements 1 à 4 peuvent être utilisés pour générer et stocker des clés privées supplémentaires si nécessaire). Remarque : Étant donné que la clé privée est générée à l'intérieur de l'élément cryptographique, elle ne quitte jamais l'appareil et est stockée en toute sécurité et ne peut pas être lue.

Copiez la valeur de la clé publique générée, dans cette capture d'écran, la valeur est :

-----DÉBUT DE CLÉ PUBLIQUE-----MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4+DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzRe2kqGWFEb+Q9EQP4ggV4P-CLÉ-F1-PUB-Q-F1 

Nous l'utiliserons ultérieurement lors de l'ajout de l'appareil à GCP IoT Core.

Maintenant que nous avons une clé publique PEM, nous devons nous connecter à la console GCP IoT Core et créer un nouvel appareil pour celle-ci.

1) Ouvrez un navigateur Web, accédez à https://cloud.google.com/ et cliquez sur le lien "Connexion" pour vous connecter avec votre identifiant Google.

2) Une fois connecté, cliquez sur le bouton « ALLER À LA CONSOLE ». Ensuite, vous verrez le tableau de bord principal.

3) Cliquez sur le lien "CRÉER" pour créer un nouveau projet.

4) On vous demandera un nom de projet, nous utiliserons "MKR GCP Tutorial" pour le nom. Cliquez sur le bouton "CRÉER" pour continuer.

5) Une fois le projet créé, une vue du tableau de bord vous sera présentée.

6) Maintenant, cliquez sur l'icône de menu en haut à gauche, faites défiler jusqu'à l'en-tête "BIG DATA" et cliquez sur le lien "IoT Core".

7) Vous serez invité à activer l'API, cliquez sur le bouton "Activer l'API".

8) Une fois l'API activée, vous serez invité à créer un registre d'appareils. Cliquez sur le bouton "Créer un registre d'appareils" pour continuer.

9) Un formulaire vous sera alors présenté. Remplissez le "Registry ID", sélectionnez une région. Dans la capture d'écran ci-dessous, "MKR_GCP_Tutorial" a été saisi pour l'ID de registre et "us-central1" a été sélectionné comme région. Une fois le formulaire rempli, cliquez sur le bouton "Créer".

10) Vous serez alors présenté avec les détails du registre.

11) Pour ajouter un nouvel appareil, cliquez sur le lien « Appareils » dans la barre de navigation sur le côté gauche.

12) Cliquez ensuite sur "+ CRÉER UN APPAREIL" dans l'en-tête en haut de la page.

13) Entrez le nom de l'appareil, dans la capture d'écran ci-dessous "MyMKRGSM1400" a été utilisé. "ES256" doit être sélectionné comme "Format de clé publique". Collez la clé publique PEM générée précédemment sur le tableau dans la zone de texte « Valeur de la clé publique ». Cliquez ensuite sur le bouton "Créer".

Connecter la carte à GCP IoT Core

1) Ouvrez le sketch GCP IoT Core GSM dans l'IDE Arduino en utilisant Fichier -> Exemples -> Exemples de fournisseur de cloud Arduino -> GoogleCloudPlatformIoTCore-> GCP_IoT_Core_GSM.

2) Dans l'onglet arduino_secrets.h, remplissez le code PIN (si nécessaire) de la carte SIM, ainsi que l'APN GPRS, le nom d'utilisateur et le mot de passe de l'opérateur de téléphonie mobile que vous utilisez.

// Paramètres GSM#define SECRET_PINNUMBER ""#define SECRET_GPRS_APN "GPRS_APN" // remplacez votre GPRS APN#define SECRET_GPRS_LOGIN "login" // remplacez par votre login GPRS#define SECRET_GPRS_PASSWORD "password" // remplacez par votre mot de passe GPRS 

4) Ensuite, mettez à jour l'ID du projet, la région cloud, l'ID de registre et les valeurs d'ID d'appareil.

// Remplissez votre Google Cloud Platform - IoT Core info#define SECRET_PROJECT_ID ""#define SECRET_CLOUD_REGION ""#define SECRET_REGISTRY_ID ""#define SECRET_DEVICE_ID "" 

La valeur de l'ID du projet peut être trouvée en cliquant sur la barre de menu en haut de la console GCP. Pour les étapes ci-dessus, les valeurs sont :

#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" 

5) Téléchargez le croquis sur votre carte et ouvrez le moniteur série. La carte tentera de se connecter au réseau cellulaire et, en cas de succès, essaiera de se connecter à GCP IoT Core à l'aide de MQTT.

Interagir avec le conseil d'administration sur GCP IoT Core

Maintenant que votre carte s'est connectée avec succès à GCP IoT Core, nous pouvons utiliser la console GCP IoT Core pour interagir avec elle. L'esquisse envoie un message au /devices/{deviceId}/state sujet toutes les 5 secondes et écoute les messages sur les deux /devices/{deviceId}/config topic et /devices/{deviceId}/commands/# sujets.

Sur la page de l'appareil dans la console GCP IoT Core, cliquez sur le bouton "ENVOYER LA COMMANDE".

Une boîte de dialogue modale apparaîtra, dans laquelle vous pourrez saisir un message à envoyer. Dans la capture d'écran ci-dessous, "Hello There!" a été saisie. Cliquez sur le bouton "ENVOYER LA COMMANDE" pour envoyer le message.

Une fois que la carte reçoit le message, elle l'imprimera sur le moniteur série.

Pour afficher les messages que le tableau envoie, cliquez sur l'onglet "Configuration et historique de l'état".

Les messages apparaîtront au format codé Base64, pour afficher la valeur, cliquez et l'entrée dans la liste et sélectionnez le bouton radio "Texte".

Dans la capture d'écran ci-dessus, le forum envoyait un "hello 464488" valeur, la valeur 464488 est le résultat du millis() fonction au tableau.

Conclusion

Dans ce didacticiel, nous avons expliqué comment utiliser en toute sécurité une carte Arduino MKR GSM 1400 avec GCP IoT Core. Un JWT signé a été utilisé pour s'authentifier auprès de GCP IoT Core à l'aide du protocole MQTT avec l'ATECC508A ou l'ATECC608A stockant la clé privée utilisée pour signer le JWT. Des messages MQTT ont été envoyés vers et depuis le tableau.

Ce n'est que le début, vous pouvez utiliser GCP IoT Core avec de nombreux autres services fournis par GCP !

Code

Github
https://github.com/arduino/ArduinoCloudProviderExamples

Processus de fabrication

  1. ADLINK s'associe à Google Cloud pour proposer des solutions prêtes pour l'IoT
  2. Raspberry PI Based IoT Project Connecting DHT11 Sensor
  3. Windows 10 IoT Core et SHT15
  4. Windows 10 IoT Core pour Raspberry Pi 3 modèle B+
  5. Windows 10 IoT Core :Robot à commande vocale
  6. Débogage Portenta H7 Dual Core
  7. Arduino - Prendre une photo - Télécharger sur Google Drive
  8. Piscine Azure IoT
  9. Passerelles IoT :un guide pour connecter des objets au cloud