人感センサーを利用した主要なサービスを考えますと、
ライト(人が通ったらライトを着ける) = 節電
カメラ(人が通ったら写真や動画を撮影する) = 監視カメラ
が主流でしょうか?
カメラについては、以前、OpenCVで、2つの静止画から動体を検知したり、
動画の中から動体を検知したり、
してみました。人感センサーの検知精度に問題を感じるなら、更に上記を追加した機能を検討する等、手法は色々とありそうですね。
今回の御題
「焦電型赤外線センサー」を利用して、何かを検知したときにLEDを点灯してみます。
焦電型赤外線センサー
「人感センサー○○」と、様々な家電で良く目にしますが、この白い球体が付いてますよね。
(下記の画像はセンサーライトです)
センサーを購入すると、白丸の裏にドライバーで調節が可能なツマミが付いているはずです。(2個か3個=仕様によります)
調整が難しいのですが、私は下記の2つがあり、
(調光)暗い場所での感度を調整します
(感度)感度の度合いを調整します
ドライバーで回しながら感度を調整します。
回路
使用方法は、データシートを確認する必要がありますが、私の手持ちは以下のように接続しました。
(vcc) 2番ピン(5v電源)
(Data) 12番ピン(GPIO-18)
(GND) 9番ピン(GND)
今回、Lチカもするので、
(+) 11番ピン(GPIO-17)
(-) 9番ピン(GND)
も準備しています。
(センサー回りのコードが長過ぎて、青いバンドでぐるっと止めてます)
プログラムを作成しましょう。
vi test.py
import RPi.GPIO as GPIO
import time
sens = 18 # センサーのDATAピン
ltika = 17 # Lチカのピン
GPIO.setmode(GPIO.BCM)
GPIO.setup(sens,GPIO.IN) # センサーから受信
GPIO.setup(ltika,GPIO.OUT) # Lチカへ送信
try:
while True:
if(GPIO.input(sens) == GPIO.HIGH):
print("反応あり!")
GPIO.output(ltika, GPIO.HIGH) # LチカON
time.sleep( 1 )
GPIO.output(ltika, GPIO.LOW) # LチカOFF
else:
print("反応なし")
time.sleep( 1 )
except KeyboardInterrupt:
print("Cleaning up")
GPIO.cleanup()
プログラムが完成したら、実行しましょう。
python test.py
センサーの前で手を振ってみましょう。
LチカしたらOKです。
お疲れさまでした~