Raspberry Piで焦電型赤外線(人感)センサーを使うときの手順メモ
用意するもの
- Raspberry Pi 2 Model B(セットアップ済みのもの、OSはRaspbian)
- 焦電型赤外線(人感)センサーモジュール
- ブレッドボード
- ブレッドボード用ジャンパーワイヤ(オス-メス) 3本
接続した人感センサー
秋月電子通商で焦電型赤外線(人感)センサーモジュール SB412Aを購入した。
秋月電子通商のデータシートで、各端子の意味を確認した。
人感センサーとRaspberryPiとの接続
人感センサーの各端子とブレッドボードとの接続
※画像の"b"は"d"の間違い。人感センサーは、ブレッドボードのd9, d10, d11に接続する。
ブレッドボードとRaspberry Piとの接続
- b9と6番ピン(Ground)
- b10と12番ピン(GPIO18)
- b11と4番ピン(5v)
Raspberry Piのピン配置は、Raspberry PiでLEDの点灯を参照
Raspberry Piで人感センサーから情報取得
Pythonでコードを書いてみる。
※setmode, setupの説明に関しては、Raspberry PiでLEDの点灯を参照
motion_sensor.py
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)
try:
while True:
print GPIO.input(18)
sleep(1)
except KeyboardInterrupt:
pass
GPIO.cleanup()
実行結果
人を検知した場合は1と表示される。
ターミナル
$ sudo python ./motion_sensor.py
1
0
0
0
0
0
0
1
1
1
1
1
0
ついでに、ターミナルからセンサーの情報を取得する方法は以下の通り。
1. GPIO 18を有効にする
ターミナル
sudo echo 18 > /sys/class/gpio/export
上記コマンドを実行すると、 /sys/class/gpio/gpio18ディレクトリが作成される。
2. GPIO 18を入力として使用する
ターミナル
$ sudo echo in > /sys/class/gpio/gpio18/direction
3. センサーの出力を取得する
ターミナル
$ sudo cat /sys/class/gpio/gpio18/value
人を検知した場合は1、検知しない場合は0を出力する。
4. 後処理(Pin を無効にする)
ターミナル
sudo echo 18 > /sys/class/gpio/unexport