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

ナイトライトを作る - 仮想IoTハードウェア

このレッスンのこの部分では、仮想IoTデバイスにLEDを追加し、それを使用してナイトライトを作成します。

仮想ハードウェア

ナイトライトには、CounterFitアプリで作成された1つのアクチュエーターが必要です。

アクチュエーターはLEDです。物理的なIoTデバイスでは、これは電流が流れると光を放つ発光ダイオードです。これはオンとオフの2つの状態を持つデジタルアクチュエーターです。1の値を送るとLEDが点灯し、0の値を送ると消灯します。

ナイトライトのロジックは擬似コードで次のようになります:

Check the light level.
If the light is less than 300
Turn the LED on
Otherwise
Turn the LED off

CounterFitにアクチュエーターを追加する

仮想LEDを使用するには、CounterFitアプリに追加する必要があります。

タスク - CounterFitにアクチュエーターを追加する

CounterFitアプリにLEDを追加します。

  1. この課題の前の部分からCounterFit Webアプリが実行されていることを確認します。実行されていない場合は、起動して光センサーを再追加します。

  2. LEDを作成します:

    1. アクチュエーターペインのアクチュエーターを作成ボックスで、アクチュエータータイプボックスをドロップダウンし、LEDを選択します。

    2. ピン5に設定します。

    3. 追加ボタンを選択して、ピン5にLEDを作成します。

    LEDの設定

    LEDが作成され、アクチュエーターリストに表示されます。

    作成されたLED

    LEDが作成されたら、ピッカーを使用して色を変更できます。選択した後、設定ボタンを選択して色を変更します。

ナイトライトをプログラムする

ナイトライトは、CounterFit光センサーとLEDを使用してプログラムできます。

タスク - ナイトライトをプログラムする

ナイトライトをプログラムします。

  1. この課題の前の部分で作成したVS Codeのナイトライトプロジェクトを開きます。必要に応じて、仮想環境を使用して実行されていることを確認するためにターミナルを終了して再作成します。

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

  3. 必要なライブラリをインポートするために、次のコードをapp.pyファイルに追加します。これは他のimport行の下に追加する必要があります。

    from counterfit_shims_grove.grove_led import GroveLed

    from counterfit_shims_grove.grove_led import GroveLedステートメントは、CounterFit GroveシムPythonライブラリからGroveLedをインポートします。このライブラリには、CounterFitアプリで作成されたLEDと対話するためのコードが含まれています。

  4. light_sensor宣言の後に次のコードを追加して、LEDを管理するクラスのインスタンスを作成します:

    led = GroveLed(5)

    led = GroveLed(5)行は、ピン5に接続されたGroveLedクラスのインスタンスを作成します。これは、LEDが接続されているCounterFit Groveピンです。

  5. whileループ内で、time.sleepの前にチェックを追加して、光レベルを確認し、LEDをオンまたはオフにします:

    if light < 300:
    led.on()
    else:
    led.off()

    このコードはlight値をチェックします。これが300未満の場合、GroveLedクラスのonメソッドを呼び出し、LEDをオンにするデジタル値1を送信します。光の値が300以上の場合、offメソッドを呼び出し、LEDをオフにするデジタル値0を送信します。

    💁 このコードは、print('Light level:', light)行と同じレベルにインデントして、whileループ内に配置する必要があります!

  6. VS Codeターミナルから、次のコマンドを実行してPythonアプリを実行します:

    python3 app.py

    光の値がコンソールに出力されます。

    (.venv) ➜  GroveTest python3 app.py 
    Light level: 143
    Light level: 244
    Light level: 246
    Light level: 253
  7. またはランダム設定を変更して、光レベルを300以上および以下に変化させます。LEDがオンおよびオフになります。

光レベルが変化するにつれてオンおよびオフになるCounterFitアプリのLED

💁 このコードはcode-actuator/virtual-deviceフォルダーにあります。

😀 ナイトライトプログラムは成功しました!