ラズベリーパイで使える人感センサー(焦電型赤外線センサー)について学び、使ってみましょう。

人感センサーとは

焦電型赤外線センサー

人の動きを検出するセンサーで、正式名称は焦電型赤外線センサー(Passive Infra-Red Sensor)と呼ばれています。電源ピンと出力ピン(OUT)の3本タイプが多く、人を検出した時だけ出力ピンに電圧が出力されます。焦電型セラミクスは平べったい構造をしています。周りからの赤外線を効率よく受け取るため、上部にドーム型のフレンネルレンズがついています。

選ぶのが大変!

焦電型赤外線センサーはサイズが大小さまざま、さらに検出した時の保持時間を調整できるものがあるなど、種類がたくさんあります。おすすめはブレッドボードに挿せる小型で安いタイプです。

 

使い方

電源(3.3V or 5V / GND)をつなぎ、出力ピンをGPIOにつなぎます。

Raspberry Pi 人感センサー
3.3V or 5V Vcc (+)
GND GND (-)
GPIO OUT

プログラムではGPIOを入力モードにし、GPIOピンの状態をチェックします。

GPIOピンの状態 意味
0 人を検出していない
1 人を検出

 

原理

赤外線が当たると温度変化が生じて電気が発生する焦電型セラミクスという部品があります。これがセンサー内部に入っています。人体は赤外線を発していますので、人が動いたり近づいたりすると、電気的に検出できます。

注意

赤外線の変化を検出するため、じっとしていると検出できません。また、人体以外にも、太陽光に含まれる赤外線や動物が発する赤外線でも反応してしまいます。使用には注意しましょう。

 

Raspberry Piでの使い方

使用する人感センサーは以下です。
焦電型赤外線(人感)センサーモジュール SB412A

電子回路

電源、および使用するGPIOを接続します。

Raspberry Pi センサー
3.3V Vcc
GND GND
GPIO 26 OUT

Pythonスクリプト

import RPi.GPIO as GPIO
import time

ir = 26

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

while True:
    sensor_state = GPIO.input(ir)
    print(sensor_state)
    time.sleep(1)

Raspberry Pi Picoでの使い方

使用する人感センサーは以下です。
焦電型赤外線(人感)センサーモジュール SB412A

電子回路

電源、および使用するGPIOを接続します。

Pico センサー
3V3(OUT) Vcc
GND GND
GPIO 22 OUT

MicroPythonスクリプト

from machine import Pin
from time import sleep

ir = Pin(22, Pin.IN)

while True:
	sensor_state = ir.value()
	print(sensor_state)
	sleep(1)

 

動作チェック

1秒おきに、検出していない時は0、検出している時は1と表示されましたか?

センサーの種類やねじ・つまみによる設定によって、1と表示される時間が変わります。アプリケーションに応じて適宜センサー側で検出保持時間を変更するか、プログラム側でsleepの間隔を調整しましょう。

 

おわりに

いかがでしたでしょうか? とても簡単に使えるセンサーなので、ぜひ使ってみてください😊

関連記事:使い方