記事一覧へ戻る
Raspberry Pi/初級/7分で読める/

ラズパイでPIR人感センサーを使う配線とPythonコード

PIR人感センサーは、人の動きを検知する入門向けセンサーです。モジュールによって出力電圧や調整つまみの仕様が異なるため、OUTピンがRaspberry PiのGPIOに安全な電圧か確認して使います。

WIRING ORDER

配線順序プレビュー

レッスン用図解
Tsunagu IoT Learn / Raspberry Pi
  1. 1STEP 1PIR VCC から Raspberry Pi 5V(物理ピン2または4) へ
    ここから
    PIR VCC
    ここへ
    Raspberry Pi 5V(物理ピン2または4)

    確認: 多くのPIRモジュールは5V電源で使います。

  2. 2STEP 2PIR GND から Raspberry Pi GND(物理ピン6など) へ
    ここから
    PIR GND
    ここへ
    Raspberry Pi GND(物理ピン6など)

    確認: 電源と信号の基準を共通にします。

  3. 3STEP 3PIR OUT から Raspberry Pi GPIO17(物理ピン11) へ
    ここから
    PIR OUT
    ここへ
    Raspberry Pi GPIO17(物理ピン11)

    確認: OUTが3.3V出力のモジュールを使います。5V出力の場合はレベル変換が必要です。

用意するもの

  • Raspberry Pi 4 / 5 などGPIOを使える本体
  • PIR人感センサーモジュール
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
PIR VCCRaspberry Pi 5V(物理ピン2または4)多くのPIRモジュールは5V電源で使います。
PIR GNDRaspberry Pi GND(物理ピン6など)電源と信号の基準を共通にします。
PIR OUTRaspberry Pi GPIO17(物理ピン11)OUTが3.3V出力のモジュールを使います。5V出力の場合はレベル変換が必要です。

配線元、配線先、コードのピン番号を同じ画面で確認できます。

手順

  1. 1PIRモジュールのVCC、GND、OUT表記を確認します。
  2. 2Raspberry Piの電源を切ってからVCCとGNDを接続します。
  3. 3OUTをGPIO17へ接続します。
  4. 4起動後、PIRの安定待ち時間を少し取ります。
  5. 5手を動かして検知表示が変わるか確認します。

GPIO17でPIR人感センサーを読むPythonコード

python
import time
import RPi.GPIO as GPIO

PIR_PIN = 17

GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR_PIN, GPIO.IN)

try:
    time.sleep(5)
    while True:
        if GPIO.input(PIR_PIN) == GPIO.HIGH:
            print("動きを検知しました")
        else:
            print("待機中")
        time.sleep(1)
finally:
    GPIO.cleanup()

動かないときの確認

  • OUTがGPIO17へつながっているか
  • PIRのVCCとGNDを逆にしていないか
  • OUT電圧がRaspberry PiのGPIOに安全か
  • 起動直後の安定待ち時間を取っているか

よくあるミス

  • OUTが5VのモジュールをGPIOへ直結する
  • センサーの保持時間設定により反応が遅いことを配線ミスと判断する
  • GNDを共通にしない

次に試すこと

人感検知ができたら、検知時にLEDを光らせる、通知する、ログを残すなど、IoTらしい動作へ広げられます。

デモで配線を確認する