リレーを制御する - 仮想IoTハードウェア
このレッスンのこの部分では、土壌湿度センサーに加えて仮想IoTデバイスにリレーを追加し、土壌湿度レベルに基づいてそれを制御します。
仮想ハードウェア
仮想IoTデバイスは、シミュレートされたGroveリレーを使用します。これにより、このラボは物理的なGrove リレーを使用するRaspberry Piと同じになります。
物理的なIoTデバイスでは、リレーは通常開いているリレー(つまり、リレーに信号が送信されていないときに出力回路が開いている、または切断されていることを意味します)になります。このようなリレーは、最大250Vおよび10Aの出力回路を処理できます。
CounterFitにリレーを追加する
仮想リレーを使用するには、CounterFitアプリに追加する必要があります
タスク
CounterFitアプリにリレーを追加します。
-
VS Codeで前回のレッスンの
soil-moisture-sensor
プロジェクトを開いていない場合は開きます。このプロジェクトに追加します。 -
CounterFit Webアプリが実行されていることを確認します
-
リレーを作成します:
-
ActuatorsペインのCreate actuatorボックスで、Actuator typeボックスをドロップダウンしてRelayを選択します。
-
Pinを5に設定します
-
Addボタンを選択して、Pin 5にリレーを作成します
リレーが作成され、アクチュエータリストに表示されます。
-
リレーをプログラムする
土壌湿度センサーアプリは、仮想リレーを使用するようにプログラムできます。
タスク
仮想デバイスをプログラムします。
-
VS Codeで前回のレッスンの
soil-moisture-sensor
プロジェクトを開いていない場合は開きます。このプロジェクトに追加します。 -
既存のインポートの下に次のコードを
app.py
ファイルに追加します:from counterfit_shims_grove.grove_relay import GroveRelay
このステートメントは、仮想Groveリレーと対話するためにGrove Pythonシムライブラリから
GroveRelay
をインポートします。 -
ADC
クラスの宣言の下に次のコードを追加して、GroveRelay
インスタンスを作成します:relay = GroveRelay(5)
これは、リレーを接続したピン5を使用してリレーを作成します。
-
リレーが動作していることをテストするために、次のコードを
while True:
ループに追加します:relay.on()
time.sleep(.5)
relay.off()このコードはリレーをオンにし、0.5秒待ってからリレーをオフにします。
-
Pythonアプリを実行します。リレーは10秒ごとにオンとオフを繰り返し、オンとオフの間に0.5秒の遅延があります。CounterFitアプリで仮想リレーがオンとオフになるのがわかります。
土壌湿度からリレーを制御する
リレーが動作するようになったので、土壌湿度の読み取りに応じて制御できます。
タスク
リレーを制御します。
-
リレーをテストするために追加した3行のコードを削除します。その代わりに次のコードを追加します:
if soil_moisture > 450:
print("土壌湿度が低すぎます。リレーをオンにします。")
relay.on()
else:
print("土壌湿度は正常です。リレーをオフにします。")
relay.off()このコードは、土壌湿度センサーからの土壌湿度レベルをチェックします。450を超えるとリレーをオンにし、450を下回 るとリレーをオフにします。
💁 容量性土壌湿度センサーは、土壌湿度レベルが低いほど土壌に水分が多く、逆もまた然りであることを覚えておいてください。
-
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フォルダーにあります。
😀 あなたの仮想土壌湿度センサーがリレーを制御するプログラムは成功しました!