3.5 KiB
インターネットでナイトライトを操作する - 仮想IoTハードウェアとRaspberry Pi
このレッスンのこの部分では、Raspberry Piまたは仮想IoTデバイスからMQTTブローカーに光レベルのテレメトリを送信します。
テレメトリを送信する
次のステップは、テレメトリを含むJSONドキュメントを作成し、それをMQTTブローカーに送信することです。
タスク
MQTTブローカーにテレメトリを送信します。
-
VS Codeでナイトライトプロジェクトを開きます。
-
仮想IoTデバイスを使用している場合は、ターミナルが仮想環境を実行していることを確認してください。Raspberry Piを使用している場合は、仮想環境を使用しません。
-
app.py
ファイルの先頭に次のインポートを追加します:import json
json
ライブラリは、テレメトリをJSONドキュメントとしてエンコードするために使用されます。 -
client_name
の宣言の後に次のコードを追加します:client_telemetry_topic = id + '/telemetry'
client_telemetry_topic
は、デバイスが光レベルを公開するMQTTトピックです。 -
ファイルの最後にある
while True:
ループの内容を次のコードに置き換えます:while True: light = light_sensor.light telemetry = json.dumps({'light' : light}) print("Sending telemetry ", telemetry) mqtt_client.publish(client_telemetry_topic, telemetry) time.sleep(5)
このコードは、光レベルをJSONドキュメントにパッケージ化し、それをMQTTブローカーに公開します。その後、メッセージ送信頻度を減らすためにスリープします。
-
前の課題のコードを実行したのと同じ方法でコードを実行します。仮想IoTデバイスを使用している場合は、CounterFitアプリが実行されており、光センサーとLEDが正しいピンに作成されていることを確認してください。
(.venv) ➜ nightlight python app.py MQTT connected! Sending telemetry {"light": 0} Sending telemetry {"light": 0}
💁 このコードは code-telemetry/virtual-device フォルダーまたは code-telemetry/pi フォルダーにあります。
😀 デバイスからテレメトリを正常に送信しました。
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確さが含まれる可能性があります。元の言語で記載された原文が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤訳について、当社は一切の責任を負いません。