Connectez un Raspberry Pi ou un autre appareil - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connectez un Raspberry Pi ou un autre appareil

Dans cette section, nous allons configurer un Raspberry Pi à utiliser avec AWS IoT. Si vous souhaitez connecter un autre appareil, les instructions du Raspberry Pi incluent des références qui peuvent vous aider à adapter ces instructions à votre appareil.

Cela prend normalement environ 20 minutes, mais cela peut prendre plus de temps si vous devez installer de nombreuses mises à niveau du logiciel système.

Important

L'adaptation de ces instructions à d'autres appareils et systèmes d'exploitation peut s'avérer difficile. Vous devez avoir une connaissance suffisante de votre appareil pour être en mesure d'interpréter ces instructions et de les appliquer.

Si vous rencontrez des difficultés lors de la configuration de votre appareil pour AWS IoT, vous pouvez essayer l'une des autres options de l'appareil comme alternative, telle que Création d'un appareil virtuel avec Amazon EC2 ouUtilisez votre PC ou Mac Windows ou Linux comme AWS IoT appareil.

Configurez votre appareil

L'objectif de cette étape est de collecter les informations dont vous aurez besoin pour configurer votre appareil afin qu'il puisse démarrer le système d'exploitation (OS), se connecter à Internet et vous permettre d'interagir avec celui-ci via une interface de ligne de commande.

Pour suivre ce didacticiel, vous aurez besoin des éléments suivants :

  • Un Compte AWS. Si vous n'en avez pas, effectuez les étapes décrites dans Configurez Compte AWS avant de continuer.

  • Un Raspberry Pi 3 modèle B ou un modèle plus récent. Cela peut fonctionner sur les versions antérieures du Raspberry Pi, mais elles n'ont pas été testées.

  • Système d'exploitation Raspberry Pi (32 bits) ou version ultérieure. Nous vous recommandons d'utiliser la dernière version du système d'exploitation Raspberry Pi. Les versions antérieures du système d'exploitation peuvent fonctionner, mais elles n'ont pas été testées.

    Pour exécuter cet exemple, il n'est pas nécessaire d'installer le bureau avec l'interface utilisateur graphique (GUI) ; toutefois, si vous découvrez le Raspberry Pi et que votre matériel Raspberry Pi le prend en charge, il GUI peut être plus facile d'utiliser le bureau avec le Raspberry Pi.

  • Une WiFi connexion Ethernet.

  • Clavier, souris, écran, câbles, blocs d'alimentation et autres équipements nécessaires à votre appareil.

Important

Avant de passer à l'étape suivante, le système d'exploitation de votre appareil doit être installé, configuré et en cours d'exécution. L'appareil doit être connecté à Internet et vous devez pouvoir y accéder à l'aide de son interface en ligne de commande. L'accès à la ligne de commande peut se faire par le biais d'un clavier, d'une souris et d'un moniteur connectés directement ou à l'aide d'une interface de SSH terminal à distance.

Si votre Raspberry Pi utilise un système d'exploitation doté d'une interface utilisateur graphique (GUI), ouvrez une fenêtre de terminal sur l'appareil et suivez les instructions suivantes dans cette fenêtre. Sinon, si vous vous connectez à votre appareil à l'aide d'un terminal distant, tel que PuTTY, ouvrez un terminal distant sur votre appareil et utilisez-le.

Installez les outils et bibliothèques requis pour le AWS IoT périphérique SDK

Avant d'installer le AWS IoT périphérique SDK et l'exemple de code, assurez-vous que votre système est à jour et qu'il dispose des outils et bibliothèques nécessaires pour installer leSDKs.

  1. Mise à jour du système d'exploitation et installation des bibliothèques requises

    Avant d'installer un AWS IoT appareilSDK, exécutez ces commandes dans une fenêtre de terminal de votre appareil pour mettre à jour le système d'exploitation et installer les bibliothèques requises.

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install cmake
    sudo apt-get install libssl-dev
  2. Installez Git

    Si Git n'est pas installé sur le système d'exploitation de votre appareil, vous devez l'installer pour installer le AWS IoT périphérique SDK pour JavaScript.

    1. Vérifiez si Git est déjà installé en exécutant cette commande.

      git --version
    2. Si la commande précédente renvoie la version de Git, cela signifie que Git est déjà installé et vous pouvez passer à l'étape 3.

    3. Si une erreur s'affiche lorsque vous exécutez la commande git, installez Git en exécutant cette commande.

      sudo apt-get install git
    4. Testez à nouveau pour voir si Git est installé en exécutant cette commande.

      git --version
    5. Si Git est installé, passez à la section suivante. Si ce n'est pas le cas, dépannez et corrigez l'erreur avant de continuer. Vous avez besoin de Git SDK pour installer le AWS IoT périphérique JavaScript.

Installation de l' AWS IoT appareil SDK

Installez le AWS IoT périphériqueSDK.

Python

Dans cette section, vous allez installer Python, ses outils de développement et le AWS IoT Device SDK for Python sur votre appareil. Ces instructions concernent un Raspberry Pi exécutant le dernier système d’exploitation Raspberry Pi. Si vous avez un autre appareil ou utilisez un autre système d'exploitation, vous devrez peut-être adapter ces instructions à votre appareil.

  1. Installer Python et ses outils de développement

    Le AWS IoT Device SDK for Python nécessite Python v3.5 ou version ultérieure pour être installé sur votre Raspberry Pi.

    Dans une fenêtre de terminal sur votre appareil, exécutez ces commandes.

    1. Exécutez cette commande pour déterminer la version de Python installée sur votre appareil.

      python3 --version

      Si Python est installé, il affichera sa version.

    2. Si la version affichée est Python 3.5 ou supérieure, vous pouvez passer à l'étape 2.

    3. Si la version affichée est inférieure à Python 3.5, vous pouvez installer la bonne version en exécutant cette commande.

      sudo apt install python3
    4. Exécutez cette commande pour vérifier que la bonne version de Python est désormais installée.

      python3 --version
  2. Test pour pip3

    Dans une fenêtre de terminal sur votre appareil, exécutez ces commandes.

    1. Exécutez cette commande pour voir si pip3 est installée.

      pip3 --version
    2. Si la commande renvoie un numéro de version, pip3 est installée et vous pouvez passer à l'étape 3.

    3. Si la commande précédente renvoie une erreur, exécutez cette commande pour effectuer l'installation de pip3.

      sudo apt install python3-pip
    4. Exécutez cette commande pour voir si pip3 est installée.

      pip3 --version
  3. Installer le AWS IoT périphérique actuel SDK pour Python

    Installez AWS IoT Device SDK for Python et téléchargez les exemples d'applications sur votre appareil.

    Sur votre appareil, exécutez ces commandes.

    cd ~ python3 -m pip install awsiotsdk
    git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
JavaScript

Dans cette section, vous allez installer Node.js, le gestionnaire de packages npm et le AWS IoT Device SDK for JavaScript sur votre appareil. Ces instructions concernent un Raspberry Pi exécutant le système d’exploitation Raspberry Pi. Si vous avez un autre appareil ou utilisez un autre système d'exploitation, vous devrez peut-être adapter ces instructions à votre appareil.

  1. Installer la dernière version de Node.js

    Le AWS IoT périphérique SDK pour JavaScript nécessite l'installation de Node.js et du gestionnaire de packages npm sur votre Raspberry Pi.

    1. Téléchargez la dernière version du référentiel Nœud en entrant cette commande.

      cd ~ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. Installez Nœud et npm.

      sudo apt-get install -y nodejs
    3. Vérifier l'installation de Nœud.

      node -v

      Confirmez que la commande affiche la version du Nœud. Ce didacticiel nécessite Nœud v10.0 ou une version ultérieure. Si la version de Nœud n'est pas affichée, essayez de télécharger à nouveau le référentiel Nœud.

    4. Vérifiez l'installation de npm.

      npm -v

      Confirmez que la commande affiche la version du Nœud npm. Si la version npm n'est pas affichée, réessayez d'installer Nœud et npm.

    5. Redémarrez le périphérique.

      sudo shutdown -r 0

      Continuez après le redémarrage de l'appareil.

  2. Installez le AWS IoT périphérique SDK pour JavaScript

    Installez l' AWS IoT appareil SDK JavaScript sur votre Raspberry Pi.

    1. Clonez le AWS IoT périphérique SDK pour JavaScript le déposer dans le aws-iot-device-sdk-js-v2 répertoire de votre home annuaire. Sur le Raspberry Pi, le home le répertoire est~/, qui est utilisé comme home répertoire dans les commandes suivantes. Si votre appareil utilise un chemin différent pour home répertoire, vous devez le ~/ remplacer par le chemin correct pour votre appareil dans les commandes suivantes.

      Ces commandes créent le ~/aws-iot-device-sdk-js-v2 répertoire et y copient le SDK code.

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Accédez au aws-iot-device-sdk-js-v2 répertoire que vous avez créé à l'étape précédente et exécutez npm install pour installer leSDK. La commande npm install invoque la compilation de la bibliothèque aws-crt, qui peut prendre quelques minutes.

      cd ~/aws-iot-device-sdk-js-v2 npm install

Installez et exécutez l'exemple d'application

Dans cette section, vous allez installer et exécuter l'pubsubexemple d'application qui se trouve dans l' AWS IoT appareilSDK. Cette application montre comment votre appareil utilise la MQTT bibliothèque pour publier des MQTT messages et s'y abonner. L'exemple d'application s'abonne à une rubrique, topic_1, publie 10 messages sur cette rubrique et affiche les messages au fur et à mesure qu'ils sont reçus de l’agent de messages.

Installez les fichiers de certificat

L'exemple d'application nécessite que les fichiers de certificat authentifiant l'appareil soient installés sur celui-ci.

Pour installer les fichiers de certificat de l'appareil pour l'exemple d'application
  1. Créez un certs sous-répertoire dans votre home répertoire en exécutant ces commandes.

    cd ~ mkdir certs
  2. Dans le répertoire ~/certs, copiez la clé privée, le certificat de périphérique et le certificat d'autorité de certification racine que vous avez créés précédemment dans Créez des AWS IoT ressources.

    La façon dont vous copiez les fichiers de certificat sur votre appareil dépend de l'appareil et du système d'exploitation et n'est pas décrite ici. Toutefois, si votre appareil prend en charge une interface utilisateur graphique (GUI) et dispose d'un navigateur Web, vous pouvez suivre la procédure décrite dans le navigateur Web Créez des AWS IoT ressources de votre appareil pour télécharger les fichiers obtenus directement sur votre appareil.

    Les commandes figurant dans la section suivante supposent que vos fichiers de clé et de certificat sont stockés sur l'appareil, comme indiqué dans ce tableau.

    Noms des fichiers de certificat

    Fichier

    Chemin d'accès du fichier

    Certificat racine de l'autorité de certification

    ~/certs/Amazon-root-CA-1.pem

    Certificat de l'appareil

    ~/certs/device.pem.crt

    Clé privée

    ~/certs/private.pem.key

Pour exécuter cet exemple d'application, vous avez besoin des informations suivantes :

Valeurs des paramètres de l'application

Paramètre

Où trouver la valeur

your-iot-endpoint

Dans la AWS IoT console, choisissez Tous les appareils, puis Objets.

Sur la page Paramètres du AWS IoT menu. Votre point de terminaison est affiché dans la section Point de terminaison des données de l'appareil.

Le your-iot-endpoint la valeur a le format :endpoint_id-ats.iot.region.amazonaws.com, par exemple,a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Python
Pour installer et exécuter l'exemple d'application
  1. Accédez au répertoire de l’exemple d’application.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Dans la fenêtre de ligne de commande, remplacez your-iot-endpoint comme indiqué et exécutez cette commande.

    python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Notez que l'exemple d'application :

    1. Se connecte au AWS IoT service associé à votre compte.

    2. S'abonne à la rubrique du message, topic_1, et affiche les messages qu'il reçoit à cette rubrique.

    3. Publie 10 messages dans la rubrique topic_1.

    4. Affiche une sortie similaire à celle-ci :

    Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'... Connected! Subscribing to topic 'topic_1'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'topic_1': Hello World! [1] Received message from topic 'topic_1': b'Hello World! [1]' Publishing message to topic 'topic_1': Hello World! [2] Received message from topic 'topic_1': b'Hello World! [2]' Publishing message to topic 'topic_1': Hello World! [3] Received message from topic 'topic_1': b'Hello World! [3]' Publishing message to topic 'topic_1': Hello World! [4] Received message from topic 'topic_1': b'Hello World! [4]' Publishing message to topic 'topic_1': Hello World! [5] Received message from topic 'topic_1': b'Hello World! [5]' Publishing message to topic 'topic_1': Hello World! [6] Received message from topic 'topic_1': b'Hello World! [6]' Publishing message to topic 'topic_1': Hello World! [7] Received message from topic 'topic_1': b'Hello World! [7]' Publishing message to topic 'topic_1': Hello World! [8] Received message from topic 'topic_1': b'Hello World! [8]' Publishing message to topic 'topic_1': Hello World! [9] Received message from topic 'topic_1': b'Hello World! [9]' Publishing message to topic 'topic_1': Hello World! [10] Received message from topic 'topic_1': b'Hello World! [10]' 10 message(s) received. Disconnecting... Disconnected!

    Si vous rencontrez des difficultés en exécutant l'exemple d'application, veuillez consulter Résoudre les problèmes liés à l'exemple d'application.

    Vous pouvez également ajouter le paramètre --verbosity Debug sur la ligne de commande afin que l'exemple d'application affiche des messages détaillés sur ce qu'elle fait. Ces informations peuvent vous fournir l'aide dont vous avez besoin pour corriger le problème.

JavaScript
Pour installer et exécuter l'exemple d'application
  1. Dans votre fenêtre de ligne de commande, accédez au ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub répertoire dans lequel vous avez SDK créé et installez l'exemple d'application à l'aide de ces commandes. La commande npm install invoque la compilation de la bibliothèque aws-crt, qui peut prendre quelques minutes.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. Dans la fenêtre de ligne de commande, remplacez your-iot-endpoint comme indiqué et exécutez cette commande.

    node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Notez que l'exemple d'application :

    1. Se connecte au AWS IoT service associé à votre compte.

    2. S'abonne à la rubrique du message, topic_1, et affiche les messages qu'il reçoit à cette rubrique.

    3. Publie 10 messages dans la rubrique topic_1.

    4. Affiche une sortie similaire à celle-ci :

    Publish received on topic topic_1 {"message":"Hello world!","sequence":1} Publish received on topic topic_1 {"message":"Hello world!","sequence":2} Publish received on topic topic_1 {"message":"Hello world!","sequence":3} Publish received on topic topic_1 {"message":"Hello world!","sequence":4} Publish received on topic topic_1 {"message":"Hello world!","sequence":5} Publish received on topic topic_1 {"message":"Hello world!","sequence":6} Publish received on topic topic_1 {"message":"Hello world!","sequence":7} Publish received on topic topic_1 {"message":"Hello world!","sequence":8} Publish received on topic topic_1 {"message":"Hello world!","sequence":9} Publish received on topic topic_1 {"message":"Hello world!","sequence":10}

    Si vous rencontrez des difficultés en exécutant l'exemple d'application, veuillez consulter Résoudre les problèmes liés à l'exemple d'application.

    Vous pouvez également ajouter le paramètre --verbosity Debug sur la ligne de commande afin que l'exemple d'application affiche des messages détaillés sur ce qu'elle fait. Ces informations peuvent vous fournir l'aide dont vous avez besoin pour corriger le problème.

Afficher les messages de l'exemple d'application dans la AWS IoT console

Vous pouvez voir les messages de l'application d'exemple lorsqu'ils passent par le courtier de messages en utilisant le client de MQTT test dans la AWS IoT console.

Pour consulter les MQTT messages publiés par l'exemple d'application
  1. Consultez Afficher MQTT les messages avec le AWS IoT MQTT client. Cela vous permet d'apprendre à utiliser le client de MQTT test dans la AWS IoT console pour afficher les MQTT messages lorsqu'ils transitent par le courtier de messages.

  2. Ouvrez le client de MQTT test dans la AWS IoT console.

  3. S'abonner à la rubrique, topic_1.

  4. Dans votre fenêtre de ligne de commande, réexécutez l'exemple d'application et regardez les messages du MQTTclient dans la AWS IoT console.

    Python
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    JavaScript
    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint