動かざることバグの如し

近づきたいよ 君の理想に

RaspberryPi+WEBカメラで入退室時にゆかり様にお疲れ様ですと

動機

不純

用意するもの

  • RaspberryPi 2
  • Webカメラ(Raspiで実績のあるUCAM-DLK130TBKを選択)
  • ゆかり様生ボイス.wav

ゆかり様生ボイスを再生させるまで

/home/piシェルスクリプトを作成 yukari.wavも配置

#!/bin/sh
cd /home/pi
aplay ./yukari.wav

これでイヤホンジャックから適当に音が再生されればおk

もしうまくいかない場合は音出力をアナログ出力をに優先させるコマンド実行

amixer cset numid=3 1

音量が小さい場合はalsamixer等で調節

Webカメラとの連携

あらかじめraspiにカメラを接続して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 056e:700f Elecom Co., Ltd  

motionというアプリを今回利用する

sudo apt-get install motion

以下/etc/motion/motion.confで以下の設定項目を変更

threshold 3000     # 検知の閾値 値が小さいほど敏感
output_normal off  #検知の際の画像保存しない
ffmpeg_cap_new off  #検知の際にffmpegを利用しない
on_event_start /home/pi/play.sh #検知の際に実行するシェルスクリプト

設定後

sudo motion -n

で動作確認

常駐化

motionをサービスとして起動させるには/etc/motion/motion.confにて以下変更

daemon on          #常にバックグラウンドで動作するサービスとして起動させる

あと/etc/default/motionにてstart_motion_daemon=noyesに変更

しかしこれだとmotionがmotionユーザーとして起動し、パーミッションエラーでmotion.confを読み込むことに失敗する

could not open configfile /etc/motion/motion.conf: Permission denied
Not config file to process using default values

そこで/etc/rc1.d/K01motion以下を変更し起動ユーザーを変更する

###start部分の「--chuid motion」を削除
if start-stop-daemon --start --oknodo --exec $DAEMON -b ; then
--chuid motion

これでservice motion restartするとうまくいくはず

参考リンク

Motion の導入手順 ~ 指定した内容、パラメータの意味について