土壌水分を測定する - Raspberry Pi
このレッスンのこの部分では、Raspberry Piに容量性土壌水分センサーを追加し、値を読み取ります。
ハードウェア
Raspberry Piには容量性土壌水分センサーが必要です。
使用するセンサーは容量性 土壌水分センサーで、土壌の静電容量を検出することで土壌水分を測定します。土壌水分が変化するとこの特性も変化します。土壌水分が増加すると、電圧が低下します。
これはアナログセンサーなので、アナログピンを使用し、PiのGrove Base Hatの10ビットADCを使用して電圧を1-1,023のデジタル信号に変換します。これがGPIOピンを介してI2CでPiに送信されます。
土壌水分センサーを接続する
Grove土壌水分センサーをRaspberry Piに接続できます。
タスク - 土壌水分センサーを接続する
土壌水分センサーを接続します。
-
Groveケーブルの一端を土壌水分センサーのソケットに挿入します。これは一方向にしか挿入できません。
-
Raspberry Piの電源を切った状態で、Groveケーブルの他端をPiに接続されたGrove Base HatのA0とマークされたアナログソケットに接続します。このソケットはGPIOピンの隣のソケット列の右から2番目です。
- 土壌水分センサーを土壌に挿入します。センサーには「最高位置ライン」があり、これはセンサーの白い線です。このラインまでセンサーを挿入しますが、ラインを超えないようにします。
土壌水分センサーをプログラムする
Raspberry Piは、接続された土壌水分センサーを使用するようにプログラムできます。
タスク - 土壌水分センサーをプログラムする
デバイスをプログラムします。
-
Piの電源を入れ、起動を待ちます。
-
Pi上で直接、またはRemote SSH拡張機能を使用してVS Codeを起動します。
⚠️ 必要に応じて、nightlight - レッスン1でのVS Codeのセットアップと起動の手順を参照できます。
-
ターミナルから、
pi
ユーザーのホームディレクトリにsoil-moisture-sensor
という新しいフォルダーを作成します。このフォルダーにapp.py
というファイルを作成します。 -
VS Codeでこのフォルダーを開きます。
-
必要なライブラリをインポートするために、次のコードを
app.py
ファイルに追加します:import time
from grove.adc import ADCimport time
ステートメントは、この課題で後で使用するtime
モジュールをインポートします。from grove.adc import ADC
ステートメントは、Grove PythonライブラリからADCをインポートします。このライブラリには、Piベースハットのアナログ-デジタルコンバータと対話し、アナログセンサーから電圧を読み取るためのコードが含まれています。 -
次に、
ADC
クラスのインスタンスを作成するために、以下のコードを追加します:adc = ADC()
-
A0ピンのADCから読み取り、結果をコンソールに書き込む無限ループを追加します。このループは読み取りの間に10秒間スリープできます。
while True:
soil_moisture = adc.read(0)
print("Soil moisture:", soil_moisture)
time.sleep(10) -
Pythonアプリを実行します。コンソールに土壌水分の測定値が表示されます。土壌に水を追加するか、センサーを土壌から取り外して、値の変化を確認します。
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py
Soil moisture: 615
Soil moisture: 612
Soil moisture: 498
Soil moisture: 493
Soil moisture: 490
Soil Moisture: 388上記の例の出力では、水が追加されると電圧が低下するのがわかります。
💁 このコードはcode/piフォルダーにあります。
😀 土壌水分センサープログラムが成功しました!