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

リレーを制御する - Wio Terminal

このレッスンのこの部分では、土壌水分センサーに加えてWio Terminalにリレーを追加し、土壌水分レベルに基づいてそれを制御します。

ハードウェア

Wio Terminalにはリレーが必要です。

使用するリレーはGroveリレーで、通常は開いているリレー(つまり、リレーに信号が送られないときは出力回路が開いている、または切断されている)で、最大250Vおよび10Aの出力回路を処理できます。

これはデジタルアクチュエータなので、Wio Terminalのデジタルピンに接続します。アナログ/デジタルポートの組み合わせはすでに土壌水分センサーで使用されているため、他のポートに接続します。これはI2Cとデジタルポートの組み合わせです。

リレーを接続する

GroveリレーはWio Terminalのデジタルポートに接続できます。

タスク

リレーを接続します。

A grove relay

  1. Groveケーブルの一端をリレーのソケットに挿入します。これは一方向にしか挿入できません。

  2. Wio Terminalをコンピュータまたは他の電源から切断した状態で、Groveケーブルの他端をWio Terminalの画面を見たときの左側のGroveソケットに接続します。土壌水分センサーは右側のソケットに接続したままにします。

The grove relay connected to the left-hand socket, and the soil moisture sensor connected to the right hand socket

  1. 前のレッスンから土壌水分センサーが土壌に挿入されていない場合は、土壌に挿入します。

リレーをプログラムする

Wio Terminalは、接続されたリレーを使用するようにプログラムできます。

タスク

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

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

  2. このアクチュエータにはライブラリがありません - これは高または低の信号で制御されるデジタルアクチュエータです。オンにするには、ピンに高信号(3.3V)を送信し、オフにするには低信号(0V)を送信します。これは、組み込みのArduino digitalWrite関数を使用して行うことができます。まず、setup関数の最後に次のコードを追加して、リレーに電圧を送信するための出力ピンとしてI2C/デジタルポートの組み合わせを設定します:

    pinMode(PIN_WIRE_SCL, OUTPUT);

    PIN_WIRE_SCLはI2C/デジタルポートの組み合わせのポート番号です。

  3. リレーが動作しているかどうかをテストするために、loop関数の最後のdelayの下に次のコードを追加します:

    digitalWrite(PIN_WIRE_SCL, HIGH);
    delay(500);
    digitalWrite(PIN_WIRE_SCL, LOW);

    このコードは、リレーが接続されているピンに高信号を書き込んでリレーをオンにし、500ms(0.5秒)待ってから低信号を書き込んでリレーをオフにします。

  4. コードをビルドしてWio Terminalにアップロードします。

  5. アップロードが完了すると、リレーは10秒ごとにオンとオフを繰り返し、オンとオフの間に0.5秒の遅延があります。リレーがオンになるとクリック音がし、オフになると再びクリック音がします。リレーがオンのときにGroveボードのLEDが点灯し、オフのときに消灯します。

    The relay turning on and off

土壌水分からリレーを制御する

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

タスク

リレーを制御します。

  1. リレーをテストするために追加した3行のコードを削除します。次のコードに置き換えます:

    if (soil_moisture > 450)
    {
    Serial.println("土壌水分が低すぎるため、リレーをオンにします。");
    digitalWrite(PIN_WIRE_SCL, HIGH);
    }
    else
    {
    Serial.println("土壌水分は正常です。リレーをオフにします。");
    digitalWrite(PIN_WIRE_SCL, LOW);
    }

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

    💁 容量性土壌水分センサーは、土壌水分レベルが低いほど土壌に水分が多く、逆に高いほど水分が少ないことを覚えておいてください。

  2. コードをビルドしてWio Terminalにアップロードします。

  3. シリアルモニターを介してデバイスを監視します。土壌水分レベルに応じてリレーがオンまたはオフになるのがわかります。乾燥した土壌で試し、水を追加します。

    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/wio-terminalフォルダーにあります。

😀 土壌水分センサーがリレーを制御するプログラムは成功しました!