この文書は 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を選択します。
- 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を入力します。
-
STEP 10: Actionsの下で、Emailをクリックします。
-
STEP 11: メールのDisplay name、To address、およびNoteを入力します。
注意: ここで使用するメールアドレスは、このAzure IoT Centralアプリケーションに追加され、少なくとも一度サインインしている必要があります。
Administration > Users
に移動し、Assign userをクリックして、Emailを入力し、Roleを割り当ててSaveをクリックします。
-
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をクリックすると、指定した時間の間、ブザーからビープ音が聞こえます。
他のセンサーを追加する方法
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 と入力します。
- STEP 5: install をクリックします。
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 をクリックします。
以下のメッセージが表示された場合、コードのコンパイルに成功しています。
================================== [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 Intensity | 2 x 2 | 折れ線グラフ |
Light Intensity | 1 x 1 | 最後に記録された値 |
Temperature (C), Humidity (%RH) | 2 x 2 | 折れ線グラフ |
Temperature (C) | 1 x 1 | 最後に記録された値 |
Humidity (%RH) | 1 x 1 | 最後に記録された値 |
Left button | 1 x 1 | KPI |
Middle button | 1 x 1 | KPI |
Right button | 1 x 1 | KPI |
- STEP 8: Save と Publish をクリックします。
Wio Terminal のセットアップ
ハードウェアのセットアップ
- Grove - Temperature and Humidity Sensor (DHT11) を Wio Terminal の Grove Digital Port に接続します。
ソフトウェアのセットアップ
コードを Wio Terminal にアップロード
次に、Wio Terminal にコードをアップロードして、Azure IoT Central にテレメトリデータを送信します。
- STEP 1: VS Code に戻り、PlatformIO アイコン をクリックして Upload をクリックします。
Wi-Fi と Azure IoT の設定
次に、Wi-Fi と Azure IoT の接続を設定します。これは以前と同じ手順です。
- STEP 1: 3つのボタンを押しながら Wio Terminal をオンにして、設定モードに入ります。
-
STEP 2: PUTTY などのシリアルコンソールアプリケーションを開きます。
-
STEP 3: 正しいシリアル COM ポート を入力し、9600 をボーレートとして設定して Wio Terminal に接続します。
- STEP 4: キーボードで ENTER を押し、シリアルターミナルで help と入力して設定の使用方法を確認します。
注意: Wi-Fi SSID とパスワードは以前の設定で保存されているため、再入力する必要はありません。
-
STEP 5: Azure IoT Central で以前作成したアプリケーションにアクセスし、Azure IoT の接続情報を設定します。
-
STEP 6: 左側のナビゲーションメニューから
Administration > Device Connection
に移動し、ID scope を notepad にコピーします。 -
STEP 7: SAS-IoT-Devices をクリックし、primary key を notepad にコピーします。
-
STEP 8: 先ほど開いたシリアルターミナルに移動し、以下を入力します。
set_az_iotc your_ID_scope your_primary_key your_device_name
注意: 各フィールドの間にスペースを1つ追加してください。また、device name
は任意で決めることができます。
- STEP 9: スイッチを ON の位置からさらに下げてリリースすることで、Wio Terminal をリセットします。
これで、Wio Terminal の LCD に Wi-Fi 接続中、次に Azure IoT Hub 接続中と表示され、その後 Azure IoT Central に送信されるテレメトリデータが表示されます。
Azure IoT Central での可視化
Azure IoT Central に戻り、左側のナビゲーションメニューから Devices をクリックし、自分の Device name をクリックします。
これで、Wio Terminal からのすべてのセンサーデータを Microsoft Azure IoT Central Dashboard 上で可視化できるようになります!