Node-REDを介してS210XセンサーをMicrosoft Azure IoT Centralに接続する
SenseCAP S210Xは、ワイヤレスLoRaWAN®センサーのシリーズです。都市部では2km、見通しの良い環境では10kmの伝送範囲をカバーしながら、伝送プロセス中の消費電力を低く抑えることができます。最大10年間の使用をサポートする交換可能なバッテリーと、産業用IP66エンクロージャーを備えています。-40 ~ 85℃の動作温度をサポートし、過酷な環境での展開が可能です。SenseCAP S210XはLoRaWAN® V1.0.3プロトコルに対応し、LoRaWAN®ゲートウェイと連携できます。ユーザーはデバイスを設置し、QRコードを使用してバインドし、ネットワークを設定することで、HTTPやMQTTなどの人気のあるIoTプロトコルをサポートするSenseCAPポータルからデータを確認できます。

このチュートリアルでは、Node-REDを介してS210XシリーズセンサーをMicrosoft Azure IoT Centralに接続する方法を紹介します。
SenseCAP & Node-RED
この章は、シリーズの最初の章として、Node-redのインストールと使用方法、およびSenseCAP APIを呼び出してNode-REDに接続する方法について説明します。
この章は、ユーザーがSenseCAPプラットフォームからのデータを他の様々なPaaSプラットフォームに接続し、より詳細なデータ処理を行うことを容易にするためのものです。
Node-RED
Node-REDは、ハードウェアデバイス、API、オンラインサービスを新しく興味深い方法で結び付けるためのプログラミングツールです。パレット内の幅広いノードを使用してフローを簡単に結び付けることができるブラウザベースのエディターを提供し、ワンクリックでランタイムにデプロイできます。

Node.Jsのインストール
Node-REDをローカルにインストールするには、サポートされているバージョンのNode.jsが必要です。
Node-REDは現在Node 14.x LTSを推奨しています。
npmを使用したNode-REDのインストール
Node-REDをインストールするには、node.jsに付属するnpmコマンドを使用できます:
sudo npm install -g --unsafe-perm node-red
Windowsを使用している場合は、コマンドを「sudo」で開始しないでください。
このコマンドは、Node-REDを依存関係と共にグローバルモジュールとしてインストールします。 グローバルモジュールとしてインストールされると、このコマンドを使用してターミナルでNode-REDを開始できます。
node-red

その後、ブラウザで http://localhost:1880 にアクセスすることで、Node-REDエディタにアクセスできます。
SenseCAP APIの取得
このセクションに進む前に、SenseCAP コンソールでS210xデバイスをバインドしていることを確認してください。
SenseCAP コンソールにログインします。ダッシュボード上部のユーザー名の右側にあるドロップダウンバーで、Organization Informationを見つけることができます。これを選択してOrganization IDを取得してください。

次に、SenseCAP用のAPIキーも取得する必要があります。ダッシュボードの左側にあるSecurity -> Access API keysをクリックしてください。その後、Access Keyを作成します。

作成したAPI IDをクリックすると、Access API keysが取得できます。これとOrganization IDをコピーしてください。後の手順で使用します。

Node-RED設定

- ステップ 1. 新しいmqtt-brokerノードを追加
mqtt inノードをドラッグし、ダブルクリックして設定ページに入り、Add new mqtt-brokerの後にある編集ボタンをクリックします。

mqtt-brokerの設定は以下のように入力する必要があります:
サーバー:openstream.api.sensecap.seeed.cc
Port:1883
Protocol: MQTT V3.1.1
クライアント ID フォーマット:org-"組織 ID" "ランダム ID"
Organization ID: あなたのOrganization informationから取得
Random ID: 自分で生成したランダムな数字と小文字を使用。
例:org-43243***23-test

次に、SecurityオプションフィールドにUsernameとPasswordを入力します:
Username: org-"Organization ID"
Organization ID: あなたの組織ID。これは以前に取得しました
Password: 以前に取得したAccess API keysを入力します。

Topicを追加
Topic: 特定の形式でトピックを設定することで、受信するデバイスの種類とデータタイプが決まります。
トピック形式: /device_sensor_data/"OrgID"/"DeviceEUI"/"Channel"/"Reserved"/"MeasurementID"
| OrgID | 組織情報でIDを確認できます |
|---|---|
| DeviceEUI | デバイスの基本プロパティまたはデバイスラベルでEUIを確認できます |
| Channel | センサーに接続するデバイス上の物理インターフェース、デフォルト:1 |
| Reserved | 予約フィールド |
| MeasurementID | measurement_list |
"+"は、このフィールドにフィルター条件がなく、すべてにマッチできることを示します。"/+/+/+/+"は、すべての"DeviceEUI"、"Channel"、"Reserved"、"MeasurementID"をリッスンすることを意味します
例:/device_sensor_data/424988****44/2CF7F***0002/+/+/+
このトピックは、現在のデバイスのすべてのリモートセンシングデータを受信することを意味します。

- ステップ2. デバッグノードを追加
debugノードをドラッグし、mqtt-inノードに接続してから、Deployをクリックします
デプロイが成功すると、mqtt inビルディングブロックの下に"Connected"が表示されます。データレポート間隔は接続したセンサーによって決まります。データを受信すると、右側のデバッグウィンドウに生データが表示されます。
SenseCAP & Node-RED & Azure IoT Central
Microsoft Azure IoT Centralは、IoTアセットを大規模に接続、監視、管理することを容易にする、完全に管理されたグローバルIoT SaaS(サービスとしてのソフトウェア)ソリューションです。高度にセキュアで、ビジネスの成長に合わせてスケールし、投資の再現性を確保し、既存のビジネスアプリケーションと統合します。また、ビジネスアプリケーションとIoTデータの間のギャップを埋めます。最後に、デバイスの再構成と更新のための集中管理を提供します。
この章の内容では、前述のNode-REDを引き続き使用し、Node-REDの使用を通じてMicrosoft Azure IoT CentralでS210Xセンサースイートの管理を促進します。
Microsoft Azure IoT Central設定
- ステップ1. Azure IoT Centralにログイン。
Azure IoT Centralウェブサイトにアクセスし、左側のナビゲーションメニューからBuildをクリックし、Custom appsをクリックします。
- ステップ2. Application nameを入力し、Pricing planを選択します。アプリケーション名を入力すると、Application URLが自動的に作成されます。

注意:Azure IoT Centralの新規ユーザーの場合、料金が発生しないため、Freeを選択することをお勧めします。

- ステップ3. Createをクリックして新しいアプリケーションを作成します。これでAzure IoT Centralのセットアップが正常に完了しました!

- ステップ4. デバイステンプレートを作成
左側のメニューバーのDevice templatesをクリックして、新しいデバイステンプレートを作成してください。

デバイステンプレートに名前を付けて、createをクリックします


- ステップ5. デバイスを作成
左側のメニューバーのDevices -> S2103をクリックします。

デバイスを作成すると、Deviceの下に作成したばかりのデバイスが表示されます。デバイスをタップして、左上のConnectボタンをクリックしてください。
この情報をメモしてください。次のステップで使用します。

Node-RED設定
- ステップ1. Azure IoT Palettsをインストール
右上のメニューバーをクリックし、Settingsを選択します
Paletts - Installで"node-red-contrib-azure-iot-central"を検索してインストールします
- ステップ2. Azure IoT Centralノードを設定
左側のfunctionバーからAzure IoT Centralノードをドラッグし、ダブルクリックして設定ページに入り、編集ボタンをクリックしてAzure IoT Centralノードを編集します

設定は以下のように入力する必要があります:
Transport: MQTT
Authentication: SAS
Scope ID/Device ID/Primary Key: 以前に取得しました

- ステップ3. functionノードを設定
Azure IoT Centralへのデータレポートは特定のデータ形式に従う必要があるため、データ形式を処理するためのfunctionビルディングブロックを追加する必要があります。
左側のfunctionバーからfunctionノードをドラッグし、ダブルクリックして編集ページに入り、On Messageにコードをコピーします。

Code:
{
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 == 4097) {
body.AirTemperature = value
} else if (measurementId == 4098) {
body.AirHumidity = value
} else if (measurementId == 4100) {
body.CO2 = value
}
msg.payload = body;
}
return msg;
}
データのログ情報を確認したい場合は、functionノードの後にdebugノードを追加できます。

S210Xセンサーが電源を入れて動作を開始し、SenseCAP PaaSサーバーにデータを送信し始めると、Azure IoT Centralでデータを確認できます。
データ表示
Raw data列に表示されるデータはUnmodeled dataに配置されているため、上記のコードに従ってデータを解析する必要があります。
必要な機能を追加し、saveをクリックしてpublishします


これで、センサーによってアップロードされた生データを明確に確認できます。
データダッシュボードページを充実させたい場合は、Overviewに表示されるように設定することもできます。
左側のナビゲーションメニューでOverviewをクリックします。

starts with devicesドロップダウンメニューを展開し、視覚化したいテレメトリを選択します。

Add tileをクリックすると、Azure IoT Central Dashboardにタイルが追加されます。

それでは次に、お好みに合わせてセンサーデータ監視ダッシュボードをカスタマイズしましょう!
変更を完了したら、saveをクリックしてpublishします


カスタムダッシュボードを通じてセンサーデータを表示できるようになりました!
