温度を公開する - 仮想IoTハードウェアとラズベリーパイ
このレッスンのこの部分では、ラズベリーパイまたは仮想IoTデバイスによ って検出された温度値をMQTT経由で公開し、後でGDDを計算するために使用できるようにします。
温度を公開する
温度が読み取られたら、それをMQTT経由で「サーバー」コードに公開し、その値を読み取り、GDD計算に使用できるように保存します。
タスク - 温度を公開する
デバイスをプログラムして温度データを公開します。
-
temperature-sensor
アプリプロジェクトがまだ開いていない場合は開きます -
レッスン4で行った手順を繰り返してMQTTに接続し、テレメトリを送信します。同じ公開Mosquittoブローカーを使用します。
その手順は次のとおりです:
-
MQTT pipパッケージを追加する
-
MQTTブローカーに接続するコードを追加する
-
テレメトリを公開するコードを追加する
⚠️ 必要に応じて、レッスン4のMQTTに接続するための指示およびテレメトリを送信す るための指示を参照してください。
-
-
client_name
がこのプロジェクトの名前を反映していることを確認します:client_name = id + 'temperature_sensor_client'
-
テレメトリについては、光の値を送信する代わりに、DHTセンサーから読み取った温度値を
temperature
というプロパティでJSONドキュメントに送信します:_, temp = sensor.read()
telemetry = json.dumps({'temperature' : temp}) -
温度値は頻繁に読み取る必要はありません - 短時間で大きく変わることはないので、
time.sleep
を10分に設定します:time.sleep(10 * 60);
💁
sleep
関数は秒単位で時間を取るので、値を計算結果として渡すと読みやすくなります。1分は60秒なので、10 x (1分の60秒)で10分の遅延になります。 -
前の課題のコードを実行したのと同じ方法でコードを実行します。仮想IoTデバイスを使用している場合は、CounterFitアプリが実行されており、湿度および温度センサーが正しいピンに作成されていることを確認します。
pi@raspberrypi:~/temperature-sensor $ python3 app.py
MQTT connected!
Sending telemetry {"temperature": 25}
Sending telemetry {"temperature": 25}
💁 このコードはcode-publish-temperature/virtual-deviceフォルダーまたはcode-publish-temperature/piフォルダーにあります。
😀 デバイスからテレメトリとして温度を正常に公開しました。