太陽光発電_監視カメラ



Sitemap | Profile | タグ一覧
最近の更新
ドライランのありがたみを改めて知る
2024/04/04
伊豆半島
2024/03/31
お出かけチェックリスト
2024/03/29
Ruby
2024/03/27
Kubernetes
2024/03/22
音楽データをDisplayAudioで聞く
2024/03/09
Redmine
2024/02/05
git
2024/02/02
経済
2024/01/08
どうする家康
2023/12/17
MX-Linux
2023/11/06
國體関連学-休学のご連絡
2023/08/13
Debian
2023/08/02
CentOS
2023/06/13
Dell-XPS13
2023/05/23
ベルト
2023/05/18
SourceForge
2023/04/17
確定申告
2023/02/19
さらば「まぐまぐ」
2023/01/09
風猷縄学
2022/11/23


[-] 1. 発端

太陽光仲間の間で話題になる太陽光発電での監視装置。

用途は意外と色々あって、

こんな写真を見せられると、どうしても監視カメラを付けたくなってしまう: TODO

で、僕もカメラを取り付けたいと思った次第。

[-] 2. 要件

遠隔地、という大前提がある。これがないとそもそもカメラも不要かも。

  1. 絶対必要
    1. 屋外用
    2. 防水: IP66以上
      • IP66 で十分なようだ。
    3. 録画
      • NASへの保存ができれば尚良し。
      • 録画した映像の99%は捨てることになると予想している。 逆に言うと、必要なのは災害や犯罪の時だけだ。
      • なので、リアルタイムに遠隔地のサーバ(やクラウド)に動画を送るのは 非常にもったいない設計だと思う。99%捨てているのだから。 基本、カメラ近くのローカルストレージに貯めておき、 必要に応じて別途コピーできれば良いと思っている。
    4. 動体検知
      • SMTP か HTTP 接続は必須。
    5. 安価な通信費
    6. 遠隔監視機能
  2. あるといいもの
    1. 100万画素以上
      • 防犯用途を考えれば数十万でもいいのかもしれないけど、 ここはちょっとこだわりたい。
    2. パン・チルト・ズーム
    3. 光学ズーム
      • 色々と機能が欲しくなるけど、多分通常稼働に入るとほとんど使わないと予想。
    4. 夜間撮影
      • 盗難とかを考えると、あるといいかな、と。 ただ、人の気配もない全くの山奥とか原野ではなく、 隣家が点在するのどかな丘陵地帯で、人の目がある、というのは心強い。
  3. 問わないもの
    1. フレームレート
      • 監視用途で、撮影速度を問うものではないから。 強いて言えば 10 fps あれば十分。
  4. 要らないもの
    1. wifi
      • モバイルルータに有線でつながればいいので、逆に wifi は要らないかな。

[-] 2.1. 帰結

  1. デジタルカメラ
    • IPかUSBかはさておき、絶対条件の録画や動体検知を考えると、 デジタルカメラがいい。
    • デジタルカメラしか念頭になかったけれど、逆に、 アナログ式もあることを知った次第ではあった。

[-] 2.2. 余談: motion は却下

motion という Linux 上の動体検知ソフトがあるけど、 これは使用しない結論になった。

理由は、motion はもともと Linux OS の走る PC につながる web カメラ (USB / PCカード経由)に、VOL(Video On Linux) API を経由してアクセスし、 そこから動体検知や mpeg 保存をしてくれる、というのが基本。

そこに付加機能として IPカメラも接続できるのだけど、この場合 mjpeg しか扱えないことが分かった。 mjpeg は圧縮率が mpeg4 より格段に悪く、あまり使いたくないフォーマットだったのだ。

また、監視カメラ → Linux で監視できるといいね → motionという動体検知ソフトがあるよ、という流れで随分 motion を評価してしまったけど、だんだん迷走してしまっていたことにハタと気づいたのだった。

よく考えると、Linux である必要も motion である必要もなかった。

最近の IP カメラには自前で動体検知機能が付いているし、 mjpeg より数倍圧縮率の高い mpeg, 一桁圧縮率の高い H.214(?) を提供してくれている。

この機能をそのまま使えばよいのだった。

[-] 3. 市場調査

[-] 3.1. safie

https://safie.link/

格安クラウド型監視カメラサービス

常時データをクラウドサーバに上げるアーキテクチャになっていて、 伝送容量が足りるのか気になっていたけど、やはり…だった:

5G[Byte/日] !!

月 5 * 30 = 150G[Byte/月]!!

月2Gの格安スマホを使っている僕にとっては富豪過ぎた(^^;。

ちなみに、僕の手元に置いてある評価用カメラ(corega CG-NCVD031A) は 200Mピクセル。30fps で 14G[Byte/日] 使うし、2fps でようやく 4.5G[Byte/日]

謎が解けたし、このような富豪的使い方は僕の好みではなかった。

ということで、

  • Camera + Localインテリジェント

で進めようと考えている。

Localインテリジェントとは勝手に名付けたけど、 「通信コストを抑えるために、なるだけ Camera 内LAN で処理をする」の意。 具体的には

  • メインの保存先はローカル
  • 必要に応じて動体検知
    • 動体検知前後の動画はすぐ観れること
  • 通常の監視は、半リアルタイムでよい(1静止画/1〜60分程度?)

…と言った辺りだ。

最近のデジカメは動体検知機能があるので、その機能をそのまま使う。 他方、帯域を制限しつつ決めの細かい通知機能をつけようと思うと、 どうしても既存機能では不十分で、そこで Rasberry-PI + プログラム、 の出番となる。

ざっと見たところ、RassberryPI zero で良さそう。

[-] 4. SI(System Integration)

[-] 4.1. 購入

[-] 4.1.1. corega CG-NCVD031A

買った後で気づいたけど、このカメラ、パン・チルト・ズームがついてなかった…orz

[-] 4.1.2. RasberryPI zero

  • amazon には、単体を ¥5,000 で売るボッタクリがいるそうで。 皆、怒りの「評価1」を付けている。
  • で、 https://shop.pimoroni.com/products/pi-zero-complete-starter-kit で購入。 こちらは Complete Starter Kit £20 + 送料£5.5 = £25.5 (¥4,101 , 160.8 ¥/£)で ACアダプタ(各国対応), USB A→MicroB 変換ケーブル, ケース, 8G MicroSD(OSプリインストール), micro HDMIアダプタ付き。
  • 6/23 (6/24 のEU離脱ショック直前)に買ったのだった。 ショック直後のポンド急落した後だったらもう少し安く買えたかも(^_^;)
  • 7/4 には家に着いた。11日で着いた計算になる。
[-] 4.1.2.1. セットアップ

凡例

M$:母艦プロンプト
$:Raspberryプロンプト
  1. https://www.raspberrypi.org/downloads/raspbian/ から Raspbian Jessie LITE をダウンロード
    Version:May 2016
    Kernel Version:4.4
  2. インストールドキュメントはこちら。 RaspberryPI ホームページからは辿れなかったなぁ…:
  3. 僕の環境(Lenovo Thinkpad X250, Ubuntu 16.04)では: SDCard は /dev/mmcblk0 (dmesg で分かる)。なので
    M$ sudo dd bs=4M if=2016-05-27-raspbian-jessie-lite.img of=/dev/mmcblk0
  4. boot
    • USBキーボード&HDMI無しで行う方法
      1. partition を確認。僕の場合は /dev/mmcblk0p2
        M$ sudo fdisk -l /dev/mmcblk0
        デバイス       起動  Start 最後から セクタ  Size Id タイプ
        /dev/mmcblk0p1        8192   137215  129024   63M  c W95 FAT32 (LBA)
        /dev/mmcblk0p2      137216  2709503 2572288  1.2G 83 Linux
      2. Linuxをマウント
        M$ sudo mount /dev/mmcblk0p2 /mnt
      3. 固定IP設定。僕の環境は 192.168.0.* のプライベートアドレス。 そこに 192.168.0.202 固定IPを振る場合:
        M$ sudo vi /mnt/etc/dhcpcd.conf
        interface eth0
        static ip_address=192.168.0.202/24
        static routers=192.168.0.1
        static domain_name_servers=192.168.0.1
      4. umount
        M$ cd
        M$ sudo umount /mnt
      5. microSD を挿し、LAN を接続、power ON
      6. ssh ログイン
        M$ ssh pi@192.168.0.202
        pi@192.168.0.202's password: raspberry
    • USBキーボード&HDMIでのセットアップ
      1. microSD を挿し、power ON
      2. login は以下のようだ(document からは見つからなかった):
        login:pi
        password:raspberry
      3. ネット接続。 以降、USBキーボード・マウス・モニタが不要になり、ssh 経由での作業が 出来るようになる:
      4. sshd は既に動いているよう。
      5. 固定IP割当。192.168.0.202 に割り当てる場合。
        $ sudo vi /etc/dhcpcd.conf
        interface eth0
        static ip_address=192.168.0.202/24
        static routers=192.168.0.1
        static domain_name_servers=192.168.0.1
        shutdown し、LAN をつなげて再度電源を on
  5. パスワード変更
    $ passwd
    注: USBキーボード&HDMI無しで行う方法の場合、boot から ssh ログイン までの間に LAN 経由で他人がログインして pi ユーザパスワードを勝手に 変えてしまうリスクが存在する。
  6. raspi-config
    $ sudo raspi-config
    1. ディスク拡張: 1(Expand Filesystem) && reboot
      • USBキーボード&HDMIの場合、ディスク拡張は既に行われていたようだけど、 ssh ログインの場合そうなってなかったので、実行。
    2. Locale: raspi-config > 5(Internationalisation Options) > Change Locale > ja_JP.UTF-8
    3. タイムゾーン: raspi-config > 5(Internationalisation Options) > Change Timezone > Asia > Tokyo
    4. Finish
  7. apt-get update && apt-get upgrade
    $ sudo apt-get update && sudo apt-get upgrade
    $ sudo apt-get autoremove                       # 不要モジュールの削除
    $ sudo shutdown -r 0                            # リブート
  8. git インストールし、/etc/ を履歴化(詳細略)
  9. pi はログインさせないようにし、個人ユーザ([MyName]とする)を別途作成。 知られているアカウントを避け、外部からの攻撃のハードルを一段上げる目的。
    1. 個人ユーザ追加
      $ sudo adduser --uid [NNNN] [MyName]
    2. sudo権限を与える
      $ sudo adduser [MyName] sudo
    3. [MyName] でログイン出来ることを確認
    4. パスワードログインを禁止する(詳細略)
    5. pi ユーザを今後ログインさせないようにする → /etc/passwd の該当行の shell を /bin/false に変更
    6. 動作確認
      1. リブート
      2. [MyName] で公開鍵方式でログイン出来る
      3. pi でログイン出来ない
  10. ntp は LAN につながれば自動で対応してくれているようだ。

[-] 4.1.3. Aterm MR04LN

DMM だと ¥23,000, Amazon の方が安いなぁ。

[-] 4.1.4. SIM

  1. DMM 1G を契約した。
  2. 契約時、microSIM を選ぶこと。

[-] 4.2. ソフトウェア

既成品前提なので、足りない機能を RasPI と知恵で補う、 というアプローチを取る。

[-] 4.2.1. カメラ設定

  1. イベント > 録画形式 > トリガ時間: 300[秒]
    • 5〜300秒の範囲で設定可能。
    • この値、マニュアルに載ってないので意味不明だけど、 どうやら、動体検知後の一休み期間のようだ。 動体検知後の一休みがないと、猫(^_^;)とか泥棒が暴れまわっている間、 通知メールの嵐になってしまう。 それを防ぐのがこのパラメータ。
[-] 4.2.1.1. 足りない部分をどう補うか

これら要件:

  1. 動体検知
  2. 安価な通信費
  3. 遠隔監視機能

…は、カメラ自身の機能だけではどうしても満たせない。

例えば、動体検知は既存機能にあるけど、それをどう通信費を抑えて通知するか。 通知後、すぐ見れるか、となると難しい (safieは通信量を犠牲にしている)。






Generated by juli 2.3.2