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 votre 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, vous n'avez pas besoin d'installer le bureau avec l'interface utilisateur graphique (GUI) ; cependant, si vous êtes nouveau sur le Raspberry Pi et que votre matériel Raspberry Pi le prend en charge, l’utilisation du bureau avec l'interface graphique peut être plus facile.

  • Une WiFi connexion ou une 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 via un clavier, une souris et un moniteur directement connectés, ou en utilisant une interface distante de terminal SSH.

Si vous exécutez un système d'exploitation sur votre Raspberry Pi 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 SDK du AWS IoT périphérique

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

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

    Avant d'installer un SDK de AWS IoT périphérique, 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 SDK du AWS IoT périphérique 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 pour installer le AWS IoT Device SDK pour JavaScript.

Installer le SDK AWS IoT du périphérique

Installez le SDK du AWS IoT périphérique.

Python

Dans cette section, vous allez installer Python, ses outils de développement et le AWS IoT Device SDK pour 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 pour Python nécessite l'installation de Python v3.5 ou version ultérieure 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. Installez le SDK AWS IoT Device actuel pour Python

    Installez le SDK AWS IoT Device pour 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 SDK du AWS IoT périphérique 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 SDK du AWS IoT périphérique pour JavaScript

    Installez le SDK du AWS IoT périphérique pour JavaScript votre Raspberry Pi.

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

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

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Accédez au répertoire aws-iot-device-sdk-js-v2 que vous avez créé à l'étape précédente et lancez-le npm install pour installer le SDK. 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 le SDK de l' AWS IoT appareil. Cette application montre comment votre appareil utilise la bibliothèque MQTT pour publier et s'abonner aux messages MQTT. 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 répertoire personnel 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 de votre appareil Créez des AWS IoT ressources 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.

La your-iot-endpointvaleur a le format suivant :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-endpointcomme 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 Dépannage des problèmes avec 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 répertoire ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub créé par le SDK 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-endpointcomme 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 Dépannage des problèmes avec 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 l’agent de messages en utilisant le client de test MQTT dans la AWS IoT console.

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

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

  3. S'abonner à la rubrique, topic_1.

  4. Dans votre fenêtre de ligne de commande, exécutez à nouveau l'exemple d'application et observez les messages du client MQTT 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