2.3 Cloud9上でプログラムを実行

Cloud9でデバイスを実行

Cloud9のコンソールを閉じてしまった場合は、再度Cloud9の環境を起動してください。

Cloud9

Cloud9の画面で、緑色の+を選択し、ポップアップメニューのNew Terminalを選択して、ターミナルのタブを開きます

Cloud9

ターミナルで以下のコマンドを入力して、サンプルのプログラムをダウンロードします。

wget https://go.aws/2VlyYa6 -O dummyclient.zip 
unzip dummyclient.zip

サンプルプログラムを実行するために必要なAWS IoT Device SDKをインストールします。

sudo pip3 install awsiotsdk

サンプルプログラムが展開されると、DummyDevice/certsが作成されるので、そのディレクトリを選択した後にCloud9のメニューからFile > Upload Local Filesを選択すると、アップロート用のダイアログが表示されます。 Cloud9

アップロート用のダイアログでは、先ほど作成した証明書をアップロードするため、Select filesを選択し、3つのファイルをアップロードします。

Cloud9

正しく、DummyDevice/certsの中にあることを確認してください。

Cloud9

ターミナルに移動し、以下のコマンドでAWS IoT Coreの証明書をダウンロードします。

cd DummyDevice
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem -O certs/AmazonRootCA1.pem

以下のコマンドを自分の環境に合わせて実行します。

コマンドでもエンドポイントaws iot describe-endpoint --endpoint-type iot:Data-ATSと、Thing名aws iot list-thingsを確認できます。

python main.py --device_name {ご自分の作ったモノ名} --endpoint {AWS IoTのendpoint_url}

正しく実行されると、以下の様なログが表示されます。

~/environment/DummyDevice $ python main.py --device_name handson-20200707 --endpoint aaaaaaaaaaaa-ats.iot.ap-northeast-1.amazonaws.com

device_name: handson-20200714
endpoint: aaaaaaaaaaaa-ats.iot.ap-northeast-1.amazonaws.com
rootca cert: ./certs/AmazonRootCA1.pem
private key: ./certs/xxxx-private.pem.key
certificate: ./certs/xxxx-certificate.pem.crt
topic: data/handson-20200707

このサンプルプログラムは特定のTopicに対して、定期的にメッセージを送る動きをしています。

AWS IoT Coreにデータが届いているかを確認

AWS IoT Coreのマネージメントコンソールを開き、左側のメニューからテストを開きます。トピックのサブスクリプションdata/センサーのモノの名前を入力し、トピックへのサブスクライブを選択します。(以下の例だと、data/handson-20200714と入力しています)

Cloud9

以下のように、センサーデバイスからのデータが届いているのが確認できます。

Cloud9

次に、ライフサイクルイベントを確認したいので、トピックへサブスクライブする を選択し、トピックのサブスクリプション$aws/events/#を入力し、トピックへのサブスクライブを選択します。

Cloud9

Cloud9上で実行しているサンプルプログラムを、止めたり(Ctrl + c)、再実行するとライフサイクルイベントが発生するのが確認できます。

Cloud9

この手順での作業は以上となります。