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

ナイトライトを作る - Raspberry Pi

このレッスンのこの部分では、Raspberry Piに光センサーを追加します。

ハードウェア

このレッスンのセンサーは、光を電気信号に変換するフォトダイオードを使用する光センサーです。これはアナログセンサーで、標準的な測定単位(例えばlux)に対応しない相対的な光量を示す0から1,000の整数値を送信します。

光センサーは外部のGroveセンサーであり、Raspberry PiのGrove Base hatに接続する必要があります。

光センサーを接続する

光レベルを検出するために使用されるGrove光センサーは、Raspberry Piに接続する必要があります。

タスク - 光センサーを接続する

光センサーを接続します

A grove light sensor

  1. Groveケーブルの一端を光センサーモジュールのソケットに挿入します。これは一方向にしか挿入できません。

  2. Raspberry Piの電源を切った状態で、Groveケーブルの他端をPiに接続されたGrove Base hatのアナログソケットA0に接続します。このソケットは、GPIOピンの隣のソケット列の右から2番目のソケットです。

The grove light sensor connected to socket A0

光センサーをプログラムする

デバイスはGrove光センサーを使用してプログラムできます。

タスク - 光センサーをプログラムする

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

  1. Piの電源を入れ、起動を待ちます

  2. この課題の前の部分で作成したVS Codeのナイトライトプロジェクトを開きます。Pi上で直接実行するか、Remote SSH拡張機能を使用して接続します。

  3. app.pyファイルを開き、すべてのコードを削除します

  4. 必要なライブラリをインポートするために、以下のコードをapp.pyファイルに追加します:

    import time
    from grove.grove_light_sensor_v1_2 import GroveLightSensor

    import timeステートメントは、この課題の後で使用されるtimeモジュールをインポートします。

    from grove.grove_light_sensor_v1_2 import GroveLightSensorステートメントは、Grove PythonライブラリからGroveLightSensorをインポートします。このライブラリにはGrove光センサーと対話するためのコードが含まれており、Piのセットアップ中にグローバルにインストールされました。

  5. 上記のコードの後に以下のコードを追加して、光センサーを管理するクラスのインスタンスを作成します:

    light_sensor = GroveLightSensor(0)

    light_sensor = GroveLightSensor(0)行は、光センサーが接続されているアナログGroveピンA0に接続するGroveLightSensorクラスのインスタンスを作成します。

  6. 上記のコードの後に無限ループを追加して、光センサーの値をポーリングし、コンソールに出力します:

    while True:
    light = light_sensor.light
    print('Light level:', light)

    これは、GroveLightSensorクラスのlightプロパティを使用して0-1,023のスケールで現在の光レベルを読み取ります。このプロパティはピンからアナログ値を読み取ります。この値はコンソールに出力されます。

  7. 光レベルを継続的にチェックする必要がないため、ループの最後に1秒のスリープを追加します。スリープはデバイスの消費電力を減らします。

    time.sleep(1)
  8. 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フォルダーにあります。

😀 ナイトライトプログラムにセンサーを追加することに成功しました!