Raspberry Pi または他のデバイスを接続する - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Raspberry Pi または他のデバイスを接続する

このセクションでは、 で使用する Raspberry Pi を設定します AWS IoT。接続したい別のデバイスがある場合、Raspberry Pi の手順には、これらの指示をデバイスに合わせて適用するのに役立つ参照先が含まれています。

通常、この処理には約 20 分かかりますが、システムソフトウェアのアップグレードが多数ある場合は、インストールにより長い時間を要する場合があります。

重要

これらの指示を他のデバイスやオペレーティングシステムに合わせて適用するのが難しい場合があります。これらの指示を解釈してご利用のデバイスに適用するには、そのデバイスを十分に理解する必要があります。

用にデバイスを設定するときに問題が発生した場合は AWS IoT、 Amazon で仮想デバイスを作成する EC2や などの他のデバイスオプションのいずれかを代替として試すことができますWindows または Linux PC または Mac を AWS IoT デバイスとして使用する

デバイスをセットアップする

このステップの目的は、オペレーティングシステム (OS) を起動し、インターネットに接続し、コマンドラインインターフェイスでデバイスを操作できるようにデバイスを設定するために必要なものを用意することです。

このチュートリアルを完了するには、以下が必要です。

  • AWS アカウント。アカウントをお持ちではない場合、続行する前に、セットアップ AWS アカウント に記載されている手順を完了してください。

  • Raspberry Pi 3 モデル B 以降の最新のモデル。これは、Raspberry Pi の以前のバージョンで動作する可能性がありますが、テストされていません。

  • Raspberry Pi OS (32 ビット)または、それ以降。Raspberry Pi OS の最新バージョンを使用することをお勧めします。以前のバージョンの OS は動作する可能性がありますが、テストされていません。

    この例を実行するには、グラフィカルユーザーインターフェイス (GUI) を使用してデスクトップをインストールする必要はありません。ただし、Raspberry Pi を初めて使用していて、Raspberry Pi ハードウェアがサポートしている場合は、 でデスクトップを使用するGUI方が簡単です。

  • イーサネットまたは WiFi 接続。

  • キーボード、マウス、モニタ、ケーブル、電源装置、およびデバイスに必要なその他のハードウェア。

重要

次のステップに進む前に、デバイスにオペレーティングシステムがインストール、設定、および実行されている必要があります。デバイスはインターネットに接続されていなければなりません。また、コマンドラインインターフェイスを使用してデバイスにアクセスできる必要があります。コマンドラインアクセスは、直接接続されたキーボード、マウス、モニター、またはSSHターミナルリモートインターフェイスを使用して行うことができます。

グラフィカルユーザーインターフェイス (GUI) を持つ Raspberry Pi でオペレーティングシステムを実行している場合は、デバイスのターミナルウィンドウを開き、そのウィンドウで次の手順を実行します。それ以外の場合は、Pu などのリモートターミナルを使用してデバイスに接続する場合はTTY、デバイスにリモートターミナルを開き、それを使用します。

AWS IoT デバイスに必要なツールとライブラリをインストールする SDK

AWS IoT デバイスSDKとサンプルコードをインストールする前に、システムが最新であり、 をインストールするために必要なツールとライブラリがあることを確認してくださいSDKs。

  1. オペレーティングシステムを更新し、必要なライブラリをインストールします。

    AWS IoT Device をインストールする前にSDK、デバイスのターミナルウィンドウでこれらのコマンドを実行してオペレーティングシステムを更新し、必要なライブラリをインストールします。

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install cmake
    sudo apt-get install libssl-dev
  2. Git をインストールする

    デバイスのオペレーティングシステムに Git がインストールされていない場合は、インストールして SDKの AWS IoT デバイスをインストールする必要があります JavaScript。

    1. Git が既にインストールされているかどうかを確認するために、このコマンドを実行してテストします。

      git --version
    2. 前のコマンドで Git バージョンが返された場合、Git は既にインストールされており、ステップ 3 に進むことができます。

    3. git コマンドを実行するとエラーが表示される場合は、このコマンドを実行して Git をインストールします。

      sudo apt-get install git
    4. このコマンドを実行して、Git がインストールされているかどうかをもう一度テストします。

      git --version
    5. Git がインストール済みである場合は、次のセクションに進みます。インストールされていない場合は、トラブルシューティングを行い、エラーを修正してから続行します。SDK の AWS IoT デバイスをインストールするには、Git が必要です JavaScript。

AWS IoT デバイスのインストール SDK

AWS IoT Device をインストールしますSDK。

Python

このセクションでは、デバイスに Python、その開発ツール、 AWS IoT Device SDK for Python をインストールします。これらの手順は、最新の Raspberry Pi OS を実行する Raspberry Pi を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。

  1. Python およびその開発ツールをインストールする

    AWS IoT Device SDK for Python では、Python v3.5 以降を Raspberry Pi にインストールする必要があります。

    デバイスのターミナルウィンドウで、次のコマンドを実行します。

    1. このコマンドを実行して、デバイスにインストールされている Python のバージョンを確認します。

      python3 --version

      Python がインストールされている場合は、そのバージョンが表示されます。

    2. 表示されているバージョンが Python 3.5 以降の場合は、ステップ 2 にスキップできます。

    3. 表示されたバージョンが Python 3.5 よりも前の場合は、このコマンドを実行して正しいバージョンをインストールできます。

      sudo apt install python3
    4. このコマンドを実行して、正しいバージョンの Python がインストールされていることを確認します。

      python3 --version
  2. pip3 をテストする

    デバイスのターミナルウィンドウで、次のコマンドを実行します。

    1. このコマンドを実行して、pip3 がインストールされているかどうかを確認します。

      pip3 --version
    2. コマンドがバージョン番号を返す場合、pip3 はインストールされており、ステップ 3 にスキップできます。

    3. 前のコマンドがエラーを返す場合は、このコマンドを実行して pip3 をインストールします。

      sudo apt install python3-pip
    4. このコマンドを実行して、pip3 がインストールされているかどうかを確認します。

      pip3 --version
  3. 現在の AWS IoT Device SDK for Python をインストールする

    AWS IoT Device SDK for Python をインストールし、サンプルアプリケーションをデバイスにダウンロードします。

    デバイスで、次のコマンドを実行します。

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

このセクションでは、Node.js、npm パッケージマネージャー、 SDKの AWS IoT デバイス JavaScript をデバイスにインストールします。これらの手順は、Raspberry Pi OS を実行している Raspberry Pi を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。

  1. Node.js の最新バージョンをインストールする

    SDK の AWS IoT デバイス JavaScript には、Node.js と npm パッケージマネージャーを Raspberry Pi にインストールする必要があります。

    1. このコマンドを入力して、ノードリポジトリの最新バージョンをダウンロードします。

      cd ~ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. Node と npm をインストールします。

      sudo apt-get install -y nodejs
    3. Node のインストールを確認します。

      node -v

      コマンドが Node のバージョンを表示することを確認します。このチュートリアルでは Node v10.0 以降が必要です。Node のバージョンが表示されない場合は、Node リポジトリを再度ダウンロードしてみてください。

    4. npm のインストールを確認します。

      npm -v

      コマンドが npm バージョンを表示することを確認します。npm のバージョンが表示されない場合は、Node と npm をもう一度インストールしてみてください。

    5. デバイスを再起動します。

      sudo shutdown -r 0

      デバイスの再起動後に続行します。

  2. SDK の AWS IoT デバイスをインストールする JavaScript

    Raspberry Pi JavaScript に AWS IoT Device SDK for をインストールします。

    1. Device AWS IoT SDK for JavaScript repository を の aws-iot-device-sdk-js-v2 ディレクトリにクローンする home ディレクトリ。Raspberry Pi では、home ディレクトリは で~/、 として使用されます。home 次のコマンドの ディレクトリ。デバイスが に別のパスを使用している場合 home ディレクトリ。次のコマンドでは、 をデバイスの正しいパス~/に置き換える必要があります。

      これらのコマンドは ディレクトリを作成し、その~/aws-iot-device-sdk-js-v2ディレクトリにSDKコードをコピーします。

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. 前のステップで作成したaws-iot-device-sdk-js-v2ディレクトリに変更し、 npm installを実行して をインストールしますSDK。コマンド npm installaws-crt ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。

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

サンプルアプリケーションをインストールして実行する

このセクションでは、 AWS IoT デバイス にあるpubsubサンプルアプリケーションをインストールして実行しますSDK。このアプリは、デバイスがMQTTライブラリを使用してMQTTメッセージを発行およびサブスクライブする方法を示しています。サンプルアプリケーションは トピック topic_1 にサブスクライブし、そのトピックに 10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。

証明書ファイルをインストールする

サンプルアプリケーションでは、デバイスを認証する証明書ファイルをそのデバイスにインストールする必要があります。

サンプルアプリケーションのデバイス証明書ファイルをインストールするには
  1. certsサブディレクトリを作成する home これらのコマンドを実行して ディレクトリを実行します。

    cd ~ mkdir certs
  2. ~/certs ディレクトリで、前に AWS IoT リソースの作成 で作成したプライベートキー、デバイス証明書、およびルート CA 証明書をコピーします。

    証明書ファイルをデバイスにコピーする方法は、デバイスおよびオペレーティングシステムによって異なりますが、ここでは説明を割愛します。ただし、デバイスがグラフィカルユーザーインターフェイス (GUI) をサポートしていて、ウェブブラウザがある場合は、デバイスのウェブブラウザAWS IoT リソースの作成から で説明されている手順を実行して、結果のファイルをデバイスに直接ダウンロードできます。

    次のセクションのコマンドは、次の表に示すように、キーおよび証明書ファイルがデバイスに保存されていることを前提としています。

    証明書ファイル名

    ファイル

    ファイルパス

    ルート CA 証明書

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

    デバイス証明書

    ~/certs/device.pem.crt

    プライベートキー

    ~/certs/private.pem.key

サンプルアプリケーションを実行するには、次の情報が必要です。

アプリケーションパラメータ値

Parameter

値がある場所

your-iot-endpoint

AWS IoT コンソールで、[All devices] (すべてのデバイス)、[Things] (モノ) の順に選択します。

メニューの設定ページで AWS IoT 。エンドポイントが [Device data endpoint] (デバイスデータエンドポイント) セクションに表示されます。

- your-iot-endpoint 値の形式は endpoint_id-ats.iot.region.amazonaws.comです。例えば、 ですa3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com

Python
サンプルアプリケーションをインストールして実行するには
  1. サンプルアプリディレクトリに移動します。

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. コマンドラインウィンドウで、 を置き換えます。your-iot-endpoint 指示に従って、このコマンドを実行します。

    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. サンプルアプリケーションが次のようになっていることを観察します。

    1. アカウントの AWS IoT サービスに接続します。

    2. メッセージトピック topic_1 をサブスクライブし、そのトピックで受信したメッセージを表示します。

    3. 10 個のメッセージをトピック、topic_1 に発行します。

    4. 次のような出力を表示します。

    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!

    サンプルアプリケーションの実行に問題がある場合は、サンプルアプリケーションの問題をトラブルシューティングする を確認してください。

    コマンドラインに --verbosity Debug パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立つ場合があります。

JavaScript
サンプルアプリケーションをインストールして実行するには
  1. コマンドラインウィンドウで、 がSDK作成した~/aws-iot-device-sdk-js-v2/samples/node/pub_subディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。コマンド npm installaws-crt ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. コマンドラインウィンドウで、 を置き換えます。your-iot-endpoint 指示に従って、このコマンドを実行します。

    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. サンプルアプリケーションが次のようになっていることを観察します。

    1. アカウントの AWS IoT サービスに接続します。

    2. メッセージトピック topic_1 をサブスクライブし、そのトピックで受信したメッセージを表示します。

    3. 10 個のメッセージをトピック、topic_1 に発行します。

    4. 次のような出力を表示します。

    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}

    サンプルアプリケーションの実行に問題がある場合は、サンプルアプリケーションの問題をトラブルシューティングする を確認してください。

    コマンドラインに --verbosity Debug パラメータを追加して、サンプルアプリケーションが実行内容に関する詳細なメッセージを表示するようにすることもできます。この情報は、問題の修正に役立つ場合があります。

AWS IoT コンソールでサンプルアプリからのメッセージを表示する

サンプルアプリケーションのメッセージは、AWS IoT コンソールMQTTテストクライアントを使用してメッセージブローカーを通過するときに確認できます。

サンプルアプリケーションによって発行されたMQTTメッセージを表示するには
  1. 確認クライアントでMQTT AWS IoT MQTTメッセージを表示する。これにより、AWS IoT コンソールMQTTテストクライアントを使用して、MQTTメッセージブローカーを通過するメッセージを表示する方法を学ぶことができます。

  2. AWS IoT コンソールMQTTテストクライアントを開きます。

  3. トピック topic_1 にサブスクライブします。

  4. コマンドラインウィンドウで、サンプルアプリを再度実行し、 AWS IoT コンソールMQTTクライアントでメッセージを確認します。

    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