logo
Published on

Raspberry Piに「APDS-9301」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンを備えたシングルボードコンピュータで、様々なセンサーを接続して利用することができます。本記事では、環境光センサーである「APDS-9301」をRaspberry Piに接続し、制御する手順について説明します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. APDS-9301環境光センサーの概要

APDS-9301はデジタル環境光センサーで、光の強さをデジタル値で出力します。I2C通信を使用してデータを送受信します。Raspberry Piに接続すると、室内照度や明るさの変化を検知するのに便利です。

2. APDS-9301の接続

APDS-9301は通常、VCC、GND、SDA、SCLの4つのピンがあります。これらをRaspberry Piに接続します。

  • VCC(赤色): 3.3Vの電源
  • GND(茶色): 接地
  • SDA(緑色): I2Cデータライン
  • SCL(青色): I2Cクロックライン

これらをRaspberry Piの対応するピンに接続します。

3. Raspberry Piの設定

Raspberry PiでI2Cを有効にする必要があります。以下の手順で有効化します。

  1. Raspberry Piを起動し、ターミナルを開きます。
  2. sudo raspi-config を実行します。
  3. 「Interfacing Options」を選択し、「I2C」を有効にします。
  4. 再起動します。

4. Pythonコードの作成

APDS-9301をPythonで制御するには、smbus ライブラリが必要です。以下は、APDS-9301からデータを読み取り、コンソールに表示する簡単なPythonコードの例です。

import smbus
import time

# I2Cアドレス
DEVICE_ADDRESS = 0x39

bus = smbus.SMBus(1)  # Raspberry PiのI2Cバス番号によって変更

def read_lux():
    data = bus.read_i2c_block_data(DEVICE_ADDRESS, 0x0C | 0x80, 2)
    return (data[1] << 8) | data[0]

try:
    while True:
        lux_value = read_lux()
        print(f"照度: {lux_value} lux")
        time.sleep(1)

except KeyboardInterrupt:
    print("プログラムを終了します")

5. コードの実行と確認

上記のPythonコードを新しいファイルに保存し、実行します。これにより、APDS-9301が検知した照度がコンソールに表示されます。

これで、Raspberry PiにAPDS-9301を接続し、Pythonを使用して簡単に制御する方法がわかりました。APDS-9301のデータを利用して、室内の照度に応じてライトやディスプレイの明るさを制御するなど、様々なプロジェクトに応用することができます。