ダミー監視カメラの中にRaspbery Pi zero とRPi-Cam-Web-Interfaceで監視カメラ作成(OFFLINE版)

Amazonでダミーカメラを購入して、その中にraspberry Pi zero とRPi-Cam-web-Interfaceで本物の監視カメラにいたしました。

この製品の材質は主にプラスチックですが、ぱっと見ただけでは本物のように見えます。その上、太陽電池セルと自己点滅型LEDによって昼間は電池無しで赤いLEDが点滅します。ですので、いかにも「録画監視中ですよ!」と言う雰囲気を醸し出しています。別売の充電式単3電池2本をセットすれば夜もLEDを点滅することができるみたいです。

これを本物の監視カメラに改造しました。

今回はインターネット回線が無い場所に設置しましたのでzero にアクセスポイントを兼任してもらい、カメラインターフェースのコントロール画面にアクセスできるようにしました。

購入したダミーカメラは大きくわけて5個のパーツに分解できます。本体の中は広くはありませんが、空洞になっていますのでzero を配置するスペースは確保できます。また、少し加工が必要ですが前面のダミーカメラモジュールを本物のカメラモジュールへ交換することができます。さらにダミーの照明用赤外線LEDを本物にしてしまう事も一瞬頭に浮かびましたが、熱で筐体が溶けてしまいそうなので却下しました。

製品を分解したところ(NO1)
製品を分解したところ(NO2)

ソーラーセルがついていますが、残念ながらraspberry Pi zeroを駆動できそうにないので、電源は別途用意が必要です。(結果、ソーラーセルは使用しません)

DS3231 RTC Real Time Clockモジュール

OFFLINEで使用するのでリアルタイムクロックを装着しました。
Raspberry Pi 用のDS3231 RTC Real Time Clockモジュールが手元にありましたので、これを使用しました。
このモジュールはZero のGPIO 1,3,5,7Pinに直接装着できます。WiFi環境下で使用するのであれば、このRTCは必要ありません。カメラモジュールとLED、電源をつなげるだけでOKです。

ダミーのLED照明・カメラレンズはプラスチックで上手に作られています

ダミーカメラの前面は保護ガラスが入っている黒いフードカバーとダミーLED赤外線照明およびダミーカメラモジュールに分解できます。ダミーカメラモジュールの代わりに本物のカメラモジュールをとりつけるために加工が必要です。

ダミーカメラモジュールの一部を切断することも考えましたが、黒い板状の物を切り抜いて作成することにしました。DVDの黒いケースが材料としてぴったりで、ハサミで切り抜いてカメラモジュール取り付けのアタッチメントとしました。

丸いガラス板も取り外せます

完成後カメラの画像をチェックして初めて気づきましたが、周囲が暗くなると前面に付いている保護ガラスに自己点滅型LEDの光が反射して画像に写ってしまいます。
これはでは都合が悪いので前面に付いている丸い保護ガラスを外しました。フード状のこの部品も3つに分解できます。
レンズがフードの奥になるので、魚眼レンズの等のカメラモジュールを装着した場合、解像度によっては画像の4隅の一部がケースに遮られて写らないことがあります。

Wifiドングルが不調でZero Wへ交換しました。

上記の追加基盤ですが、赤色自己点滅型LEDの点滅の周期がイマイチ気に入らなかったので普通の(自己点滅型ではない)LEDをzeroのGPIOから点滅制御できるよう回路を追加してみました。また、CDSセンサーをソーラーセルのそばに新たに取り付け、オペアンプを利用して照度センサーも追加しました。ただ、現時点では明るさによってLEDの照度を切り替えるぐらいなので、苦労の割にメリットはあまりありませんでした。(こういう事を私の住んでいる地方の方言で「おへんなし」と言います)

■ソフトウエアのインストール

raspberry-pi-OSをhttps://www.raspberrypi.org/downloads/raspberry-pi-os/ こちらからダウンロードしてbalenaEtcher https://www.balena.io/etcher/でフラッシュカードに書き込みます。

Raspberry Pi OS (32-bit) Lite
Minimal image based on Debian Buster
Version:May 2020
Release date:2020-05-27
Kernel version:4.19
Size:432 MB
2020-05-27-raspios-buster-lite-armhf.zip

こちらを使わせてもらいました

自宅のWifi環境でSSHを使い接続して作業しました。SDカード /boot に2つのファイル作成します。

ファイル名: ssh                   //中身は無し,SSHサーバが自動起動する
ファイル名: wpa_suppliant.conf      //UTF8N LF コード wifiへ接続
              country=JP
              ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
              update_config=1
              network={
           ssid="your SSID"        //SSDI
           psk="your PASSWORD"     //接続のためのパスフレーズ
              }

・RPi カメラモジュールをつなぎ、フラッシュメモリーをセットしてzeroを起動します。rspi-configを起動して各種設定を行います

$ sudo raspi-config
・camera support 5 Interfaceing OPtions - P1 Camera - Enable
・I2c support 5 Interfaceing OPtions - P5 I2C - Enable
・password change 1 Change User Password
・hostname 2 Network Options - N1 Hostname
・time zone 4 Localisation Options -I2 Change Time Zone - Asia - Tokyo
・Expand Filesystem 7 Advanced Options - A1 Expand Filesystem
・GPU memory 7 Advanced Options - A3 Memory Split - 128 --> 16

以上を設定した後にRPi-Cam-Web-Interfaceをインストールします。蛇足になりますが、安全のためにsshの待受ポートは設定変更した方が良いと思います。

・RPi-Cam-Web-Interfaceインストールは基本的にweb https://elinux.org/RPi-Cam-Web-Interface に書いてある通りに行いました。

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install git
$ git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
$ cd RPi_Cam_Web_Interface
$ sudo ./install.sh

web serverはlighttpを選択しました。

スタンドアロンで運用するためアクセスポイントソフト・DHCPサーバ設定を行います。なかなかうまく行かず、かなり試行錯誤しました。私の頭の中にある旧型低速 CPUが処理の限界を超えていましたので、記述が正確ではないかもしれません。

・ hostapd アクセスポイントソフトウエア設定 (参考URL) https://www.raspberrypi.org/documentation/configuration/wireless/access-point-routed.md

$ sudo apt-get install hostapd
$ sudo systemctl unmask hostapd
$ sudo systemctl enable hostapd
$ sudo vim.tiny /etc/hostapd/hostapd.conf     //エディタで編集します
       country_code=JP
       interface=wlan0
       ssid=NewSSID                //新たなSSIDをセット
       hw_mode=g
       channel=7
       macaddr_acl=0
       auth_algs=1
       ignore_broadcast_ssid=0
       wpa=2
       wpa_passphrase=NewPassWord //新たなパスフレーズ
       wpa_key_mgmt=WPA-PSK
       wpa_pairwise=TKIP
       rsn_pairwise=CCMP

・インターフェースアドレスの固定 (管理画面をアクセスするアドレスになります)

今回は 172.25.2.1 に設定しました

$ sudo vim.tiny /etc/dhcpcd.conf    //エディタで編集、最下行に追記
        …
       interface wlan0
       static ip_address=172.25.2.1/24  //お好きなネットーワークアドレス
       nohook wpa_supplicant

・ isc-dhcp-server DHCPサーバインストール (参考URL) https://qiita.com/homines22/items/cccd711c9a77680d1e2c

ネットワーク: 172.25.2.0 サブネットマスク:255.255.255.0 の設定を行いました

$ sudo apt-get install isc-dhcp-server
$ sudo vim.tiny /etc/dhcp/dhcpd.conf    //エディタで編集
        …
       #option definitions common to all supported networks...
       #option domain-name "example.org";              //コメントアウト
       #option domain-name-servers ns1.example.org, ns2.example.org; 
                                                       //コメントアウト
        …
       authoritative;   //#を外す
                        // 最下行に追記
       subnet 172.25.2.0 netmask 255.255.255.0 {
       range 172.25.2.2 172.25.2.20;
       option broadcast-address 172.25.2.255;
       max-lease-time 7200;
       ignore declines;
       }

$ sudo vim.tiny /etc/default/isc-dhcp-server //エディタで編集
                                             //最終行を変更
       INTERFACESv4 = "wlan0"
       INTERFACESv6=""

・isc-dhcp-server 起動問題を解決 (参考URL)

https://www.raspberrypi.org/forums/viewtopic.php?t=170758

$ sudo vim.tiny /etc/systemd/system/isc-dhcp-server.service
       [Service]
        …
       // Restart=no ------>この行を下記2行へ書き換え
       Restart=on-failure
       RestartSec=5

       // 最下行に追記
       [Install]
       WantedBy=multi-user.target

$ sudo systemctl enable isc-dhcp-server.service

・ipv6 無効化

$ sudo vim.tiny /etc/sysctl.conf  //エディタで編集
       // 最下行に追記
       net.ipv6.conf.all.disable_ipv6 = 1

リアルタイムクロック設定  RTC DS3231

  (参考URL) https://www.sigmdel.ca/michel/ha/rpi/guide_buster_03_en.html#rtc

$ sudo vim.tiny /boot/config.txt   //エディタで編集
  ...
  # Uncomment some or all of these to enable the optional hardware interfaces
       dtparam=i2c_arm=on
       #dtparam=i2s=on
       #dtparam=spi=on
       dtoverlay=i2c-rtc,ds3231     //追記します
 
$ sudo shutdown -r now                 //再起動

インストールされたかチェック
$ ls /dev/rt*                          //デバイスファイル作成されたか
       /dev/rtc  /dev/rtc0

$ sudo hwclock --verbose               //下記の表示がされるか
       hwclock from util-linux 2.33.1
       System Time: 1573672406.546382
       Trying to open: /dev/rtc0
       Using the rtc interface to the clock.
       Assuming hardware clock is kept in UTC time.
       Waiting for clock tick...
       ioctl(3, RTC_UIE_ON, 0): Invalid argument
       Waiting in loop for time from /dev/rtc0 to change
       ...got clock tick
       Time read from Hardware Clock: 2019/11/13 19:13:28
       Hw clock time : 2019/11/13 19:13:28 = 1573672408 seconds since 1969
       Time since last adjustment is 1573672408 seconds
       Calculated Hardware Clock drift is 0.000000 seconds
       2019-11-13 15:13:27.408018-04:00
     
 起動時にRTCから時間を読み込み
$ sudo vim.tiny /lib/udev/hwclock-set
       #!/bin/sh
       # Reset the System Clock to UTC if the hardware clock from which it
       # was copied by the kernel was in localtime.
                                    
       dev=$1
                                         
       #if [ -e /run/systemd/system ] ; then //コメントアウト
       #    exit 0                         //コメントアウト
       #fi                                   //コメントアウト                    ...

RTC初期設定
$ sudo date -s "2020/06/29 22:53:00"   //現在の日付・時刻をセット
$ hwclock -w && date && hwclock -r     //RTCに書込

■ 追加ハードの設定 (ここからは賢明な読者の方には不要な記述です。労力が多くて得るものが少ないです。)

zeroのGPIO pin1~pin12を使用します。GPIO18(OUTPUT)が自己点滅型LEDに変わる赤色通常LEDのコントロール。GPIO17(INPUT)が光センサーからの入力になります。

・wiring pi インストール (参考URL) http://wiringpi.com/download-and-install/

$ sudo apt-get install wiringpi

・system起動時に赤色LED点滅

$ sudo vim.tiny /etc/rc.local      //エディタで編集 
       // exit 0 の前に追記:
       gpio mode 1 pwm
       gpio pwm-ms
       gpio pwmc 4095
       gpio pwmr 4096
       gpio pwm 1 100

・ 明るさによりLEDの照度を変更

$ vim.tiny /SOME/PATH/illuminance_led.sh   //新しいファイルを作成
    !/bin/bash
       var=`gpio -g read 17`
       if [ "$var" = 1 ]
       then
       gpio pwm 1 100
       else
       gpio pwm 1 10
       fi
$ chmod +x /SOME/PATH/illuminace_led.sh   //実行権をつける

$ sudo corontab -e                  //rootでcronへ登録
       5 * * * * /SOME/PATH/illuminance_led.sh  //追記 5分ごとに実行

ソフトでLEDを点滅させているので、ひと目でraspberry pi zeroが動いているか否か分かる利点はあります。

RPi-Cam-Web-Interfaceで監視カメラ製作(画面にアノテーション編)

前回Raspberry Pi Zero WにセットアップしたRPi-Cam-Web-Interfaceではデフォルトで画面上側に日付と時刻が表示されていますが、これに加えて文字を表示させることができます。残念ながら現在のところ2バイト文字は表示されませんが、用途によっては役に立ちそうです。

今回は外気を測定して得られた温度・湿度・気圧を表示させます。秋月電子通商から購入したbme280をRaspberry Pi zero W につないで計測する予定だったのですが、Zero W本体の発熱の影響を受けてしまい正確に気温を測ることができませんでした。ESP8266以上に熱を持つようです。センサーは雨などで水に濡れることもNGなので設置場所に相当の工夫が必要です。少々甘く考えていました。残念ですが今回はあきらめます。

代わりに以前作製したESP-WROOM-02使用、温度・湿度・気圧計のMQTTデータを使います。本当はこれをZero Wにリプレースしたかったのでした。

自宅Debian jessie サーバで稼働しているMQTTブローカ Mosquitteに気温,湿度,気圧が約5分間隔でパブリッシュされています。サブクライブするそれぞれのトピックは 気温:/home/garage/Temperature/state 湿度:/home/garage/Humidity/state 気圧:/home/garage/Pressure/stateです。

RPi-Cam-Web-Interfaceでは /dev/shm/mjpeg/user_annotate.txt の内容が画面に表示される仕組みになっています。mosquitte_clients を使ったshell scriptをcronで15分ごとに起動させてMQTTデータを取得しファイル書き込みを行います。

■ Zero Wに最新版のmosquitte_clientsをインストールします

$ wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
$ sudo apt-key add mosquitto-repo.gpg.key

$ cd /etc/apt/sources.list.d/

$ sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

$ sudo apt-get update
$ sudo apt-get install mosquitto-clients

■ shell script 作製

$ cd ~
$ mkdir scripts
$ cd !$
$ vim.tiny mqtt_get.sh
------------------------------ 以下の内容を作成 ------------------------------
#! /bin/bash

RESULT=`mosquitto_sub -h SERVER_ADDRESS -C 3 -t /home/garage/Temperature/state -t /home/garage/Humidity/state -t /home/garage/Pressure/state`

printf "T:%.1fC H:%.f%% %.fhPa" ${RESULT} > /dev/shm/mjpeg/user_annotate.txt

SERVER_ADDRESSはmosquittoが動いているサーバのアドレスです

■ 実行権を与えてcronに登録します

$ chmod u+x mqtt_get.sh
$ crontab -e
------------------------------ ファイルの最後に追記 ------------------------------
# Edit this file to introduce tasks to be run by cron.
・
・
・
# m h  dom mon dow   command

*/15 * * * * ~/script/mqtt_get.sh

■ RPi-Cam-Web-Interface側の設定

Camera Settings > Annotation (max 127 characters) > %aを記入して OK

文字のsize等も調整できます。

webから情報を取ってきて表示させるなど、応用ができそうです。

raspberry pi zero W にRPi-Cam-Web-Interfaceで監視カメラ製作


前々回セットアップしたraspberry pi zero Wにwebカメラを装着します。動かすソフトはraspberry piに特化したRPi Cam Web Interface (現在 version 6.3.3)を使います。

URL: http://elinux.org/RPi-Cam-Web-Interface

特徴です(webサイトより)

  • 高いフレームレートでの表示,センサーの全エリア使用可能
  • カメラの明るさややコントラスト等を調節可能
  • mp4形式でフルHDビデオ画像をSDカードに保存
  • 静止画およびコマ撮り静止画をSDカードに保存
  • SDカードに保存した動画や静止画をプレビュー可能、サムネイルを指定してダウンロード,zip形式で一括ダウンロード可能
  • 動体検知して録画をする機能、スクリプトを実行する機能
  • 録画動作のスケージュール機能
  • 古くなった録画ファイルの自動削除等々

とても高機能です。カメラからの動画をブラウザ等でモニタできて、それと同時にSDカードに記録できます。動体検知して静止画やコマ撮り静止画、動画いずれかを書込み可能です。同時にスクリプトも実行可能なので、以前失敗したメール送信なども再びチャレンジできそうですね。

また、時間に応じてカメラの設定、録画方式等を変えるなどのスケージュール機能も備えています。経度、緯度を指定して日の出、日没を算出するユニークな機能も備えています。

このソフトはRasiperry Piカメラのみに対応していてUSBカメラには対応していないみたいです。

■ インストール作業
Raspian Jessie Liteをインストールした後に、上記サイトのBasic Installationに書かれているとおりに作業して問題なくインストールできました。ただ、サイトの最後の方にコマ撮り録画をスムーズにするためにgstreamerをインストールした方が良いと書いてあります。sudo apt-get install gstreamer1.0 コマンドでインストールできますが、しばし時間がかかります。

新規インストールするならばFullパッケージのインストールをお勧めすると書かれていたので、Lite ではなくRASPBIAN JESSIE WITH PIXELをインストールする方法を改めて試してみました。前回の記事に書いたように、wpa_supplicant.confを作成し、sshを自動起動させるようにすると、すべてSSH経由で作業できます。

etcher

etcher


[インストールしたOS]
2017-03-02-raspbian-jessie.img
RASPBIAN JESSIE WITH PIXEL 
Image with PIXEL desktop based on Debian Jessie
Version:March 2017
Release date:2017-03-02
Kernel version:4.4
Release notes:Link

■ OS をEtcherなどでSDカードに書き込み後、セットして電源を入れます 

・パスワードを変更します
$ passwd

・不要なパッケージを削除します
$ sudo apt-get remove --purge wolfram-engine scratch minecraft-pi sonic-pi dillo gpicview penguinspuzzle oracle-java8-jdk openjdk-7-jre oracle-java7-jdk openjdk-8-jre
$ sudo apt-get clean
$ sudo apt-get autoremove

・パッケージを最新にします
$ sudo apt-get update
$ sudo apt-get dist-upgrade

raspi-configを起動します
$ sudo raspi-config

・タイムゾーン設定
4 Localisation Options> I2 Change Timezone > Asia > Tokyo

・テキストログインへ変更&自動ログインを禁止
3 Boot Options > B1 Desktop / CLI > B1 Console

・カメラサポートを有効にします
5 Interfacein Options > P1 Camera > Yes

・github リポジトリをクローンしてRPi_Cam_Web_Interfaceをインストールします

$ git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
$ cd RPi_Cam_Web_Interface
$ chmod u+x *.sh
$ ./install.sh

途中、オプション選択画面になります。Webサーバは3種類の中からお好みで選択できますが、なるべく軽い方が良いかと思い,初めて使うlighttpdにしました。インストール後別のwebサーバにする時はクリーンインストールからやり直すことを勧めています。
また、Webの管理画面にBasic認証をかけるときはUser Passwordを入力します。
(※2018/01/21追記※ コメント欄で教えて頂いたのですが、現時点では認証動作を設定しても機能しないみたいです。)
webcam インストール

AutoStartを選ぶと電源投入後自動起動します。またRPi_Cam_Web_Interfaceフォルダの中のstart.sh stop.shでプログラムのスタート・ストップ可能です。update.shでプログラムのアップデート,remove.shでプログラムの削除となります。

■ カメラを接続します
わたしが購入したのはHD 1080P Camera Module Board 5.0MP Wide Angle Fish Eye For Raspberry Pi A/Bこちらです。(後で気付きましたが赤外線カメラでした)

5MP(2592×1944pixel)画素で 1080p/30fps 720p/60fps 640×480/90 のVideoを配信できます。さらに魚眼レンズ付きといううたい文句でした。どんな映像がとれるのか楽しみです。付属のカメラケーブルではzeroに取り付けられないので、あらかじめPiromoni社からZero用のカメラケーブルを仕入れておきました。ところが…

一瞬目がくらみました


やってしまいました!!カメラケーブル取り付けの時にプラスチック製の留め具を破損してしました。賢明な皆様はこのようなドジはしないと思いますが、お気をつけください。留め具は1mm~2mmぐらいしか動く範囲がありません。取り扱いはソフトにお願いいたします。

ケースは余裕をもたせTAKACHIのプラスチックケース SW-100にしました。電源ですがmicro-usbとGPIOの+5V,Gndどちらに接続しても同じらしいです。今回はGPIOの方にに給電しますが、くれぐれも結線間違いしないようにせねばなりません。+-を逆にしたり他のGPIOピンに電圧をかけたりすると壊れてしまいます。また、未確認ですが電源は3.3Vの電圧でも動作可能らしいです。
ケースに取り付け
さて、カメラとZero Wを結線して電源を入れます。ブラウザでアクセスするアドレスはhttp://ipAddress:port/subfolderとサイトに書かれています。macとwindows10ではipアドレスだけではなくホスト名.localでもアクセスできます。デフォルトの80番でインストールしたならば:portも不要です。

ただ、上記の記述に反し、意外にも今回私のインストール作業では http://raspberrypi.local/ (サブディレクトリなし)が管理画面になっていました。webサーバにlighttpdを選んだ時だけみたいです。インストーラーのバグでしょう。webサーバにapach,nginxを選んでデフォルトでインストールしたときは、マニュアル通りhttp://raspberrypi.local/html/が管理画面になります。

また、http://raspberrypi.local/min.php へアクセスするとコントロールボタン等は表示されず、カメラ画像だけが表示されまます。

ちなみにchrome v59.0 ,IE11,opera v44.0,firefox v51.0ではホスト名でアクセスできるのですが、なぜかMS Edge 38.14393 ではIPアドレスでしかアクセスできませんでした。

アクセスした画面にエラー表示が出るときは,カメラケーブルの接続が悪いか又はraspi-configでカメラを有効にしていない可能性があります。再起動で回避できることもあります。

RPi-Cam-Web-Interface管理画面です

■ 使い方
設定できるパラメータがたくさんあって、私は全部の内容を理解できていません。わかるところを簡単にご説明します。設定した値は System > reset Setting で元に戻すことができるので色々トライされることをお勧めします。(注 : schedule settingsはリセットされません)

[record video start/stop] 現在のカメラ画像の動画録画をスタート・ストップ
[record image] 現在のカメラ画像の静止画をキャプチャー
[tamelapse start/stop]  現在のカメラ画像のコマ撮りをスタート・ストップ
[motion detection start/stop] 動体検知録画をスタート・ストップ(Camera Settingで Motion detect modeをInternalにする必要があります)

※ 4/3 追記 設定項目は多数ありますが、とりあえず Camera Setting > Motion detect mode : Internal 次にmotion detection start だけで動体検知-動画(Video)録画することが可能です。ただ、このままだとSDフラッシュカードがいずれ満杯になってしまいますので、古くなったファイルの削除(後述)だけは、設定しておいた方が良いでしょう。

[Camera Setting]
Camera Setting

Resolutions: Video及び静止画,解像度等を設定します
Timelapse-Interval (0.1…3200): コマ撮りの間隔(秒)
Video Split : 動画を分割します(秒)
Annotation (max 127 characters): アノテーション デフォルトで日時が表示されています
Buffer (1000… ms), default 0: 動体検知して録画されるまでにタイムラグがあるので画像のバッファリングを予めおこないます(ms)
Sharpness: シャープネス
Contrast : コントラスト
Brightness : 照度
Saturation : 彩度
ISO : ISO感度
Exposure Mode : 露光モード
White Balance : ホワイトバランス
Image Effect : 画像にイフェクトをかけることができます 
Rotation : 90度単位で画像を回転させます
Sensor Region : 画像センサーの使う範囲を指定
MP4 Boxing mode : h264動画をmp4に変換するモード
Motion detect mode : 動体検出モード

MP4 Boxing mode は動画ファイルのmp4変換作業の選択で、backgroundにするとブラウザで動画を再生することができますが、CPU処理を消費してしまい反応が遅くなります。offにするとブラウザでは見ることができずダウンロードしてからVLCメディアプレーヤーなどで再生することになります。その場合でもサムネイルは作成されます。

Motion detect mode : Internalにすると Motion Settingsのボタンが出現して動体検出の設定ができるようになります。

アノテーションはデフォルトで日時が表示されますが、スクリプトを組んで他の情報も表示させることが出来るみたいです。

[Motion Settings]
Motion Settings

動体検知のセッティングです。風で木の枝が動いたことなどで録画スイッチが入ってしまうとか、細かく考えると動体検知の調整は少々めんどうです。ただ、デフォルトのままでも動体検知しますので詳細にセットしたい時だけ値を変更するのが良いと思います。

Noise level : ノイズと動きを区別するために画像をフィルタします
Threshold : 画像変化の検知基準をpixl数でセットします
Clipping factor : Thresholdで変化のあったフレームを何個で有効とするかの値
MasK Image: 不検知部分のファイルを作成して、動体検知の範囲を絞ります。ファイル形式はPGMで画像と同じ幅,高さでなければいけません。
Changes Frames to start : スタートとなる動体検知のフレーム数
Still Frames to stop : ストップとなる動体不検知のフレーム数

自分の理解ではスレッショルドを超えたフレーム数が(Changes Frames to start)×(Clipping factor)個になった時にスタートとなるのではないかと思います。誤っていたらすみません。

[System]

シャットダウンやリブート、[Camera Setting]と[Motion Settings]パラメータのリセットができます。Default Stream とMJPEG Streamの切り替えもありますが、何が違うのか私にはわかりません。

[Edit schedule settings]
Edit schedule settings
指定した時間にカメラの感度等などの設定や記録する方式を変更するなど、コマンドを実行することができます。Command referenceのボタンを押すと実行できるコマンドの説明が出てきます。デフォルトは24時間休みなく動体検知したときに動画を記録する設定になっています。管理画面トップのmotion detection start ボタンをクリックすると動体検知録画がはじまります。起動と同時に動体検知する場合はこの画面のPeriod Start欄に md 1を書き込みます。

MOtion Start Stopの欄ですが、コマ撮りをしたいときはca 1をtl1 ,ca 0 を tl 0 に変更します。同様に静止画1枚を撮りたいときときはca 1を
imに変更します。

Days Su-Sa 欄のチェックは日曜日から土曜日に対応して、曜日による動作指定です。チェックがない曜日はその右にかかれている動作を行いません。

● 録画した画像ファイルがSDカード容量を超えてしまうのを防ぐためにファイル削除機能があります。2通りの設定方法があります。
1. PurgeVideo_Hours PurgeLapse_Hours PurgeImage_Hours それぞれ動画、コマ撮り静止画、静止画が指定時間以上古いファイルを消去します。48を指定すると2日以上たったファイルは消去されます。
2. ファイルの最大の記録スペースを指定して、それを超えた時に古いファイルから消去する方法。
PurgeSpace_ModeExを下記のいずれかで選んで値を PurgeSpace_Levelに設定します。
Min Space % (書込み可能ファイル容量の最小値 パーセント)
Max Usage % (使用済ファイル容量の最大値 パーセント)
Min Space GB (書込み可能ファイル容量の最小値 ギガバイト)
Max Usage GB (使用済ファイル容量の最大値 ギガバイト)

このファイル削除作業はManagement_Interval に設定された秒数(デフォルトでは1時間)ごとに行います。
同時に実行させたいスクリプトがもしあれば、Management_Command を指定します。このスクリプトはインストールしたサブディレクトリ下にあるmacroディレクトリに保存されていて、実行可能でなければなりません。

● DayModeはAll Day(全日)の他に Sun Based (日の出、日の入りの時間を基準) Fixd Time(特定の時間指定)があります。

Sun Based DayMode

Sun Based DayMode

Sun Based DayMode は一日をDawn(明け方),Day(日中),Dusk(夕暮れ),Night(夜中)の4つに区切ります。日の出を基準にDawnStart_Minutes(負の値) DayStart_Minutes を設定して明け方の時間を定めます、日の入りを基準にDayEnd_Minutes DuskEnd_Minutes を設定して夕方の時間を定めると、4つの時間帯が定まります。

日の出、日の入りの時刻は自動的に計算されますが、そのために Latitude(緯度) Longtitude(経度) GMT時間との差を指定します。東京の例をとるとLatitude=35,Longtitude=139,GMTOffset=9 になると思います。

Period Start欄にその時間が来たら実行させたいコマンドを設定します。

Fixed Times DayMode

Fixed Times DayMode

Fixed Times は時間固定で指定です。

●またログファイルの操作もここで行うことが出来ます。

[Download Videos and Images]Download Videos and Images

録画したファイルのサムネイルが表示されます。プレビューをしたり、必要なファイルのダウンロードを行います。先ほど述べたようにMP4 Boxing modeがBbackgroundになっていないと、動画のプレビューはできません。

■ 感想
とても使いやすく、動体検知録画もできるので非常に便利です。以前作ったESP-WROOM-02+Arducamではパワーが足りませんでしたが、今回はとってもいい感じです。まだ、長時間使っていませんが、Zeroのスペックでデータの通信がwifiでも十分実用になりそうです。素晴らしいソフトを作ってくださった作者の方に感謝します。

■ またもや失敗談
夜、蛍光灯の下で撮影する時は問題なかったのですが、昼間日光の元で撮影すると全く色合いがおかしいことに気付きました。最初は理由がわからず、一生懸命色彩の調整を行い無駄な努力をしていましたが、このカメラはナイトビジョンだったのですね。他の方の記事を読んで、ようやく理解できました。自然光では色が変で、画像もぼけた感じになってしまいます。写る角度(範囲)は広いですが、選択間違いでした。とりあえず映像はわかりますので、しばらく使ってみたいと思います。

自然光では色が変です

部屋を暗くして赤外線LEDライトをあててみました