概要
AWS IoTが発表されましたね!ってことで早速Raspberry Pi 2
Model BからAWS IoTを通してS3にデータをpushするサンプルデータで一連の流れを試してみました
マネジメントコンソールからAWS IoTの設定をする
まずはmanangement consoleからAWS IoTにアクセスして「Create Resoure」のボタンをクリックすると上記の画面になります。では、順に登録していきましょう
Create a thing
まずはデバイス自体の登録してあげましょう。Nameを最低限入力すればOKです。
入力してCreateをクリックすれば登録完了です。
Create a rule
ルールを登録します。AWS IoTではRules Engineを通して必要なデータのみをフィルタリングしてデータのやり取りをします。これもSQLの形式になっているので直感的にわかりやすいですね。
今回使用したAWS SDKのサンプルコードはtopic_2というトピックを送信します。なので、キャプチャのようなルールを設定することにします。
合わせてここでデータの送信先も設定します。
今回はS3にデータを送りたいので「Store the message in a file and store in the cloud (S3)」を選択して、Bucket等の設定を行います。正しくデータが送信されれば「panpan」というファイルができているはずです
Create a Certificate
次は証明書や鍵の生成を行います。証明書と秘密鍵と公開鍵が生成されますが、ラズパイの方に設定するのは証明書と秘密鍵になります。これをダウンロードして、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
そしてマネジメントコンソールからダウンロードした証明書と秘密鍵も設置します。
cert.pemが証明書。peivkey.pemが秘密鍵です。また、aws-iot-rootCA.crtにはSymantecからルート証明書を取得して設置します。
これで準備完了。
実行
aws sdkで準備されているサンプルプログラムを動かしてみましょう。
プログラムの内容としてはループを回してカウントアップしていく数値をひたすら送信しつづけるというものです。
そして以下でプログラムを実行します
$ nodejs examples/device-example.js -f ~/certs
実行結果
以下のとおりS3のBuketを見てみると正しくpanpanというファイルができています。
ファイルの中身を確認するといかの通りです。右側の数字がずっとカウントアップして更新されてます。
まとめ
という感じで、AWS IoTを接続してS3にデータを送る一連の流れをデモしてみました。
うん、楽しい!というわけでよいIoTライフを!