ナイトライトを作る - 仮想IoTハードウェア
このレッスンのこの部分では、仮想IoTデバイスに光センサーを追加します。
仮想ハードウェア
ナイトライトには、CounterFitアプリで作成された1つのセンサーが必要です。
センサーは光センサーです。物理的なIoTデバイスでは、光を電気 信号に変換するフォトダイオードになります。光センサーはアナログセンサーで、標準的な測定単位(ルクスなど)に対応しない相対的な光量を示す整数値を送信します。
CounterFitにセンサーを追加する
仮想光センサーを使用するには、CounterFitアプリに追加する必要があります。
タスク - CounterFitにセンサーを追加する
CounterFitアプリに光センサーを追加します。
-
前の部分の課題からCounterFitウェブアプリが実行されていることを確認します。実行されていない場合は、起動します。
-
光センサーを作成します:
-
SensorsペインのCreate sensorボックスで、Sensor typeボックスをドロップダウンしてLightを選択します。
-
UnitsはNoUnitsのままにします。
-
Pinが0に設定されていることを確認します。
-
Addボタンを選択して、Pin 0に光センサーを作成します。
光センサーが作成され、センサーリストに表示されます。
-
光センサーをプログラムする
デバイスは内蔵の光センサーを使用するようにプログラムできます。
タスク - 光センサーをプログラムする
デバイスをプログラムします。
-
前の部分の課題で作成したVS Codeのナイトライトプロジェクトを開きます。必要に応じて、仮想環境を使用して実行されていることを確認するためにターミナル を終了して再作成します。
-
app.py
ファイルを開きます。 -
必要なライブラリをインポートするために、
import
ステートメントの残りと一緒にapp.py
ファイルの上部に次のコードを追加します:import time
from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensorimport time
ステートメントは、後で この課題で使用するPythonのtime
モジュールをインポートします。from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor
ステートメントは、CounterFit GroveシムPythonライブラリからGroveLightSensor
をインポートします。このライブラリには、CounterFitアプリで作成された光センサーと対話するためのコードが含まれています。 -
光センサーを管理するクラスのインスタンスを作成するために、ファイルの下部に次のコードを追加します:
light_sensor = GroveLightSensor(0)
light_sensor = GroveLightSensor(0)
行は、光センサーが接続されているCounterFit Groveピン0に接続するGroveLightSensor
クラスのインスタンスを作成します。 -
上記のコードの後に無限ループを追加して、光センサーの値をポーリングし、コンソールに出力します:
while True:
light = light_sensor.light
print('Light level:', light)これは、
GroveLightSensor
クラスのlight
プロパティを使用して現在の光レベルを読み取ります。このプロパティはピンからアナログ値を読み取ります。この値はコンソールに出力されます。 -
光レベルを継続的にチェックする必要がないため、
while
ループの最後に1秒のスリープを追加します。スリープはデバイスの消費電力を減らします。time.sleep(1)
-
VS Codeターミナルから、次のコマンドを実行してPythonアプリを実行します:
python3 app.py
光の値がコンソールに出力されます。最初はこの値は0になります。
-
CounterFitアプリから、アプリが読み取る光センサーの値を変更します。これを行うには2つの方法があります:
-
光センサーのValueボックスに数値を入力し、Setボタンを選択します。入力した数値がセンサーから返される値になります。
-
Randomチェックボックスをオンにし、MinおよびMax値を入力してからSetボタンを選択します。センサーが 値を読み取るたびに、MinとMaxの間のランダムな数値が読み取られます。
設定した値がコンソールに出力されます。値を変更するか、Random設定を変更して値を変化させます。
(.venv) ➜ GroveTest python3 app.py
Light level: 143
Light level: 244
Light level: 246
Light level: 253 -
💁 このコードはcode-sensor/virtual-deviceフォルダーにあります。
😀 ナイトライトプログラムは成功しました!