土壌水分を測定する - 仮想IoTハードウェア
このレッスンのこの部分では、仮想IoTデバイスに容量性土壌水分センサーを追加し、値を読み取ります。
仮想ハードウェア
仮想IoTデバイスは、シミュレートされたGrove容量性土壌水分センサーを使用します。これにより、このラボは物理的なGrove容量 性土壌水分センサーを使用するRaspberry Piと同じになります。
物理的なIoTデバイスでは、土壌水分センサーは土壌の静電容量を検出することで土壌水分を測定する容量性センサーです。土壌水分が変化すると、この特性も変化します。土壌水分が増加すると、電圧が低下します。
これはアナログセンサーであり、シミュレートされた10ビットADCを使用して1〜1,023の値を報告します。
CounterFitに土壌水分センサーを追加する
仮想土壌水分センサーを使用するには、CounterFitアプリに追加する必要があります。
タスク - CounterFitに土壌水分センサーを追加する
CounterFitアプリに土壌水分センサーを追加します。
-
soil-moisture-sensor
というフォルダーにapp.py
という単一のファイルとPython仮想環境を持つ新しいPythonアプリをコンピューターに作成し、CounterFitのpipパッケージを追加します。⚠️ 必要に応じて、レッスン1のCounterFit Pythonプロジェクトの作成と設定に関する指示を参照できます。
-
CounterFitウェブアプリが実行されていることを確認します。
-
土壌水分センサーを作成します:
-
SensorsペインのCreate sensorボックスで、Sensor typeボックスをドロップダウンし、Soil Moistureを選択します。
-
UnitsをNoUnitsに設定したままにします。
-
Pinが0に設定されていることを確認します。
-
Addボタンを選択して、Pin 0にSoil Moistureセンサーを作成します。
土壌水分センサーが作成され、センサーリストに表示されます。
-
土壌水分センサーアプリをプログラムする
土壌水分センサーアプリは、CounterFitセンサーを使用してプログラムできます。
タスク - 土壌水分センサーアプリをプログラムする
土壌水分センサーアプリをプログラムします。
-
soil-moisture-sensor
アプリがVS Codeで開かれていることを確認します。 -
app.py
ファイルを開きます。 -
アプリをCounterFitに接続するために、以下のコードを
app.py
の先頭に追加します:from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000) -
必要なライブラリをインポートするために、以下のコードを
app.py
ファイルに追加します:import time
from counterfit_shims_grove.adc import ADCimport time
ステートメントは、この課題で後で使用するtime
モジュールをインポートします。from counterfit_shims_grove.adc import ADC
ステートメントは、CounterFitセンサーに接続できる仮想アナログ-デジタルコンバーターと対話するためのADC
クラスをインポートします。 -
ADC
クラスのインスタンスを作成するために、以下のコードを追加します:adc = ADC()
-
ピン0のこのADCから読み取り、結果をコンソールに書き込む無限ループを追加します。このループは、読み取りの間に10秒間スリープできます。
while True:
soil_moisture = adc.read(0)
print("Soil moisture:", soil_moisture)
time.sleep(10) -
CounterFitアプリから、アプリが読み取る土壌水分センサーの値を変更します。これを行うには、次の2つの方法があります:
-
土壌水分センサーのValueボックスに数値を入力し、Setボタンを選択します。入力した数値がセンサーによって返される値になります。
-
Randomチェックボックスをオンにし、MinおよびMax値を入力してから、Setボタンを選択します。センサーが値を読み取るたびに、MinとMaxの間のランダムな数値が読み取られます。
-
-
Pythonアプリを実行します。コンソールに土壌水分の測定値が表示されます。ValueまたはRandom設定を変更して、値の変化を確認します。
(.venv) ➜ soil-moisture-sensor $ python app.py
Soil moisture: 615
Soil moisture: 612
Soil moisture: 498
Soil moisture: 493
Soil moisture: 490
Soil Moisture: 388
💁 このコードはcode/virtual-deviceフォルダーにあります。
😀 土壌水分センサープログラムが成功しました!