3.8 KiB
インターネットでナイトライトを操作する - Wio Terminal
このレッスンでは、Wio TerminalからMQTTブローカーに光レベルのテレメトリを送信します。
JSON Arduinoライブラリをインストールする
MQTTでメッセージを送信する一般的な方法はJSONを使用することです。Arduinoには、JSONドキュメントの読み書きを簡単にするためのライブラリがあります。
タスク
Arduino JSONライブラリをインストールします。
-
VS Codeでナイトライトプロジェクトを開きます。
-
platformio.ini
ファイルのlib_deps
リストに以下の行を追加します:bblanchon/ArduinoJson @ 6.17.3
これにより、Arduino JSONライブラリArduinoJsonがインポートされます。
テレメトリを送信する
次のステップは、テレメトリを含むJSONドキュメントを作成し、それをMQTTブローカーに送信することです。
タスク - テレメトリを送信する
MQTTブローカーにテレメトリを送信します。
-
MQTTブローカーのテレメトリトピック名を定義するために、以下のコードを
config.h
ファイルの末尾に追加します:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
は、デバイスが光レベルを送信するトピックです。 -
main.cpp
ファイルを開きます。 -
ファイルの先頭に以下の
#include
ディレクティブを追加します:#include <ArduinoJSON.h>
-
loop
関数内のdelay
の直前に以下のコードを追加します:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
このコードは光レベルを読み取り、ArduinoJsonを使用してこのレベルを含むJSONドキュメントを作成します。その後、これを文字列にシリアライズし、MQTTクライアントによってテレメトリMQTTトピックに公開されます。
-
コードをWio Terminalにアップロードし、シリアルモニターを使用して光レベルがMQTTブローカーに送信されていることを確認します。
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 このコードはcode-telemetry/wio-terminalフォルダーにあります。
😀 デバイスからテレメトリを正常に送信しました。
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確さが含まれる可能性があることをご承知おきください。原文(元の言語で記載された文書)が信頼できる情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。