メインコンテンツまでスキップ

温度を公開する - 仮想IoTハードウェアとラズベリーパイ

このレッスンのこの部分では、ラズベリーパイまたは仮想IoTデバイスによって検出された温度値をMQTT経由で公開し、後でGDDを計算するために使用できるようにします。

温度を公開する

温度が読み取られたら、それをMQTT経由で「サーバー」コードに公開し、その値を読み取り、GDD計算に使用できるように保存します。

タスク - 温度を公開する

デバイスをプログラムして温度データを公開します。

  1. temperature-sensorアプリプロジェクトがまだ開いていない場合は開きます

  2. レッスン4で行った手順を繰り返してMQTTに接続し、テレメトリを送信します。同じ公開Mosquittoブローカーを使用します。

    その手順は次のとおりです:

    • MQTT pipパッケージを追加する

    • MQTTブローカーに接続するコードを追加する

    • テレメトリを公開するコードを追加する

    ⚠️ 必要に応じて、レッスン4のMQTTに接続するための指示およびテレメトリを送信するための指示を参照してください。

  3. client_nameがこのプロジェクトの名前を反映していることを確認します:

    client_name = id + 'temperature_sensor_client'
  4. テレメトリについては、光の値を送信する代わりに、DHTセンサーから読み取った温度値をtemperatureというプロパティでJSONドキュメントに送信します:

    _, temp = sensor.read()
    telemetry = json.dumps({'temperature' : temp})
  5. 温度値は頻繁に読み取る必要はありません - 短時間で大きく変わることはないので、time.sleepを10分に設定します:

    time.sleep(10 * 60);

    💁 sleep関数は秒単位で時間を取るので、値を計算結果として渡すと読みやすくなります。1分は60秒なので、10 x (1分の60秒)で10分の遅延になります。

  6. 前の課題のコードを実行したのと同じ方法でコードを実行します。仮想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フォルダーにあります。

😀 デバイスからテレメトリとして温度を正常に公開しました。