Skip to main content
note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Microsoft Azure IoT Centralでの開発

ルールを追加してメールを送信する

IoT Centralのルールは、接続されたデバイスからの監視イベントに基づいてカスタマイズ可能な応答をトリガーするツールです。 例えば、このデモでは、光の強度レベルが50未満の場合にIoT Centralがメールを送信するよう設定できます。

  • STEP 1: Azure IoT Centralの左側のナビゲーションメニューからRulesをクリックします。

  • STEP 2: +NewまたはCreate a ruleをクリックします。

  • STEP 3: ルールの名前を入力します。

  • STEP 4: Device templateの下で、Seeed Wio Terminalを選択します。

pir

  • STEP 5: Conditionsの下で、time aggregationをオンにし、任意のtime windowを選択します。ここでは5分に設定します。

注意: xx分ごとに、ルールは過去xx分間のデータを評価します。

  • STEP 6: Telemetryの下で、任意のテレメトリを選択します。ここではLight intensityを設定します。

  • STEP 7: Aggregationの下で、Averageを選択します。これにより、設定したtime window内の平均値が取得されます。

  • STEP 8: Operatorの下で、任意の条件を選択します。ここではis less than条件を使用します。

  • STEP 9: Valueの下で値を入力します。ここでは50を入力します。

pir

  • STEP 10: Actionsの下で、Emailをクリックします。

  • STEP 11: メールのDisplay nameTo address、およびNoteを入力します。

pir

注意: ここで使用するメールアドレスは、このAzure IoT Centralアプリケーションに追加され、少なくとも一度サインインしている必要があります。

  • Administration > Usersに移動し、Assign userをクリックして、Emailを入力し、Roleを割り当ててSaveをクリックします。

pir

  • STEP 12: Doneをクリックします。

  • STEP 13: 最後にSaveをクリックします。

これで、メールを送信するルールが正常に作成されました。

Microsoft Azure IoT Centralからハードウェアを制御する

Azure IoT Centralでテレメトリデータを表示するだけでなく、それを使用してハードウェアを制御することもできます。このデモでは、Wio Terminalの内蔵ブザーを制御し、ブザーが鳴る時間を指定することができます。

  • STEP 1: Commandタブをクリックします。

  • STEP 2: Duration列の下にある欄にを入力します。

注意: 値はミリ秒単位です。例: 1000 = 1000ms = 1秒

  • STEP 3: Runをクリックすると、指定した時間の間、ブザーからビープ音が聞こえます。

pir

他のセンサーを追加する方法

Wio Terminal に任意のセンサーを追加し、接続されたセンサーからのテレメトリデータを Azure IoT Central に送信することができます。ここでは、Grove - 温度・湿度センサー (DHT11) を Wio Terminal に接続し、温度と湿度のデータを Azure IoT Central に送信してダッシュボードで可視化する方法を説明します!

Microsoft Visual Studio Code のセットアップ

Visual Studio Code のダウンロード、インストール、および設定

Azure IoT Central にテレメトリデータを送信するために Wio Terminal にさらにセンサーを追加したい場合、以前使用した .uf2 ファイルを簡単に使用することはできません。なぜなら、その .uf2 ファイルにはコードがすでにコンパイルされているからです。そのため、デモにさらにコードを追加したい場合は、Microsoft Visual Studio Code という IDE を使用して必要なコードを追加し、最終的にそれを Wio Terminal にアップロードする必要があります。

では、コンピュータに Microsoft Visual Studio Code をインストールする手順を見ていきましょう。

  • STEP 1: code.visualstudio.com にアクセスし、Download をクリックします。

注意: オペレーティングシステムに応じたインストーラーを選択してください。

  • STEP 2: インストールウィザードを進めてインストールを完了します。

  • STEP 3: Visual Studio Code を開きます。

  • STEP 4: 左側のナビゲーションメニューから Extensions をクリックし、検索ボックスに platformIO と入力します。

pir

  • STEP 5: install をクリックします。

pir

Visual Studio Code でのデモ用コード

  • STEP 1: このリンク にアクセスし、SeeedJP/wioterminal-aziot-example リポジトリ 内の利用可能なリリースを見つけます。

  • STEP 2: Latest release に移動し、Assets の下にある Source code (zip) をクリックします。これにより、ソースコードが .zip ファイルとしてダウンロードされます。

  • STEP 3: .zip ファイル を解凍します。

  • STEP 4: Visual Studio Code に戻り、File > Open Folder... に移動します。

  • STEP 5: 先ほど解凍したフォルダを選択し、Select Folder をクリックします。

  • STEP 6: 左側のナビゲーションメニューから wioterminal-aziot-example-0.10 > include > config.h に移動します。

  • STEP 7: config.h を開いたら、"dtmi:seeedkk:wioterminal:wioterminal_aziot_example;5" を探し、"dtmi:local:wioterminal_aziot_example;5" に変更します。

注意: dtmi:local:wioterminal_aziot_example;5 はモデル ID です。

  • STEP 8: 左側のナビゲーションメニューから wioterminal-aziot-example-0.10 > seeedkk-wioterminal-wioterminal_aziot_example.json に移動します。

  • STEP 9: seeedkk-wioterminal-wioterminal_aziot_example.json を開いたら、"dtmi:seeedkk:wioterminal:wioterminal_aziot_example;5" を探し、"dtmi:local:wioterminal_aziot_example;5" に変更します。

注意: seeedkk-wioterminal-wioterminal_aziot_example.json は以前に説明した DTDL モデルです。

現在、このモデルは 加速度、光強度、ボタンカウント データ用に定義されています。ここに 温度と湿度 を追加します。

  • STEP 10: 以下のコードを "contents": [ の下に追加します。
  "contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temp",
"unit": "degreeCelsius",
"displayName": {
"en": "Temperature (C)",
"ja": "温度"
},
"schema": "integer"
},
{
"@type": "Telemetry",
"name": "humi",
"displayName": {
"en": "Humidity (%RH)",
"ja": "湿度"
},
"schema": "integer"
},

注意: ここで、name は後でコード内で特定のテレメトリデータを識別するために使用される名前です。unit はデータに対応する単位、displayName は Azure IoT Central に表示される名前("en" は英語、"ja" は日本語)、schema はデータ型を示します。

  • STEP 11: 左側のナビゲーションメニューから wioterminal-aziot-example-0.10 > platformio.ini に移動します。

  • STEP 12: platformio.ini を開いたら、lib_deps の下に以下を追加します。

lib_deps = 
https://github.com/Seeed-Studio/Grove_Temperature_And_Humidity_Sensor

注意: これは Grove - 温度・湿度センサー (DHT11) 用のライブラリです。

  • STEP 13: 左側のナビゲーションメニューから wioterminal-aziot-example-0.10 > src > main.cpp に移動します。

  • STEP 14: main.cpp を開いたら、#include "CliMode.h" の後に DHT11 ライブラリを追加します。

#include "CliMode.h"
#include "DHT.h"
  • STEP 15: LIS3DHTR AccelSensor; の後に DHT11 の定義と初期化を追加します。
LIS3DHTR<TwoWire> AccelSensor;

#define DHTPIN 0 // DHT センサーの信号ピンを定義
// #define DHTPIN PIN_WIRE_SCL // I2C ポートをデジタルポートとして使用
#define DHTTYPE DHT11 // DHT センサーのタイプを定義
DHT dht(DHTPIN, DHTTYPE); // DHT センサーを初期化

注意: DHT11 センサーは Wio Terminal の両方の Grove ポートに接続できます。デジタルポート を使用する場合、ピンは 0 と定義され、I2C ポート を使用する場合、ピンは PIN_WIRE_SCL と定義されます。ポートの図はこのドキュメントの後半で示されます。

  • STEP 16: SendTelemetry() 関数の下に以下のコードを追加し、テレメトリデータとともに JSON ファイルを解析します。
static az_result SendTelemetry()
{
float accelX;
float accelY;
float accelZ;
AccelSensor.getAcceleration(&accelX, &accelY, &accelZ);

int light;
light = analogRead(WIO_LIGHT) * 100 / 1023;

int temp; // 温度を格納する変数を割り当て
int humi; // 湿度を格納する変数を割り当て
temp = dht.readTemperature(); // 温度を読み取る
humi = dht.readHumidity(); // 湿度を読み取る

char telemetry_topic[128];
if (az_result_failed(az_iot_hub_client_telemetry_get_publish_topic(&HubClient, NULL, telemetry_topic, sizeof(telemetry_topic), NULL)))
{
Log("Failed az_iot_hub_client_telemetry_get_publish_topic" DLM);
return AZ_ERROR_NOT_SUPPORTED;
}

az_json_writer json_builder;
char telemetry_payload[200];
AZ_RETURN_IF_FAILED(az_json_writer_init(&json_builder, AZ_SPAN_FROM_BUFFER(telemetry_payload), NULL));
AZ_RETURN_IF_FAILED(az_json_writer_append_begin_object(&json_builder));
AZ_RETURN_IF_FAILED(az_json_writer_append_property_name(&json_builder, AZ_SPAN_LITERAL_FROM_STR("temp")));
AZ_RETURN_IF_FAILED(az_json_writer_append_int32(&json_builder, temp));
AZ_RETURN_IF_FAILED(az_json_writer_append_property_name(&json_builder, AZ_SPAN_LITERAL_FROM_STR("humi")));
AZ_RETURN_IF_FAILED(az_json_writer_append_int32(&json_builder, humi));
  • STEP 17: ntp.begin の行の後に以下のコードを追加して、DHT11センサーを起動します。
dht.begin(); // DHTセンサーを起動

これで、このデモのすべてのコードが完成しました。

  • STEP 18: 左側のナビゲーションメニューから PlatformIO アイコン をクリックし、Build をクリックします。

pir

以下のメッセージが表示された場合、コードのコンパイルに成功しています。

================================== [SUCCESS] Took 30.56 seconds ==================================

Microsoft Azure IoT Central のセットアップ

次に、Wio Terminal からのデータを Azure IoT Central Dashboard 上で可視化するために、カスタムデバイステンプレートを作成する必要があります。

新しいデバイステンプレートの作成

  • STEP 1: Azure IoT Central にアクセスし、左側のナビゲーションメニューから Device templates をクリックします。

  • STEP 2: + New をクリックし、IoT device を選択して Next:Customize をクリックします。

  • STEP 3: Device template name ボックスに名前を入力し、Next:Review をクリックします。

  • STEP 4: Create をクリックします。

カスタムデバイスモデルのインポート

  • STEP 1: Import a model をクリックします。

  • STEP 2: 以前使用した wioterminal-aziot-example-0.10 フォルダに移動し、seeedkk-wioterminal-wioterminal_aziot_example.json ファイルを見つけてクリックします。

  • STEP 3: Open をクリックします。

  • STEP 4: 左側のメニューから Views をクリックし、Generate default views をクリックします。

  • STEP 5: Generate default dashboard view(s) をクリックします。

  • STEP 6: 左側のメニューから Overview に移動し、ダッシュボードを好みに応じてカスタマイズします。

注意: このドキュメント内で、ダッシュボードのカスタマイズ方法については以前に説明しています。

  • STEP 7: 以下の設定を行います。
タイル名タイルサイズタイルの可視化
Light Intensity2 x 2折れ線グラフ
Light Intensity1 x 1最後に記録された値
Temperature (C), Humidity (%RH)2 x 2折れ線グラフ
Temperature (C)1 x 1最後に記録された値
Humidity (%RH)1 x 1最後に記録された値
Left button1 x 1KPI
Middle button1 x 1KPI
Right button1 x 1KPI

pir

  • STEP 8: SavePublish をクリックします。

Wio Terminal のセットアップ

ハードウェアのセットアップ

  • Grove - Temperature and Humidity Sensor (DHT11) を Wio Terminal の Grove Digital Port に接続します。

pir

ソフトウェアのセットアップ

コードを Wio Terminal にアップロード

次に、Wio Terminal にコードをアップロードして、Azure IoT Central にテレメトリデータを送信します。

  • STEP 1: VS Code に戻り、PlatformIO アイコン をクリックして Upload をクリックします。

pir

Wi-Fi と Azure IoT の設定

次に、Wi-Fi と Azure IoT の接続を設定します。これは以前と同じ手順です。

  • STEP 1: 3つのボタンを押しながら Wio Terminal をオンにして、設定モードに入ります。

pir

  • STEP 2: PUTTY などのシリアルコンソールアプリケーションを開きます。

  • STEP 3: 正しいシリアル COM ポート を入力し、9600 をボーレートとして設定して Wio Terminal に接続します。

pir

  • STEP 4: キーボードで ENTER を押し、シリアルターミナルで help と入力して設定の使用方法を確認します。

注意: Wi-Fi SSID とパスワードは以前の設定で保存されているため、再入力する必要はありません。

  • STEP 5: Azure IoT Central で以前作成したアプリケーションにアクセスし、Azure IoT の接続情報を設定します。

  • STEP 6: 左側のナビゲーションメニューから Administration > Device Connection に移動し、ID scopenotepad にコピーします。

  • STEP 7: SAS-IoT-Devices をクリックし、primary keynotepad にコピーします。

  • STEP 8: 先ほど開いたシリアルターミナルに移動し、以下を入力します。

set_az_iotc your_ID_scope your_primary_key your_device_name

注意: 各フィールドの間にスペースを1つ追加してください。また、device name は任意で決めることができます。

  • STEP 9: スイッチを ON の位置からさらに下げてリリースすることで、Wio Terminal をリセットします。

pir

これで、Wio Terminal の LCD に Wi-Fi 接続中、次に Azure IoT Hub 接続中と表示され、その後 Azure IoT Central に送信されるテレメトリデータが表示されます。

Azure IoT Central での可視化

Azure IoT Central に戻り、左側のナビゲーションメニューから Devices をクリックし、自分の Device name をクリックします。

pir

これで、Wio Terminal からのすべてのセンサーデータを Microsoft Azure IoT Central Dashboard 上で可視化できるようになります!

Loading Comments...