SenseCAP & Node-RED を使用して Power BI に接続
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Node-RED を介して SenseCAP を Power BI に接続
SenseCAP K1100 - センサープロトタイプキットは、Seeed Studio が LoRa® 通信技術とエッジインテリジェンス製品のエッセンスを凝縮し、LoRa® および IoT アプリケーションの最も簡単な展開と習得を可能にするものです。

産業用センサーへのアップグレード可能
SenseCAP S2110 コントローラー と S2100 データロガー を使用することで、Grove を簡単に LoRaWAN® センサーに変えることができます。Seeed はプロトタイピングを支援するだけでなく、SenseCAP シリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
IP66 ハウジング、Bluetooth 設定、グローバル LoRaWAN® ネットワークとの互換性、内蔵 19 Ah バッテリー、そして強力な APP サポートにより、SenseCAP S210x は産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして 8-in-1 気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新の SenseCAP S210x をお試しください。
SenseCAP 産業用センサー | |||
S2100 データロガー | S2101 空気温度 & 湿度 | S2102 光強度 | S2103 空気温度 & 湿度 & CO2 |
S2104 土壌水分 & 温度 | S2105 土壌水分 & 温度 & EC | S2110 LoRaWAN® コントローラー | S2120 8-in-1 気象ステーション |
Power BI
Power BI と Azure Synapse Analytics や Azure Data Lake Storage を含む Azure 分析サービスを組み合わせることで、データ資産全体を接続して分析できます。ペタバイト規模のデータを分析し、高度な AI 機能を活用し、追加のデータ保護を適用し、組織全体でインサイトをより簡単に共有することが可能です。
このチュートリアルでは、Node-RED を使用して SenseCAP のセンサーデータを Power BI にインポートし、より詳細なデータ処理を行う方法を案内します。

事前準備
このチュートリアルを完了するには、以下が必要です:
- Node-RED をインストールしていない、または Node-RED が何か分からない場合は、Node-RED & SenseCAP チュートリアルを参照してください。
- Power BI アカウント。Power BI アカウントをお持ちでない場合は、無料の Power BI Pro トライアルにサインアップしてください。
- 以下のいずれかの Wiki を参考にして、データを SenseCAP にアップロード済みであること。
MQTT ノードの作成
ステップ 1. Node-RED を起動する
ターミナルで node-red
コマンドを入力して Node-RED を起動し、ブラウザを開いてアドレスバーに http://localhost:1880 を入力して Node-RED のエディタにアクセスします。
ステップ 2. MQTT ノードを作成する
Network -> mqtt in ノードを使用し、前回のチュートリアルで説明した SenseCAP API の形式に従って mqtt を設定します。
サーバー: openstream.api.sensecap.seeed.cc
ポート: 1883
プロトコル: MQTT V3.1.1
クライアント ID: フォーマットは
org-<Organization ID>-<Random ID>
<Organization ID>
: 組織 ID。これは SenseCAP API を取得する で取得済みです。<Random ID>
: ランダムに生成された数字または小文字の英字を使用します。
トピック形式:
/device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>
OrgID | 組織 ID。これは SenseCAP API を取得する際に取得済みです。 |
DevEUI | センサー機器の一意の識別子。この情報は Grove - Wio E5 の背面のステッカーや SenseCAP コンソールデバイスで確認できます。 |
Channel | センサーが接続されているデバイスの物理インターフェース。K1100 キットの場合、デフォルト値は 1 です。 |
Reserved | 予約フィールド。 |
MeasurementID | 測定値 ID。この ID は SenseCAP ドキュメント の Measurement IDs セクションで確認できます。 |
mqtt in ノードは単一のセンサーの値のみを送信することを推奨します。複数のセンサーの値を同時に送信するとデータの混乱を引き起こす可能性があります。

ステップ 3. MQTT ノードを検証する
設定が完了したら、右上の Deploy ボタンをクリックして設定が成功したか確認します。正しく入力されていれば、Connected という単語が表示されます。

関数ノードの設定
Power BI にデータを報告するには特定のデータ形式に従う必要があるため、データ形式を処理するための関数ノードを追加する必要があります。

左側の関数バーから関数ノードをドラッグし、ダブルクリックして編集ページに入り、次にコードを On Message にコピーします。

{
var payload = msg.payload;
var topic = msg.topic;
var strs = topic.split("/");
var length = strs.length
if (length >= 2) {
var measurementId = strs[length - 1]
var body = {}
var value = payload.value
if (measurementId == 4100) {
body.co2 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4103) {
body.soilmoisture = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4150) {
body.accelX = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4151) {
body.accelY = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4152) {
body.accelZ = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4192) {
body.soundintensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4193) {
body.lightIntensity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4195) {
body.tvoc = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4097) {
body.airtemperature = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4098) {
body.airhumidity = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4175) {
body.AIdetection_1 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4176) {
body.AIdetection_2 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4177) {
body.AIdetection_3 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4178) {
body.AIdetection_4 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4179) {
body.AIdetection_5 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4180) {
body.AIdetection_6 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4181) {
body.AIdetection_7 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4182) {
body.AIdetection_8 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4183) {
body.AIdetection_9 = value
body.timestamp = msg.payload.timestamp
} else if (measurementId == 4184) {
body.AIdetection_10 = value
body.timestamp = msg.payload.timestamp
}
msg.payload = body;
}
return msg;
}
:::Tip 上記のコードはすべてのセンサーに共通しており、すべてを関数ノードに貼り付けるか、使用しているセンサーの一部を選択して使用することができます。 プログラム内のセンサー名は、後で Power BI で設定するデータストリーム名と一致する必要があることに注意してください。例えば、上記のプログラムでは光センサーの値の名前は lightIntensity です。 :::
Power BI データセットの作成
ステップ 1. Power BI アカウントにサインインします。
ステップ 2. ワークスペースを作成します。
Workspaces を選択し、次に Create a workspace を選択します。

ワークスペース作成ページで、ワークスペース名として In-store analytics - checkout を入力します。Save を選択します。

ステップ 3. ストリーミングデータセットを作成します。
ワークスペースページで、+ New > Streaming dataset を選択します。

新しいストリーミングデータセットページで、API を選択し、次に Next を選択します。

データセット名として Light-Sensor を入力します。
以下の表に基づいてストリームからの Light 値を入力します:
値の名前 | 値のタイプ |
---|---|
Timestamp | DataTime |
lightIntensity | Number |
値の名前は Node RED の関数プログラムの名前と同じである必要があります。

これでストリーミングデータセットが作成されました。ここで取得した Push URL をメモしてください。次のステップで使用します。

HTTP リクエストノードの設定
左側のストレージバーから http request を追加し、ダブルクリックして設定ページに入り、http request ノードを編集するために編集ボタンをクリックします。

前のセクションで取得した URL を HTTP リクエストページの URL にコピーしてください。
メソッドを POST に変更し、保存します。

デプロイとデータの観察
ステップ 1. デプロイ
すべてのノードを接続し、Deploy ボタンをクリックします。すべてが正しく設定されている場合、mqtt in ノードが接続されていることを確認できます。
データのログ情報を確認したい場合は、関数ノードの後にデバッグノードを追加できます。

Wio Terminal が電源を入れて動作を開始し、データを SenseCAP PaaS サーバーに送信し始めると、Node-RED のデバッグログでデータを確認できます。
ステップ 2. Power BI ダッシュボードの設定
Workspaces > In-store analytics - checkout を選択します。
+ New > Dashboard を選択します。

ダッシュボード名として Store analytics を入力し、Create を選択します。
折れ線グラフの追加
Wio Terminal の内蔵センサーからの Light 値を表示する折れ線グラフタイルを追加します。以下の表の情報を使用してタイルを作成します。各タイルを追加するには、Edit > Add a tile を選択することから始めます。

Custom Streaming Data を選択し、次に Next を選択します。

横軸にタイムスタンプを表示し、縦軸にデータ値を表示するように設定します。

データストリームが転送を開始すると、ダッシュボードに折れ線グラフとして表示されます。
必要に応じて、さらにグラフィックやデータ分析を追加することもできます。

技術サポートと製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご提供しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルをご用意しています。
声明
- LoRa® マークは、Semtech Corporation またはその子会社の商標です。
- LoRaWAN® は、LoRa Alliance® からのライセンスに基づいて使用されるマークです。