まずはこちらをご覧ください。
フゥハハー!!
— りなたむ@steed400 (@R_t_A_n_M) 2019年2月14日
私は#sharepoint をデータソースにすることで#PowerApps にセンサーデータを表示することに成功した!!#IoT #office365 #o365jp #IoT365#raspberrypi #Python pic.twitter.com/Q648pTuEuC
構成図はこちらです!
説明
Raspberry Pi に接続している、BME680というセンサーで、温度、湿度、気圧、空気中のガスを計測することができます。
そのデータをPowerAppsに表示させます。
PowerAppsにて使用可能で、API経由でデータ送信可能なデータソースはSQL Serverといったものが使用可能ですが、Office365のみと考えると実はそう多くなく、今回はAPIやリファレンスが豊富なSharePointのカスタムリストを採用しています。
SharePointはモダンサイトでは2万件以上のレコードは動作に支障をきたすため
特定のレコードを都度更新するという処理にすることで、レコードを増やさないようにしています。
なお、データをため込みたい場合は、Power BIのストリーミングデータセットを使用し、Power BIのレポートで参照しましょう。
注意
今回のデータソースの使い方は、本来の使い方とはかけ離れています。
実際のプロダクトに使用することは絶対におやめください。
また、万一使用したことにより発生したあらゆる事象について、私及び私が所属するすべての組織は一切の責任を負いかねます。
ご了承ください。
作り方
各種センサー及びディスプレイ
Amazonさんで購入しましょう!
SharePoint側
カスタムリストを以下の通り作成します。
列名 | 種類 | 用途 | 備考 |
---|---|---|---|
Product | 1行テキスト | レコード検索用名称 | 要インデックス |
Value1 | 数値 | IoT数値データ1(温度) | |
Value2 | 数値 | IoT数値データ2(湿度) | |
Value3 | 数値 | IoT数値データ3(気圧) | |
Value4 | 数値 | IoT数値データ4(ガス) |
PowerApps側
データソース接続(IoT_Data)
SharePointで作成したカスタムリストを指定します。
タイマーコントロール
OnTimerStart
Refresh(IoT_Data);
ClearCollect(SPSSensor,(LookUp(IoT_Data,Product="PiSensor")))
なお、期間や繰り返し、自動開始などは以下の通りに設定しましょう。
解説
作成したデータソース「IoT_Data」のデータを取得して
各種ラベルに表示させる用のコレクション「SPSSensor」に
IoT_DataのProduct列「PiSensor」のレコードに格納します。
ラベル
温度表示部分
Concatenate(Text(First(SPSSensor).Value1),"℃")
湿度表示部分
Concatenate(Text(First(SPSSensor).Value2),"%")
気圧表示部分
Concatenate(Text(First(SPSSensor).Value3),"hPa")
ガス(空気質)表示部分
First(SPSSensor).Value4
サンプルアプリ
Raspberry Pi側
Pythonで作成しています!
ソースコードはこちらに格納しています。
こちらです!
各種センサー用のドライバが別途必要ですので、それらをインストールしてくださいね!
Power BI部分
こちらの記事をぜひ参考にしてください!
https://qiita.com/rnakamuramartiny/items/0cd593660f62def90b96
最後に
いかがでしたか?
PowerAppsで、センサーデータの取得
また、逆にセンサー側からPowerAppsをコントロールといった制御も
コーディングなどが必要にはなってきますが
実現することは可能です!
この辺りは、まさにエンジニアの仕事です!
PowerPlatformは、みんなが作り
使いたいけど使えないものはエンジニアがバリバリ作ることで
無限大の表現ができるようになります!
みなさんもぜひ、PowerPlatform、楽しんで使ってみてください!