※商品画像貼るの面倒なので、アフィリエイト使用
結局、Amazonで調達したチルト機能付きカメラはこんな感じに設置した。
証拠というよりは、車に乗り込まれたかどうかを判定する程度。
結局の所、カメラケーブル50cmでは、自由な位置に取り付けができなかったのだ。
で、RX-7搭載のRaspberry Pi zero 2 Wは、わしの携帯電話のbluetoothに接続を試み、接続できた場合は、カメラの動体検知OFFで、運転中のノイズをカット。
駐車場に停めて、車から離れて、bluetooth接続が切れたら、動態検知ONというようにした。
車から離れたら動体検知ONになって欲しいのだが、わしの部屋から車庫までの距離だと、ギリギリbluetooth接続できてしまうので、動体検知がOFFになってしまう。
まあ、家では他に監視カメラがあるので、特に問題は無いけど、ゆくゆくは信号強度見て判断できるようになったらいいなとは思っている。
【機能】
- 車載警報装置の発報で、GPIO26 が 0になるので、メールとSMSを送信。
- わしの携帯のbluetoothとの接続が切れたら、カメラの動体検知ON、接続したら、動体検知OFF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
#!/bin/bash GPIO=26 GPIO_DIR=/sys/class/gpio MOTION_PID=/dev/shm/motion.pid BTMAC=[わしの携帯電話のbluetoothのMACアドレス] initialize(){ # GPIO26を有効化。プルアップ抵抗ON echo $GPIO >${GPIO_DIR}/export sleep 0.1 echo in >${GPIO_DIR}/gpio${GPIO}/direction sleep 0.1 echo high >${GPIO_DIR}/gpio${GPIO}/direction } shutdown_handler(){ # GPIOクリーンアップ echo $GPIO >$GPIO_DIR/unexport motion_stop exit 0 } mail_send(){ cat << _EOD_|/usr/sbin/sendmail -t -f yuji@noizumi.org From: yuji@noizumi.org To: yuji@noizumi.org Subject: Car Security alert $1 Car Security alarm was $1 at `date +"%Y/%m/%d %H:%M:%S"` _EOD_ } sms_send(){ DATEMES=`date +"%Y/%m/%d %H:%M:%S"` curl -X POST https://api.twilio.com/2010-04-01/Accounts/[アカウント]/Messages.json \ --data-urlencode "Body=Car Security alarm was $1 at $DATEMES" \ --data-urlencode "From=[twilioの携帯電話番号]" \ --data-urlencode "To=[わしの携帯電話番号]" \ -u [アカウント]:[パスワード] -o /home/noizumi/logs/twilio.log } button_pushed(){ motion_start mail_send activated sms_send activated # 車載警報装置発報中はループ while [ "`cat ${GPIO_DIR}/gpio${GPIO}/value`" = "0" ]; do sleep 1 done mail_send stopped sms_send stopped } motion_start(){ if [ ! -e ${MOTION_PID} ]; then motion -n & echo $! >${MOTION_PID} fi } motion_stop(){ if [ -e ${MOTION_PID} ]; then kill -TERM `cat ${MOTION_PID}` rm -f ${MOTION_PID} || true fi } bluetooth_connect(){ # bluetooth 接続状態確認 if [ "`hcitool con|grep -v Connection|grep ${BTMAC}`" != "" ]; then # 接続してたら、動体検知止める motion_stop if [ "`ip a|grep bnep`" = "" ]; then # bluetoothテザリング bt-pan client ${BTMAC} fi else # 接続してなかったら、動体検知スタート motion_start cat << _EOD_|bluetoothctl >/dev/null 2>&1 power on connect ${BTMAC} quit _EOD_ fi } initialize trap shutdown_handler 1 2 3 15 # pulseaudo 起動確認(bluetooth 接続用) if [ "`ps ux|grep -e \"${USER}.*pulseaudio\"|grep -v grep`" = "" ]; then pulseaudio --start sudo systemctl restart bluetooth.service fi while :; do # 車載警報装置発報時 if [ "`cat ${GPIO_DIR}/gpio${GPIO}/value`" = "0" ]; then button_pushed fi bluetooth_connect sleep 1 done |
車載Raspberry Pi zero 2 W の監視スクリプトも結構な長さになったなあ。