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 上でオペレーティングシステムを実行している場合は、デバイス上でターミナルウィンドウを開き、そのウィンドウで以下の手順を実行します。それ以外の場合であって、PuTTY などのリモートターミナルを使用してデバイスに接続するときは、デバイスへのリモートターミナルを開いてそれを使用します。

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

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

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

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

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

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

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

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

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

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

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

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

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

Python

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

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

    Python AWS IoT 用デバイス SDK を使用するには、ラズベリー Pi に Python v3.5 以降がインストールされている必要があります。

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

    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. 現在の Python AWS IoT 用デバイス SDK のインストール

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

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

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

    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. AWS IoT 以下のデバイス SDK をインストールします。 JavaScript

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

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

      これらのコマンドは、~/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 Device SDK pubsub に含まれるサンプルアプリをインストールして実行します。このアプリケーションは、デバイスが MQTT ライブラリを使用して MQTT メッセージを発行およびサブスクライブする方法を示します。サンプルアプリケーションは トピック topic_1 にサブスクライブし、そのトピックに 10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。

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

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

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

    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 クライアントで MQTT メッセージを表示します。 AWS IoT。これは、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