Milesight LoRaWANゲートウェイをMicrosoft Azureに統合する方法

説明

Microsoft Azure は、Microsoft が提供するクラウドサービスおよびリソースにアクセスし、管理するためのクラウドコンピューティングプラットフォームおよびオンラインポータルです。これらのサービスおよびリソースには、お客様の要件に応じて、データの保存や変換などが含まれます。これらのリソースおよびサービスにアクセスするには、アクティブなインターネット接続と Azure ポータルへの接続機能があれば十分です。

Azureプラットフォームは、HTTPsとMQTTによるデータの転送をサポートしています。本記事では、MQTTを使用してMilesight LoRaWANゲートウェイをMicrosoft Azureに接続する方法について説明します。

注:Milesightゲートウェイは、MQTT経由でのAzureへのアップリンクの送信のみをサポートしており、ダウンリンクはサポートされていません。

必要条件

1. Milesight LoRaWAN ゲートウェイ(UG56/UG6x/UG8x)

2. Microsoft アカウント

3. WindowsにインストールされたVisual Studio Codeアプリ(オプション)

構成

ステップ1. Azureアカウントの申請とポータルへのログイン

Microsoftアカウントを作成し、以下のURLからAzureにログインします:https://portal.Azure.com

ステップ2. ログイン後のIoT Hubの作成

Azureのホームページから、+ リソースの作成ボタンを選択し、マーケットプレースの検索フィールドにIoT Hubと入力します。検索結果からIoT Hubを選択し、Createを選択します。

サブスクリプション、リージョンを入力し、IoT Hub名を設定します。

ステップ3. デバイスの作成

デバイスIDを入力します。このIDは、MQTT通信でゲートウェイの「Client ID」フィールドで使用されます。この例では、名前はUG65です

saveをクリックすると、Microsoft Azure側の設定は完了です。

ポータル設定の詳細については、このページも参照してください

ステップ4. ゲートウェイ用のSASトークンを作成

Azureでは、CLI拡張コマンドまたはVisual Studioコードを使用してSASトークンを生成できます。詳細はこちらをクリックしてください。

CLIコマンドで生成

1.こちらをクリックしてAzureコンソールに移動し、ストレージを作成してBash環境を選択します

2. SASトークンを生成するには、以下のコマンドを入力します。

az iot hub generate-sas-token --connection-string 'HostName=myhub.azure-devices.net;DeviceId=mydevice;SharedAccessKeyName=iothubowner;SharedAccessKey=12345' --du 31536000
HTML

注:

  • 接続文字列を、お客様のデバイスのプライマリ接続文字列に置き換えてください。

  • 「–du 31536000」は有効なトークンの有効期間(秒)を意味します。必要に応じて期間を調整してください。より高度なコマンドパラメータについては、こちらをクリックしてください。

結果の生成:

Visual Studio Code を使用して生成

Visual Studio Code をダウンロードし、Windows PC にインストールします。Visual Studio Code で Azure IoT Hub を検索してインストールします。

Microsoft アカウントを使用してログインすると、ここに IoT Hub が表示されます。

Ctrl+Shift+P キーを押して、「generate SAS Token for device」を選択します。

この例ではデバイス UG65 を選択します。同じポータルで別のデバイスを作成すると、ここにも表示されます。

有効期限を設定します。この例では 300 です

SAS トークンが取得できます

注:SASトークンの有効期限を延長するには、1年またはそれ以上の期間として31,536,000秒を設定できます。そうすれば、更新について心配する必要がなくなります。

ステップ5. Milesight GatewayでMQTTの詳細を設定

Milesight Gatewayのウェブインターフェースにログインし Network Server > Applications ページでアプリケーションを作成します。

アプリケーション名と説明を入力し、Saveをクリックします

先ほど作成したアプリケーションを編集し、TypeリストからMQTTを選択します。

詳細は、デバイス接続文字列に記載されています。

Broker Address: HostName 

Broker Port: 8883

ClientID: Device ID

Username: HostName/{Device ID}

Password: SAS Token (Step4で生成)

TLS: 有効にして、CA署名付きサーバー証明書として選択

Publish topic: devices/{Device ID}/messages/events/

MQTTの詳細定義についての詳細は、このURLをクリックしてください。

注意: Client IDは、Azureで構成する各ゲートウェイに対して一意である必要があります。

ステップ6. デバイスのステータスを確認

MQTT構成でトークンをコピーし、保存をクリックすると、MQTT接続ステータスをここで確認できます。

また、Visual Studio CodeでもGet Device Infoでデバイスステータス情報を取得できます。

ステップ7. センサーデータの確認

DeviceページでLoRaWANセンサーを追加し、DevEUI、AppKeyを入力し、先ほど作成したアプリケーションを選択します。

Save&Applyをクリックし、センサーの電源を入れます。センサーがオンラインになると、Packetsページにデータアップリンクが表示されます。

こちらをクリックしてAzureコンソールに移動し、ストレージを作成してBash環境を選択します。

以下はログ出力の例です。

naytelwmykt@Azure:~$ az extension add –name azure-iot

naytelwmykt@Azure:~$ az iot hub monitor-events –hub-name ug65 –output table

イベントモニターを開始します。停止するにはCtrl-Cを使用してください…

このようなイベントが取得できます。これは、ゲートウェイからのアップリンクデータです。

event: origin: ug65 

payload: “{“applicationID”:”1″,”applicationName”:”app”,”data”:”AwAABAEA”,”devEUI”:”24E124C0002A1234″,”deviceName”:”n1″,”fCnt”:5,”fPort”:85,”rxInfo”:[{“altitude”:0,”latitude”:0,”loRaSNR”:8.5,”longitude”:0,”mac”:”24e124fffef0395d”,”name”:”local_gateway”,”rssi”:-28,”time”:”2020-06-03T08:14:23.868355Z”}],”time”:”2020-06-03T08:14:23.868355Z”,”txInfo”:{“adr”:true,”codeRate”:”4/5″,”dataRate”:{“bandwidth”:125,”modulation”:”LORA”,”spreadFactor”:7},”frequency”:868300000}}”

ここでのデータはまだオリジナルのままなので、理解できるようにデコーダーを追加するには、「Milesight Gatewayでペイロードコーデックを使用する方法」を参照してください。

追加後、次のアップリンクでVisual Studio Codeにデータが印刷されるのが確認できます。

event: origin: ug65 payload:{"battery": 92,"temperature": 30.8,"humidity": 50.5,"activity": 73,"illumination": 28,"infrared": 20,"infrared_and_visible": 121,"co2": 1255,"tvoc": 7,"pressure": 1004.7}
HTML

注意:他社製のセンサーを設定する場合は、デコーダスクリプト(JavaScript)を入手するためにサポートに連絡する必要があります。その後、そこで設定してください。

Azure CLIに関するその他のコマンドについては、このページを参照してください。

トラブルシューティング

MQTT接続ステータスがConnect Failedの場合、ゲートウェイのネットワーク設定を確認し、MQTT Brokerのアドレスに正しくpingできることを確認する必要があります。その後、MQTT構成の詳細を確認し、入力した値がルールに従っていることを確認してください。

MQTTが接続されているときにデータ出力が見つからない場合は、ゲートウェイのシステムログ内の「lora-app-server.log」を確認し、このようなログが表示されているかどうかを確認してみてください。Maintenance >Logページからダウンロードできます。

これは、ゲートウェイがMQTT経由でAzureにデータを転送したことを示すログです。

time=”2020-06-03T16:15:26+08:00″ level=info msg=”urhandler/mqtt: publishing message” deveui=24E124C0002A1234 qos=0 topic=devices/ug85/messages/events/

また、Deliver Ticket を使用して、より詳細な確認のための完全な説明とログパッケージを添付することもできます。

関連記事

組み込みネットワーク・サーバー

ソリューション / IoT サポート


Milesight製品

ウェーブクレスト株式会社が運営するMilesight製品特設サイトです

居住者の健康を確保

お知らせ

  1. 2025-4-3

    ピープル・センシング 駆動型スマートビルディング

    People Sensing Insights を通じてビルインテリジェンスに革命をもたらします。…
  2. 2023-7-21

    LoRaWANの説明: 理論から実践へのガイド

    この包括的なビデオでは、LoRaWANを深く掘り下げ、その仕組み、利点、アプリケーションについて説明…
  3. 2023-4-6

    センシング・インサイト Milesight リブランディングのお知らせ

    https://youtu.be/r40DK40DjIY …
ページ上部へ戻る