Raspberry Pi 2からAzure Event HubsへAdafruit 10DOF IMUデータを送信(Windows 10 IoT Core)
このチュートリアルでは、Adafruit 10DOF IMU(L3GD20H、LSM303、BMP180)をWindows 10 IoT Core搭載Raspberry Pi 2に接続し、Windows UniversalアプリでセンサーデータをAzure Event HubsとStream Analyticsにストリーミングする手順を解説します。
前提条件
- ハードウェア: Windows 10 IoT Core搭載Raspberry Pi 2。セットアップ詳細は Windows on Devices 参照
- センサー: Adafruit 10DOF IMU(L3GD20H + LSM303 + BMP180)
開発環境
- Windows 10 Public Preview上のVisual Studio 2015 RCとWindows IoT Core SDK。公式ガイドに従ってSDKインストールとBlinkyサンプル作成:
- Adafruit配線APIはGitHubで公開。このプロジェクト用にC#へ移植した以下のリポジトリを使用:
- Event Hubsへのパブリッシュには、 ConnectTheDots サンプルコードを統合
Azure Event Hubs & Stream Analyticsセットアップ
- Azure Service Bus Event Hubを作成
- イベントリプレイ用Azure Storageアカウントをプロビジョニング
- Event Hubから読み取り、Storageテーブルに書き込むAzure Stream Analyticsジョブを構成
- 出力設定時、
DisplayNameをPARTITION KEY、CurrentDateTimeをROW KEYとして使用
- 出力設定時、
詳細については、以前の Galileo Event Hubsブログ を参照。
Universalアプリの構築
- Visual Studio 2015 RCでBlank Universal App(C#)を作成
- Windows IoT Extension SDK参照を追加し、I2Cクラスにアクセス
- 10DOF IMU用のC++配線コードをC#に移植(上記GitHubリンク参照)
- ConnectTheDotsリポジトリから
ConnectTheDotsHelper.csとAppSettings.csをインクルードし、Event Hub通信を処理 AppSettings.csで、プレースホルダー値を自分のEvent Hub接続文字列、ハブ名、その他必須パラメータに置換- プロジェクトをビルドし、リモートデバッガー経由でPiにデプロイ、またはスタートアップアプリとして設定(Hello Worldデプロイガイド参照)
- Service Bus Explorer で着信イベントを監視
- Stream Analytics処理後、Azure Storage Explorer で結果テーブルを確認
視覚的結果
以下のスクリーンショットは、Service Bus Explorerで取得したイベントと、Azure Storageで処理されたテーブルを示しています。
回路図
ソース:Windows 10 IoT Core on Raspberry Pi 2 – Adafruit Sensor data
製造プロセス
- Raspberry Pi & HDC2010:I2C温湿度センサー完全セットアップガイド
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry Piマルチチャネルデータロガー構築 – パート1:要件 & アーキテクチャ
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- センサーデータをRaspberry Piに統合:実践ガイド
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- Raspberry Piでセンサーとアクチュエータを制御:加速度計、サーボ、データストリーミング
- IoTデータが精密農業を推進:収量向上とコスト削減