5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Pi(Raspbian)でモーションセンサー式の防犯カメラ的なものを作ってみる

Last updated at Posted at 2019-02-11

#はじめに
Raspberry Pi(Raspbian)でモーションセンサー式の防犯カメラ的なものを作る方法です。

#必要なもの

  • RaspbianがインストールされているRaspberry Pi
  • Raspberry Pi用のカメラモジュール
  • 赤外線モーションセンサー(HC-SR501)
  • ジャンパー線(メス/メス)x3

#配線
GPIO, 5V, GNDならどこでも可ですが、今後の拡張性などを考えるとGPIOのみのピン(3, 5, 8, 10, 19, 21, 23, 24, 25以外)を使う方が無難だと思います。
この投稿では4(5V), 6(GND), 7(GPIO4)ピンを使用しています。
DSC_0216.JPG
HC-SR501_ブレッドボード.png
↓HC-SR501の配線は左から順にGND, OUT, VCC。
DSC_0217.JPG
↓右側のダイヤルで距離、左側のダイヤルで時間を調整することができるので、使用用途と環境に合わせて調整する。(調整するのが面倒なら↓と同じにしておけばOK)
DSC_0220.JPG

#プログラム

security_camera.py
#Import Files
import RPi.GPIO as GPIO
import picamera
import time

#GPIO Settings
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

#Camera Settings
CAM_DIR  = "/home/pi/python/_video/"

camera = picamera.PiCamera()

#Main
try:
    while True:
        if GPIO.input(4) == 1:
            filename = time.strftime("%Y%m%d%H%M%S") + ".h264"
            save_dir_filename = CAM_DIR + filename
            camera.start_recording(save_dir_filename)
            camera.wait_recording(300)
            camera.stop_recording()
        else:
            pass

except KeyboardInterrupt:
    GPIO.cleanup()

#解説

  1. スイッチの制御に使用するRPi.GPIOライブラリをインポートする
  2. Raspberry Piのカメラモジュールの制御に使用するpicameraライブラリをインポートする
  3. 時間を取得するために使用するtimeライブラリをインポートする
  4. GPIOのモードをBCMに設定する(物理的なピン番号ではなく、GPIO**を使用する)
  5. GPIO4を入力端子に設定し、状態をプルダウン(Low)にする(Hi=ON, Low=OFF)
  6. CAM_DIRに保存先のディレクトリを設定する
  7. PiCameraクラスのインスタンスを生成する
  8. while True:で解説9〜16の処理を無限ループさせる
  9. センサーが動きを検知したら(GPIO4がHiになったら)動画を撮る処理を行う
  10. time.strftimeでセンサーが動きを検知した時の日時を取得する
  11. time.strftimeで取得した日時+拡張子(.h264)をファイル名にする
  12. CAM_DIRで指定したディレクトリとファイル名を連結させる
  13. camera.start_recordingで動画を撮る
  14. camera.wait_recordingで指定した時間が経過したら動画を撮る処理を終了する(括弧には秒数を入れる)
  15. CAM_DIRで指定したディレクトリに動画を保存する
  16. 解説9に遷移 or プログラムが終了するのを待つ
  17. Control+Cが押されたらGPIOを解放してプログラムを終了する

#プログラムを実行してみる

  1. プログラムを実行する
  2. センサーが動きを検知すると動画ファイルに記録される2019-02-05-175400_947x685_scrot.png
  3. 人や動物など、動くものが映っていれば完成(Raspberry Piだと正常に再生できないので手持ちのPCにコピーして再生する)スクリーンショット 2019-02-11 20.49.47.png

#参考

  • Raspberry Pi(Raspbian)で写真を撮るプログラムを作る」と組み合わせることでセンサーが動きを検知したら写真を撮るプログラムを作ることができる
  • センサーの状態(Hi/Low)は目視で確認できないので、GPIOの入力値をprintで出力しておくと調整しやすい
  • 動画の保存先には使い捨ての外部ストレージ(USBメモリ)などを指定した方が安全に運用できる
  • 屋外に設置すると雨などの影響で壊れる可能性が高いので、屋内での運用が望ましい
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?