LoginSignup
75
74

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-10-09

概要

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ライフを!

75
74
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
74