ナイトライトを作る - Raspberry Pi
このレッスンのこの部分では、Raspberry Piに光センサーを追加します。
ハードウェア
このレッスンのセンサーは、光を電気信号に変換するフォトダイオードを使用する光センサーです。これはアナログセンサーで、標準的 な測定単位(例えばlux)に対応しない相対的な光量を示す0から1,000の整数値を送信します。
光センサーは外部のGroveセンサーであり、Raspberry PiのGrove Base hatに接続する必要があります。
光センサーを接続する
光レベルを検出するために使用されるGrove光センサーは、Raspberry Piに接続する必要があります。
タスク - 光センサーを接続する
光センサーを接続します
-
Groveケーブルの一端を光センサーモジュールのソケットに挿入します。これは一方向にしか挿入できません。
-
Raspberry Piの電源を切った状態で、Groveケーブルの他端をPiに接続されたGrove Base hatのアナログソケットA0に接続します。このソケットは、GPIOピンの隣のソケット列の右から2番目のソケットです。
光センサーをプログラムする
デバイスはGrove光センサーを使用してプログラムできます。
タスク - 光センサーをプログラムする
デバイスをプログラムします。
-
Piの電源を入れ、起動を待ちます
-
この課題の前の部分で作成したVS Codeのナイトライトプロジェクトを開きます。Pi上で直接実行するか、Remote SSH拡張機能を使用して接続します。
-
app.py
ファイルを開き、すべてのコードを削除します -
必要なライブラリをインポートするために、以下のコードを
app.py
ファイルに追加します:import time
from grove.grove_light_sensor_v1_2 import GroveLightSensorimport time
ステートメントは、この課題の後で使用されるtime
モジュールをインポートします。from grove.grove_light_sensor_v1_2 import GroveLightSensor
ステートメントは、Grove PythonライブラリからGroveLightSensor
をインポートします。このライブラリにはGrove光センサーと対話するためのコードが含まれており、Piのセットアップ中にグローバルにインストールされました。 -
上記のコードの後に以下のコードを追加して、光センサーを管理するクラスのインスタンスを作成します:
light_sensor = GroveLightSensor(0)
light_sensor = GroveLightSensor(0)
行は、光センサーが接続されているアナログGroveピンA0に接続するGroveLightSensor
クラスのインスタンスを作成します。 -
上記のコードの後に無限ループを追加して、光センサーの値をポーリングし、コンソールに出力します:
while True:
light = light_sensor.light
print('Light level:', light)これは、
GroveLightSensor
クラスのlight
プロパティを使用して0-1,023のスケールで現在の光レベルを読み取ります。このプロパティはピンからアナログ 値を読み取ります。この値はコンソールに出力されます。 -
光レベルを継続的にチェックする必要がないため、ループの最後に1秒のスリープを追加します。スリープはデバイスの消費電力を減らします。
time.sleep(1)
-
VS Codeのターミナルから、以下を実行してPythonアプリを実行します:
python3 app.py
光の値がコンソールに出力されます。光センサーを覆ったり外したりすると、値が変わります:
pi@raspberrypi:~/nightlight $ python3 app.py
Light level: 634
Light level: 634
Light level: 634
Light level: 230
Light level: 104
Light level: 290
💁 このコードはcode-sensor/piフォルダーにあります。
😀 ナイトライトプログラムにセンサーを追加することに成功しました!