遠くから見るとこんな感じ。(なんでしょう?)
近くからみるとなにやら箱に穴が2つ空いています。

箱(というか弁当箱に使うようなタッパー)を上から見るとレゴブロックが見えます。

ふたを取るとこんな感じ。

レゴで作った枠にラズベリーパイがきれいに収まっています。(今回使ったのは、Raspberry Pi A+です。通常のRaspberry Pi2などより小さく正方形です。ただしUSBアダプタは1箇所のみ)
ラズベリーパイはセンサーをつけると色々と応用範囲が広がります。
今回監視カメラを作ってみました。
使った部品は
・弁当箱(タッパーがきっちりふたが出来ていい感じです!)
・Raspberry Pi A+
・Piカメラ
・人感センサー(aitendoさんで購入できるSB00412A-1というタイプです)
ちなみに接続方法はこちら
人感センサ A500BP (DSUN-PIR, SB00412A-1も) が安いだけでなく Raspberry Pi との相性もバッチリだったので、人感カメラが10分で出来てしまった話。
に詳しく出ていました。
左がPiカメラ、右が人感センサーです。

わたしとしては、不器用なので、
弁当箱にドリルで穴をあける作業や


LEGOでラズパイを固定する枠など

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

LEGOにラズパイをセット!(かっこいい!)

ちなみにWiFiに対応させました。

こうすることで撮影した写真を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秒おいてから再度センサーでのチェックに入るようにしています。同じような画像が何枚も撮影されてしまうためこうしました。(ここも適当に調整してみてください)
さて、見張り番をしようか。

;)

スポンサーリンク


コメント