翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Raspberry Pi または他のデバイスを接続する
このセクションでは、 で使用する Raspberry Pi を設定します AWS IoT。接続したい別のデバイスがある場合、Raspberry Pi の手順には、これらの指示をデバイスに合わせて適用するのに役立つ参照先が含まれています。
通常、この処理には約 20 分かかりますが、システムソフトウェアのアップグレードが多数ある場合は、インストールにより長い時間を要する場合があります。
デバイスをセットアップする
このステップの目的は、オペレーティングシステム (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とサンプルコードをインストールする前に、システムが最新であり、 をインストールするために必要なツールとライブラリがあることを確認してくださいSDKs。
-
オペレーティングシステムを更新し、必要なライブラリをインストールします。
AWS IoT Device をインストールする前にSDK、デバイスのターミナルウィンドウでこれらのコマンドを実行してオペレーティングシステムを更新し、必要なライブラリをインストールします。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake
sudo apt-get install libssl-dev
-
Git をインストールする
デバイスのオペレーティングシステムに Git がインストールされていない場合は、インストールして SDKの AWS IoT デバイスをインストールする必要があります JavaScript。
-
Git が既にインストールされているかどうかを確認するために、このコマンドを実行してテストします。
git --version
-
前のコマンドで Git バージョンが返された場合、Git は既にインストールされており、ステップ 3 に進むことができます。
-
git コマンドを実行するとエラーが表示される場合は、このコマンドを実行して Git をインストールします。
sudo apt-get install git
-
このコマンドを実行して、Git がインストールされているかどうかをもう一度テストします。
git --version
-
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 を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。
-
Python およびその開発ツールをインストールする
AWS IoT Device SDK for Python では、Python v3.5 以降を Raspberry Pi にインストールする必要があります。
デバイスのターミナルウィンドウで、次のコマンドを実行します。
-
このコマンドを実行して、デバイスにインストールされている Python のバージョンを確認します。
python3 --version
Python がインストールされている場合は、そのバージョンが表示されます。
-
表示されているバージョンが Python
3.5
以降の場合は、ステップ 2 にスキップできます。
-
表示されたバージョンが Python 3.5
よりも前の場合は、このコマンドを実行して正しいバージョンをインストールできます。
sudo apt install python3
-
このコマンドを実行して、正しいバージョンの Python がインストールされていることを確認します。
python3 --version
-
pip3 をテストする
デバイスのターミナルウィンドウで、次のコマンドを実行します。
-
このコマンドを実行して、pip3 がインストールされているかどうかを確認します。
pip3 --version
-
コマンドがバージョン番号を返す場合、pip3 はインストールされており、ステップ 3 にスキップできます。
-
前のコマンドがエラーを返す場合は、このコマンドを実行して pip3 をインストールします。
sudo apt install python3-pip
-
このコマンドを実行して、pip3 がインストールされているかどうかを確認します。
pip3 --version
-
現在の 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 を対象としています。別のデバイスをお持ちの場合、または別のオペレーティングシステムを使用している場合は、これらの手順をデバイスに合わせて調整する必要があります。
-
Node.js の最新バージョンをインストールする
SDK の AWS IoT デバイス JavaScript には、Node.js と npm パッケージマネージャーを Raspberry Pi にインストールする必要があります。
-
このコマンドを入力して、ノードリポジトリの最新バージョンをダウンロードします。
cd ~
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
-
Node と npm をインストールします。
sudo apt-get install -y nodejs
-
Node のインストールを確認します。
node -v
コマンドが Node のバージョンを表示することを確認します。このチュートリアルでは Node v10.0 以降が必要です。Node のバージョンが表示されない場合は、Node リポジトリを再度ダウンロードしてみてください。
-
npm のインストールを確認します。
npm -v
コマンドが npm バージョンを表示することを確認します。npm のバージョンが表示されない場合は、Node と npm をもう一度インストールしてみてください。
-
デバイスを再起動します。
sudo shutdown -r 0
デバイスの再起動後に続行します。
-
SDK の AWS IoT デバイスをインストールする JavaScript
Raspberry Pi JavaScript に AWS IoT Device SDK for をインストールします。
-
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
-
前のステップで作成したaws-iot-device-sdk-js-v2
ディレクトリに変更し、 npm install
を実行して をインストールしますSDK。コマンド npm install
が aws-crt
ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。
cd ~/aws-iot-device-sdk-js-v2
npm install
サンプルアプリケーションをインストールして実行する
このセクションでは、 AWS IoT デバイス にあるpubsub
サンプルアプリケーションをインストールして実行しますSDK。このアプリは、デバイスがMQTTライブラリを使用してMQTTメッセージを発行およびサブスクライブする方法を示しています。サンプルアプリケーションは トピック topic_1
にサブスクライブし、そのトピックに 10 個のメッセージを発行し、メッセージブローカーから受信したメッセージを表示します。
証明書ファイルをインストールする
サンプルアプリケーションでは、デバイスを認証する証明書ファイルをそのデバイスにインストールする必要があります。
サンプルアプリケーションのデバイス証明書ファイルをインストールするには
-
でcerts
サブディレクトリを作成する home
これらのコマンドを実行して ディレクトリを実行します。
cd ~
mkdir certs
-
~/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
-
サンプルアプリケーションをインストールして実行するには
-
サンプルアプリディレクトリに移動します。
cd ~/aws-iot-device-sdk-python-v2/samples
-
コマンドラインウィンドウで、 を置き換えます。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
-
サンプルアプリケーションが次のようになっていることを観察します。
-
アカウントの AWS IoT サービスに接続します。
-
メッセージトピック topic_1 をサブスクライブし、そのトピックで受信したメッセージを表示します。
-
10 個のメッセージをトピック、topic_1 に発行します。
-
次のような出力を表示します。
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
-
サンプルアプリケーションをインストールして実行するには
-
コマンドラインウィンドウで、 がSDK作成した~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
ディレクトリに移動し、これらのコマンドを使用してサンプルアプリケーションをインストールします。コマンド npm
install
が aws-crt
ライブラリビルドを呼び出し、これは完了するまで数分かかることがあります。
cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
npm install
-
コマンドラインウィンドウで、 を置き換えます。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
-
サンプルアプリケーションが次のようになっていることを観察します。
-
アカウントの AWS IoT サービスに接続します。
-
メッセージトピック topic_1 をサブスクライブし、そのトピックで受信したメッセージを表示します。
-
10 個のメッセージをトピック、topic_1 に発行します。
-
次のような出力を表示します。
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メッセージを表示するには
-
確認クライアントでMQTT AWS IoT MQTTメッセージを表示する。これにより、AWS IoT コンソールでMQTTテストクライアントを使用して、MQTTメッセージブローカーを通過するメッセージを表示する方法を学ぶことができます。
-
AWS IoT コンソール でMQTTテストクライアントを開きます。
-
トピック topic_1 にサブスクライブします。
-
コマンドラインウィンドウで、サンプルアプリを再度実行し、 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