Help us understand the problem. What is going on with this article?

ラズパイとAWS IoTを接続してS3にデータを送る

More than 3 years have passed since last update.

概要

AWS IoTが発表されましたね!ってことで早速Raspberry Pi 2
Model BからAWS IoTを通してS3にデータをpushするサンプルデータで一連の流れを試してみました

マネジメントコンソールからAWS IoTの設定をする

スクリーンショット 2015-10-09 11.24.52.png
まずはmanangement consoleからAWS IoTにアクセスして「Create Resoure」のボタンをクリックすると上記の画面になります。では、順に登録していきましょう

Create a thing

スクリーンショット 2015-10-09 11.28.04.png
まずはデバイス自体の登録してあげましょう。Nameを最低限入力すればOKです。
入力してCreateをクリックすれば登録完了です。

Create a rule

スクリーンショット 2015-10-09 11.32.08.png
ルールを登録します。AWS IoTではRules Engineを通して必要なデータのみをフィルタリングしてデータのやり取りをします。これもSQLの形式になっているので直感的にわかりやすいですね。

今回使用したAWS SDKのサンプルコードはtopic_2というトピックを送信します。なので、キャプチャのようなルールを設定することにします。

スクリーンショット 2015-10-09 12.09.40.png

合わせてここでデータの送信先も設定します。

今回はS3にデータを送りたいので「Store the message in a file and store in the cloud (S3)」を選択して、Bucket等の設定を行います。正しくデータが送信されれば「panpan」というファイルができているはずです

Create a Certificate

スクリーンショット 2015-10-09 11.36.17.png
次は証明書や鍵の生成を行います。証明書と秘密鍵と公開鍵が生成されますが、ラズパイの方に設定するのは証明書と秘密鍵になります。これをダウンロードして、scpコマンドでラズパイ側に送ってあげます。

以上でマネジメントコンソールの設定は終わり

Raspberry Pi側の設定

今回はラズパイにnode.jsのaws-iot-device-sdk-jsをインストールして、それからAWS IoTに接続することにします。

ラズパイにsshアクセスしてasw sdkと必要なモジュールをnpmでインストールします

$ git clone https://github.com/aws/aws-iot-device-sdk-js.git
$ cd aws-iot-device-sdk-js
$ npm install mqtt
$ npm install blessed
$ npm install blessed-contrib
$ npm install minimist

そしてマネジメントコンソールからダウンロードした証明書と秘密鍵も設置します。
スクリーンショット 2015-10-09 11.52.46.png
cert.pemが証明書。peivkey.pemが秘密鍵です。また、aws-iot-rootCA.crtにはSymantecからルート証明書を取得して設置します。

これで準備完了。

実行

aws sdkで準備されているサンプルプログラムを動かしてみましょう。
プログラムの内容としてはループを回してカウントアップしていく数値をひたすら送信しつづけるというものです。

そして以下でプログラムを実行します

$ nodejs examples/device-example.js -f ~/certs

実行結果

以下のとおりS3のBuketを見てみると正しくpanpanというファイルができています。
スクリーンショット 2015-10-09 11.58.20.png

ファイルの中身を確認するといかの通りです。右側の数字がずっとカウントアップして更新されてます。
スクリーンショット 2015-10-09 11.59.53.png

まとめ

という感じで、AWS IoTを接続してS3にデータを送る一連の流れをデモしてみました。
うん、楽しい!というわけでよいIoTライフを!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away