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

リレーを制御する - 仮想IoTハードウェア

このレッスンのこの部分では、土壌湿度センサーに加えて仮想IoTデバイスにリレーを追加し、土壌湿度レベルに基づいてそれを制御します。

仮想ハードウェア

仮想IoTデバイスは、シミュレートされたGroveリレーを使用します。これにより、このラボは物理的なGroveリレーを使用するRaspberry Piと同じになります。

物理的なIoTデバイスでは、リレーは通常開いているリレー(つまり、リレーに信号が送信されていないときに出力回路が開いている、または切断されていることを意味します)になります。このようなリレーは、最大250Vおよび10Aの出力回路を処理できます。

CounterFitにリレーを追加する

仮想リレーを使用するには、CounterFitアプリに追加する必要があります

タスク

CounterFitアプリにリレーを追加します。

  1. VS Codeで前回のレッスンのsoil-moisture-sensorプロジェクトを開いていない場合は開きます。このプロジェクトに追加します。

  2. CounterFit Webアプリが実行されていることを確認します

  3. リレーを作成します:

    1. ActuatorsペインのCreate actuatorボックスで、Actuator typeボックスをドロップダウンしてRelayを選択します。

    2. Pin5に設定します

    3. Addボタンを選択して、Pin 5にリレーを作成します

    リレー設定

    リレーが作成され、アクチュエータリストに表示されます。

    作成されたリレー

リレーをプログラムする

土壌湿度センサーアプリは、仮想リレーを使用するようにプログラムできます。

タスク

仮想デバイスをプログラムします。

  1. VS Codeで前回のレッスンのsoil-moisture-sensorプロジェクトを開いていない場合は開きます。このプロジェクトに追加します。

  2. 既存のインポートの下に次のコードをapp.pyファイルに追加します:

    from counterfit_shims_grove.grove_relay import GroveRelay

    このステートメントは、仮想Groveリレーと対話するためにGrove PythonシムライブラリからGroveRelayをインポートします。

  3. ADCクラスの宣言の下に次のコードを追加して、GroveRelayインスタンスを作成します:

    relay = GroveRelay(5)

    これは、リレーを接続したピン5を使用してリレーを作成します。

  4. リレーが動作していることをテストするために、次のコードをwhile True:ループに追加します:

    relay.on()
    time.sleep(.5)
    relay.off()

    このコードはリレーをオンにし、0.5秒待ってからリレーをオフにします。

  5. Pythonアプリを実行します。リレーは10秒ごとにオンとオフを繰り返し、オンとオフの間に0.5秒の遅延があります。CounterFitアプリで仮想リレーがオンとオフになるのがわかります。

    仮想リレーのオンとオフ

土壌湿度からリレーを制御する

リレーが動作するようになったので、土壌湿度の読み取りに応じて制御できます。

タスク

リレーを制御します。

  1. リレーをテストするために追加した3行のコードを削除します。その代わりに次のコードを追加します:

    if soil_moisture > 450:
    print("土壌湿度が低すぎます。リレーをオンにします。")
    relay.on()
    else:
    print("土壌湿度は正常です。リレーをオフにします。")
    relay.off()

    このコードは、土壌湿度センサーからの土壌湿度レベルをチェックします。450を超えるとリレーをオンにし、450を下回るとリレーをオフにします。

    💁 容量性土壌湿度センサーは、土壌湿度レベルが低いほど土壌に水分が多く、逆もまた然りであることを覚えておいてください。

  2. Pythonアプリを実行します。土壌湿度レベルに応じてリレーがオンまたはオフになります。土壌湿度センサーのValueまたはRandom設定を変更して、値の変化を確認します。

    Soil Moisture: 638
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 452
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 347
    Soil Moisture is ok, turning relay off.

💁 このコードはcode-relay/virtual-deviceフォルダーにあります。

😀 あなたの仮想土壌湿度センサーがリレーを制御するプログラムは成功しました!