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

土壌水分を測定する - 仮想IoTハードウェア

このレッスンのこの部分では、仮想IoTデバイスに容量性土壌水分センサーを追加し、値を読み取ります。

仮想ハードウェア

仮想IoTデバイスは、シミュレートされたGrove容量性土壌水分センサーを使用します。これにより、このラボは物理的なGrove容量性土壌水分センサーを使用するRaspberry Piと同じになります。

物理的なIoTデバイスでは、土壌水分センサーは土壌の静電容量を検出することで土壌水分を測定する容量性センサーです。土壌水分が変化すると、この特性も変化します。土壌水分が増加すると、電圧が低下します。

これはアナログセンサーであり、シミュレートされた10ビットADCを使用して1〜1,023の値を報告します。

CounterFitに土壌水分センサーを追加する

仮想土壌水分センサーを使用するには、CounterFitアプリに追加する必要があります。

タスク - CounterFitに土壌水分センサーを追加する

CounterFitアプリに土壌水分センサーを追加します。

  1. soil-moisture-sensorというフォルダーにapp.pyという単一のファイルとPython仮想環境を持つ新しいPythonアプリをコンピューターに作成し、CounterFitのpipパッケージを追加します。

    ⚠️ 必要に応じて、レッスン1のCounterFit Pythonプロジェクトの作成と設定に関する指示を参照できます。

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

  3. 土壌水分センサーを作成します:

    1. SensorsペインのCreate sensorボックスで、Sensor typeボックスをドロップダウンし、Soil Moistureを選択します。

    2. UnitsNoUnitsに設定したままにします。

    3. Pin0に設定されていることを確認します。

    4. Addボタンを選択して、Pin 0にSoil Moistureセンサーを作成します。

    土壌水分センサーの設定

    土壌水分センサーが作成され、センサーリストに表示されます。

    作成された土壌水分センサー

土壌水分センサーアプリをプログラムする

土壌水分センサーアプリは、CounterFitセンサーを使用してプログラムできます。

タスク - 土壌水分センサーアプリをプログラムする

土壌水分センサーアプリをプログラムします。

  1. soil-moisture-sensorアプリがVS Codeで開かれていることを確認します。

  2. app.pyファイルを開きます。

  3. アプリをCounterFitに接続するために、以下のコードをapp.pyの先頭に追加します:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
  4. 必要なライブラリをインポートするために、以下のコードをapp.pyファイルに追加します:

    import time
    from counterfit_shims_grove.adc import ADC

    import timeステートメントは、この課題で後で使用するtimeモジュールをインポートします。

    from counterfit_shims_grove.adc import ADCステートメントは、CounterFitセンサーに接続できる仮想アナログ-デジタルコンバーターと対話するためのADCクラスをインポートします。

  5. ADCクラスのインスタンスを作成するために、以下のコードを追加します:

    adc = ADC()
  6. ピン0のこのADCから読み取り、結果をコンソールに書き込む無限ループを追加します。このループは、読み取りの間に10秒間スリープできます。

    while True:
    soil_moisture = adc.read(0)
    print("Soil moisture:", soil_moisture)

    time.sleep(10)
  7. CounterFitアプリから、アプリが読み取る土壌水分センサーの値を変更します。これを行うには、次の2つの方法があります:

    • 土壌水分センサーのValueボックスに数値を入力し、Setボタンを選択します。入力した数値がセンサーによって返される値になります。

    • Randomチェックボックスをオンにし、MinおよびMax値を入力してから、Setボタンを選択します。センサーが値を読み取るたびに、MinMaxの間のランダムな数値が読み取られます。

  8. 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フォルダーにあります。

😀 土壌水分センサープログラムが成功しました!