ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

ラズベリーパイ:弁当箱とLEGOで作る監視カメラ LEGO

遠くから見るとこんな感じ。(なんでしょう?)

近くからみるとなにやら箱に穴が2つ空いています。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

箱(というか弁当箱に使うようなタッパー)を上から見るとレゴブロックが見えます。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

ふたを取るとこんな感じ。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

レゴで作った枠にラズベリーパイがきれいに収まっています。(今回使ったのは、Raspberry Pi A+です。通常のRaspberry Pi2などより小さく正方形です。ただしUSBアダプタは1箇所のみ)

ラズベリーパイはセンサーをつけると色々と応用範囲が広がります。
今回監視カメラを作ってみました。

使った部品は
・弁当箱(タッパーがきっちりふたが出来ていい感じです!)
・Raspberry Pi A+
・Piカメラ
・人感センサー(aitendoさんで購入できるSB00412A-1というタイプです)

ちなみに接続方法はこちら

人感センサ A500BP (DSUN-PIR, SB00412A-1も) が安いだけでなく Raspberry Pi との相性もバッチリだったので、人感カメラが10分で出来てしまった話。

に詳しく出ていました。

左がPiカメラ、右が人感センサーです。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

わたしとしては、不器用なので、

弁当箱にドリルで穴をあける作業や
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

LEGOでラズパイを固定する枠など
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

を作るのに時間がかかってしまいました。

そうそう、弁当箱に空いた穴とセンサーやカメラのパテ埋めにKOKUYOの『ひっつき虫』を使いました。(この為に買ったわけではないのですが、以外に隙間がなくなって便利でした)
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

LEGOにラズパイをセット!(かっこいい!)
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

ちなみにWiFiに対応させました。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

こうすることで撮影した写真をWindowsなどのパソコンからも簡単に閲覧やコピーが出来て便利です。

プログラム部分はPythonで作成。(実行はsudo python sensorCamera.py)

sensorCamera.py

# ------------------------------------------------------------------------------
# Sensor Check Program for Python2
# ------------------------------------------------------------------------------
import RPi.GPIO as GPIO
import time
import datetime
import picamera
from time import sleep

# GPIO
pinIn = 19
pinOut = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(pinIn, GPIO.IN)
GPIO.setup(pinOut, GPIO.OUT)

# Camera Setting
camera = picamera.PiCamera()
width = 640
height = 480
rotation = -90

def takePhotoToDateFile():
	# take photo time
	d = datetime.datetime.today()
	takeYear = str(d.year)
	takeMonth = str(d.month).zfill(2)
	takeDay = str(d.day).zfill(2)
	takeHour = str(d.hour).zfill(2)
	takeMinute = str(d.minute).zfill(2)
	takeSecond = str(d.second).zfill(2)
	takeTime = takeYear + takeMonth + takeDay + "_" + takeHour + '-' + takeMinute + '-' + takeSecond

	# capture
	camera.rotation = rotation
	camera.resolution = (width, height)
	camera.capture('img' + takeTime + '.jpg')


# main

while True:
	sensor = GPIO.input(pinIn)
	print "Sensor = ", sensor

	if sensor == True:
		GPIO.output(pinOut, True)	# LED ON
		# take photo
		camera.start_preview()
		time.sleep(1)
		takePhotoToDateFile()
		time.sleep(9)
	else:
		GPIO.output(pinOut, False)

	time.sleep(1)

GPIO.cleanup()

19行目、20行目は撮影画像のサイズです。
21行目は、Piカメラの撮影画像を回転しています。(わたしの場合は、横向きに固定してしまったためこうしてあります。適当に調整してください)

52行目の time.sleep(9)は撮影後に9秒おいてから再度センサーでのチェックに入るようにしています。同じような画像が何枚も撮影されてしまうためこうしました。(ここも適当に調整してみてください)

さて、見張り番をしようか。
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

;)
ラズベリーパイ:弁当箱とLEGOで作る監視カメラ

スポンサーリンク

コメント

タイトルとURLをコピーしました