スターターパックIoTをはじめるために必要最低限なものをパッケージ化デバイスゲートウェイPLCやデータロガー内の値を一定間隔でクラウドに送信し、蓄積します。CurrenTIAアナログセンサーのデータを可視化。設備等の保守などに必要なデータを遠隔で監視できます。スターターパックIoTをはじめるために必要最低限なものをパッケージ化デバイスゲートウェイPLCやデータロガー内の値を一定間隔でクラウドに送信し、蓄積します。CurrenTIAアナログセンサーのデータを可視化。設備等の保守などに必要なデータを遠隔で監視できます。本コンテンツは、JAWS-UG関西IoT専門支部主催のハンズオン向けに作成したものです。下図の通り、IoTデバイス(RaspberryPi)でセンシングしたデータをリアルタイムで可視化することが目標です。VISという無料サービスを利用します。LinuxやAWSの基礎的なスキルを有している方向けの<上級編>はこちら。後編」が完了している方を対象としており、下記の前提条件については説明いたしません。Bを使用RaspberryPiがインターネットに接続できること(Wi-Fi/3G)RaspberryPiにPCからSSHで接続できることRaspberryPiに照度センサーが接続済みで、センサーログをJSON形式でテキストファイルに保存できることまた、AWSアカウントが必要です。今回利用するツール/サービスfluentdfluentdとは、米トレジャーデータ社が中心となり、オープンソースとして開発を行っているログ収集ミドルウェアです。いわゆるPub-Subモデルによりログの配送経路を柔軟に制御することが可能で、データのinputとoutputはプラグインという形で実装されています。サーバ等のLOG収集に使われることが多いですが、IoTデバイスのストリームデータの収集にも向いています。さくらのナレッジの「柔軟なログ収集を可能にする「fluentd」入門」がよくまとまっていて分かりやすいです。今回はRaspberryPiにfluentdをインストールし、下図のように利用します。サービスが提供する完全マネージド型のNoSQLデータベース(いわゆるKVS)です。IoTと非常に親和性が高く、下記のような特徴があります。サイジング不要、I/Oスループットのみ指定するスキーマレス、KEYが増えてもマイグレーションしなくていいSQLではなくAPIで利用する。ストリームデータを連続的に書き込みつつ即座に読み出すようなことは得意領域。Lambda)indexの張り方に失敗すると痛い目に遭う。シリーズや開発者ガイドを読んでみてください。VISとは、株式会社KYOSOが提供するDynamoDB特化のグラフ化Webサービスで、リアルタイムでのグラフ表示に強みがあります。後編」で作製した回路をそのまま利用します。未作製の方は「RaspberryPiで照度計をつくろう」にしたがって回路を作製してRaspberryPiに接続して下さい。必要なパーツはこちらを参照してください。インターネット接続確認とRaspbianのアップデートRaspberryPiをインターネットに接続し、PCから有線LANまたはWi-Fi経由でSSH接続します。RaspberryPiのIPアドレスが分からない場合は、こちらを参考にGUIやifconfigコマンド等で調べてください。下記の場合、192.168.0.209がRaspberryPiのIPアドレス(Wi-Fi)であることが分かります。Wi-Fiを利用するのにwlan0にIPアドレスが割り当てられていない場合は、こちらを参考にWi-Fiアクセスポイントへの接続設定を行って下さい。Scope:Globalwgetコマンドで適当なURLを打ってみればインターネットに接続できているか確認ができます。[19358]アップデートとvimのインストールを行います。照度計回路の動作を確認する下記Pythonコードを実行して、照度センサーの値が取得できることを確認します。正常に動作すれば、~/shodo-logs/shodo-dynamo.logにJSONが記録され、標準出力にも表示されます。センサーデータをJSON化するため辞書に入れる。今回作成するのは下記にある2つのユーザーおよびそれにひも付くKeyです。fluentdのインストールRaspberryPiにfluentdをインストールします。fluentd本体のインストールプラグインとの適合性を考慮して、0.12系の最新版をインストールします。--no-rdoc本プラグインのGitHubリポジトリDynamoDBプラグインのソース修正デフォルトのままではリージョンが[us-east-1]になっていますので、[ap-northeast-1]に書き換えます。プラグインのバージョンが下記のパスと異なる場合は、ファイル名をTABキーで補完してください。"ap-northeast-1"インストールの確認バージョンは若干異なるかもしれません。2]で作成した「dynamo-full」ユーザーのKeyを使用します。**********************の部分を書き換えて下さい。1s</match>テスト[error]の行がないか確認します。20284正常に実行されているかどうかは/fluent/fluent.logを確認します。VISでグラフ表示するブラウザはChrome(Win/Mac)またはSafari(Mac)をお使い下さい。アクセスし、「新規登録」をクリックします。VIS公式マニュアルの3~4章を参照。2]で作成した「dynamo-read」ユーザーのKeyを使用します。試してみる[レンジ設定]を[手動]に変更して0~1000くらいに設定するとグラフが見やすくなります。下記のようなことを試してみましょう。自動実行設定RaspberryPi電源投入時に各種処理を自動実行させるようにします。自動実行の手段はいくつかありますが、/etc/rc.localにスクリプトを記述する方法が一番手軽で確実です。今回は/etc/rc.localには親スクリプト1つだけを登録し、親スクリプトに子スクリプトを記述します。0子スクリプトfluentd起動RaspberryPiは内部クロックのバッテリバックアップをもっておらず、起動都度NTPで時刻合わせを行っています。fluentd起動時に時刻が合っていないとDynamoDBプラグイン読込みでエラーが発生するため、30~60秒程度待ってから起動するとよいでしょう。3Gドングルを利用する場合は、スリープ時間を少し長めにとった方が確実です。&親スクリプトへの記述SORACOM自動接続は、必要な人のみ記述して下さい。10sを挿入してみましょう。VISのグラフが表示されることを確かめましょう。表示されない場合は、DynamoDBのテーブル更新状況や各種ログを調べてデバッグします。シャットダウンのための物理スイッチを作ってPCレス運用ができるようにしましょう。今回は、物理スイッチはパーツリストに入れていませんでしたので、ジャンパワイヤで代用します。物理スイッチを購入するのであれば、ブレッドボードに挿さる6mm程度のタクトスイッチを選べばよいでしょう。23(16番ピン)、GND(14番ピン等)にそれぞれジャンパワイヤを繋ぎ、下図の通り、タクトスイッチの代わりにオス-オスのジャンパワイヤで短絡できるようにします。Pythonコードコードを実行した後に、ジャンパワイヤで4秒以上短絡させてみましょう。!と表示された後にシャットダウンされるはずです。8]で作成した/fluent/start.shを修正します。VISのグラフが表示されること、短絡でシャットダウンが実行されることを確かめましょう。正常に動作していることが確認できたら本コンテンツは終了です。大学との企業連携の取り組みとして、IoT.kyotoが講義を行うことになりました。GPSマルチユニットを使用して、温度・湿度の可視化を実現します。「お問い合わせ」フォームより、お気軽にご連絡ください。