LoginSignup
9
9

More than 5 years have passed since last update.

PowerApps でセンサーデータの値を取得してみた!(ソースもあるよ!)

Last updated at Posted at 2019-02-17

まずはこちらをご覧ください。

構成図はこちらです!

Untitled (1).png

説明

Raspberry Pi に接続している、BME680というセンサーで、温度、湿度、気圧、空気中のガスを計測することができます。
そのデータをPowerAppsに表示させます。
PowerAppsにて使用可能で、API経由でデータ送信可能なデータソースはSQL Serverといったものが使用可能ですが、Office365のみと考えると実はそう多くなく、今回はAPIやリファレンスが豊富なSharePointのカスタムリストを採用しています。
SharePointはモダンサイトでは2万件以上のレコードは動作に支障をきたすため
特定のレコードを都度更新するという処理にすることで、レコードを増やさないようにしています。
なお、データをため込みたい場合は、Power BIのストリーミングデータセットを使用し、Power BIのレポートで参照しましょう。

注意

今回のデータソースの使い方は、本来の使い方とはかけ離れています。
実際のプロダクトに使用することは絶対におやめください。
また、万一使用したことにより発生したあらゆる事象について、私及び私が所属するすべての組織は一切の責任を負いかねます。
ご了承ください。

作り方

各種センサー及びディスプレイ

Amazonさんで購入しましょう!
* BME680
* SSD1306

SharePoint側

カスタムリストを以下の通り作成します。

列名 種類 用途 備考
Product 1行テキスト レコード検索用名称 要インデックス
Value1 数値 IoT数値データ1(温度)
Value2 数値 IoT数値データ2(湿度)
Value3 数値 IoT数値データ3(気圧)
Value4 数値 IoT数値データ4(ガス)

PowerApps側

データソース接続(IoT_Data)

SharePointで作成したカスタムリストを指定します。

タイマーコントロール

OnTimerStart

OnTimerStart
Refresh(IoT_Data);
ClearCollect(SPSSensor,(LookUp(IoT_Data,Product="PiSensor")))

なお、期間や繰り返し、自動開始などは以下の通りに設定しましょう。
image.png

解説

作成したデータソース「IoT_Data」のデータを取得して
各種ラベルに表示させる用のコレクション「SPSSensor」に
IoT_DataのProduct列「PiSensor」のレコードに格納します。

ラベル

温度表示部分

Text
Concatenate(Text(First(SPSSensor).Value1),"℃")

湿度表示部分

Text
Concatenate(Text(First(SPSSensor).Value2),"%")

気圧表示部分

Text
Concatenate(Text(First(SPSSensor).Value3),"hPa")

ガス(空気質)表示部分

Text
First(SPSSensor).Value4

サンプルアプリ

こちらです!

Raspberry Pi側

Pythonで作成しています!
ソースコードはこちらに格納しています。
こちらです!

各種センサー用のドライバが別途必要ですので、それらをインストールしてくださいね!

Power BI部分

こちらの記事をぜひ参考にしてください!
https://qiita.com/rnakamuramartiny/items/0cd593660f62def90b96

最後に

いかがでしたか?
PowerAppsで、センサーデータの取得
また、逆にセンサー側からPowerAppsをコントロールといった制御も
コーディングなどが必要にはなってきますが
実現することは可能です!
この辺りは、まさにエンジニアの仕事です!
PowerPlatformは、みんなが作り
使いたいけど使えないものはエンジニアがバリバリ作ることで
無限大の表現ができるようになります!
みなさんもぜひ、PowerPlatform、楽しんで使ってみてください!

9
9
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
9
9