エンジニアリング

Raspberry Piを使った格安監視カメラシステムを作った!

実家に帰省してます。今回は片手に「Raspberry Pi」を携えております・・・・・
img_3660

田舎の古民家に監視カメラを設置しよう

実は、祖父の持っていた家が亡くなってから空き家になってます。僕の父とかが休日ガーデニングを楽しむためにたま〜に行く程度でそれ以外はずっと空き家です

田舎とはいえ、ちょっとセキュリティー的にアレだなぁ・・・・と思って格安監視システムをラズパイで作ってみました

こんなのもやってます。

へたれエンジニアが水耕栽培の水やり-給水を自動化!水やりマンを作った(ESP32) どーも まる@へたれ です。 今年はお仕事が忙しいようで夏休みが夏休みっぽく過ごせていない感じです。とはいえお仕事ばかりやってい...
バジルとベビーリーフを育ててRaspberry Piで遊ぼう家でお腹減ったら野菜とか食べたいのでエンジニアリングしながらガーデニングをすることにした! 発注した とりあえずもろ...

やりたいこと

・家の入口に設置する、誰かが来たら動画を撮影(ないしは静止画を撮影)

・1日1回撮影した画像(ないしは動画)をメールに添付して送る

材料

材料はこんな感じ

Raspbery Pi

無線Lanの子機

Webカメラ(夜間も撮影したい人は赤外線対応してるのを推奨

以上3点!

やってみた

1.無線Lanを接続できるようにする

とりあえず無線Lan子機をラズパイに挿して認識させる

pi@raspberrypi ~ $ sudo lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 04bb:094c I-O Data Device, Inc. #ここで認識できたことを確認

2.無線Lanが飛んでいることを確認する

pi@raspberrypi ~ $ sudo iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: XXXXXXXXXXXXXXXXXXXXX
ESSID:"XXXXXXXXXXXXXX"
Protocol:IEEE 802.11bgn
Mode:Master
Frequency:2.437 GHz (Channel 6)
Encryption key:on
Bit Rates:300 Mb/s

こんな感じで使う予定のwifiが取得できたらOK

3.パスフレーズを暗号化して使うようにする

一応、大人のたしなみとしてやっておく

sudo sh -c 'wpa_passphrase UUIDXXXXXXXXXXXXXX UUPASS >> /etc/wpa_supplicant/wpa_supplicant.conf'

何故か作成した.conf見ると生パスがコメントアウトでよろしく記入されている謎の気遣いをされるので消しておく

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="XXXXXXXXXXXXX"
#psk="ここに謎のコメントアウトが!!!!!!!!" #なのでここの行を消しておこう・・・・・
psk=ここは暗号化されたパスワード
}
sudo /etc/init.d/networking restart

4.IP設定をして無線Lan化は終わり

sudo vi /etc/network/interfaces

#あとで設定を書き足しておく
auto lo
iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.X.XXX
netmask 255.255.XXX.X
gateway 192.XXX.X.Xauto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet dhcp
address 192.168.X.XXX
netmask 255.255.XXX.X
gateway 192.XXX.X.X
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

5.motionをインストールする

motionというものが動体検知をしてくれるイケてるツール、こいつでWebカメラからの情報をよろしくどっこいしてもらう

#インストールはマジでこれだけ・・・・・・
sudo apt-get install motion

簡単で感動する

6.motionの設定を弄る

もろもろ設定を変えて、僕色に染めます

sudo vi /etc/motion/motion.conf
daemon on
target_dir /var/motion #/初期設定だと再起動でファイイルが消える/tmp配下なので・・・・消えるの嫌なんので
webcam_localhost off #外部アクセス可能に$ sudo vi /etc/default/motion
start_motion_daemon=yes #常駐させたい(デーモン起動させたいので)

7.保存ディレクトリを作成する

sudo mkdir /var/motion #画像保存ディレクトリ
sudo chmod 764 /var/motion #権限変えておく
sudo mkdir /var/motion_setting #後々設定ファイルとかシェルを突っ込む

で、起動

sudo service motion start

8.メールで1日の監視報告をする

sSMTPでシンプルにやる

sudo apt-get install -y ssmtp

設定ファイルを弄る

sudo vi /etc/ssmtp/ssmtp.conf

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=XXXXXXXXXXXX #メールアドレス(送信者になるはず)

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587 #gmailに飛ばすから

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=raspberrypi

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
AuthUser=Gメールアドレス
AuthPass=Gメールパス
UseSTARTTLS=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

メールコマンドを使えるようにする

sudo apt-get install mailutils

これで以下の形でメールが送れるようになる

mutt -s "監視システムからの連絡" "メールアドレス" -c "CC先 "添付ファイルパス" < メール本文"

9.撮影したブツをメール添付するシェルとcronを書く

こんな感じの本文作成して

sudo vi /var/motion_setting/message.txt
これがめーる本文ですよYO

シェルを作成する、ついでに毎日削除してディスクいっぱいになることを防ぐ

#!/bin/sh
files="/var/motion/*"
all_file=""
for filepath in ${files}
do
all_file=${all_file}' -a '${filepath}
#echo $all_file
done
mutt -s "監視システムからの連絡" "メアド@gmail.com" -c ""${all_file}<"/var/motion_message/message.txt"
#ファイルの削除
sudo rm -r /var/motion/*.jpg
sudo rm -r /var/motion/*.avi
echo "メール送信が終了しました"

それでcronの設定

crontab -e
#毎日6時にプログラムを実行する
00 6 * * * sudo /var/motion_message/send_camera_mail.sh

出来ました

監視カメラ 監視システム