2026年時点で組み直す場合の推奨構成
この記事後半は2018年当時のカメラ、Internet Explorer 11、FTPを使った実機記録です。現在新規に構築する場合は、管理画面をインターネットへ公開せず、カメラとRaspberry Piを同一の保護されたLANに置く構成を推奨します。
- ONVIFまたはRTSP対応のIPカメラを選ぶ
- Raspberry Pi 4/5とRaspberry Pi OS 64-bitを使用する
- 保存先はmicroSDではなくUSB SSD・HDDを優先する
- FTPではなくSFTP、またはRaspberry Pi側からの取得処理を使う
- 保存期間と空き容量の監視、古いファイルの自動削除を設定する
セキュリティ上の注意
- カメラの初期パスワードを必ず変更する
- 管理画面、RTSP、SSHをルーターで直接ポート開放しない
- 外部から見る場合はVPNを利用する
- 製品のファームウェア更新と時刻同期を確認する
旧機器の再現手順として価値があるため従来部分は残していますが、IE11を前提とした設定画面は現行環境では利用できない場合があります。
関連する確認手順
今回は夏の自由研究的な取り組みとして自宅の屋外にIP監視カメラを取り付けて、画像・動画データをファイルサーバ(Raspberry PiのNAS)に保存し、内部ネットワークのWindows端末から閲覧できるようにしたいと思います。 Raspberry Piの入門的な操作はしてみたものの、何をつくればよいのか?と活用法をお探しの方にもおススメです。目標
- カメラを設置して画像・動画を撮影する
- 撮影した画像・動画を家庭内ファイルサーバに保存する
- ファイルサーバをNAS化して家庭内の各端末から閲覧出来るようにする
ラズパイ・カメラシステムの必要機材
今回はRaspberry Pi系で良く使われているカメラモジュールでは物足りなかったので、Wifiで接続できるIPカメラを購入しました。それ以外は、極力自宅の余りものを活用してシステムを構築しますので、モデルが若干古かったりしますが、ご了承ください。新しいものを使えるならその方が良いかと思います。カメラ Ctronics CTIPC-245C1080PWS
カメラはAmazonで新調しました。200万画素で6000円台の割にレビューも良かったので、こちらを購入しました。実際の映像は夜中の赤外線カメラも明瞭で良かったです。
このカメラは動体検知もでき、動いたものを検知した時だけ写真を撮る・録画する・メール通知 といった事が可能です。検知エリアや検知レベルの設定も可能なのでおススメです。
今回は、屋外から家庭内NASにFTP転送しますが、スマホアプリとの連動もありWifi範囲内ならスマホでもライブ確認が可能です。
個人的グッドポイント
- 200万画素で赤外線映像も良好
- Wifi感度は割と良好
- サポートのメール返事が早い(外国の方が頑張ってくれてる感はある)
個人的バッドポイント
- 動画の形式が独自形式なので一般のプレイヤーで見れない
- 設定がやや分かりにくい
- 転送プロトコルがFTPのみ
Raspberry Pi B+
ちょっと古いですが、単純なNAS用途だけなら全く問題ありません。新しいRaspberry Piなら、なお良しです。NAS構築の際にRaspberry Piのバージョンによって一番問題化する点としては、供給電源量の問題です。この辺りは他に記載されているサイトもありますので、詳しくはそちらをご覧ください。
要点としては、古いRaspberry Pi は世代によってUSBの供給できる電力量が随分違います。古いタイプでHDDを起動しようとすると、電力不足で不安定になる可能性もあります。RaspberryPi上での設定変更(config)で、供給電源量を変更することも可能ですが、こちらも動作が不安定になる可能性もあるようです。
| Raspberry Piモデル | 電源供給量 |
|---|---|
| Raspberry Pi 1 Model A | 0.7 A(3.5 W) |
| Raspberry Pi 1 Model A+ | 0.7 A(3.5 W) |
| Raspberry Pi 1 Model B | 1.2 A(6.0 W) |
| Raspberry Pi 1 Model B+ | 1.8 A(9.0 W) |
| Raspberry Pi 2 Model B | 1.8 A(9.0 W) |
| Raspberry Pi 3 Model B | 2.5 A(12.5 W) |
| Raspberry Pi 3 Model B+ | 2.5 A(12.5 W) |
| Raspberry Pi 4 | 3 A(15 W) |
SDカード SanDisk 8GB
今回はそれほど大容量を必要としないので(IP監視カメラの画像・動画は1週間で消すので)、余ってたSanDiskのSDカード(8GB)を使うことにしました。(1週間程度の記録であれば結果的にこれで十分でした。)
SDカードなので消費電力少なく動作も安定しています。
SDカードアダプタ
こちらもSanDisk SDカードの付属品です。
microSDカード 16GB(SDHC)
今回SDカードを2枚使用しますが、このmicroSDカードはカメラ内に搭載用のカードです。こちらはSDカードではなくmicroSDカードです。 カメラ(Ctronics CTIPC-245C1080PWS)では、内部にmicroSDカードを搭載し動画などはいったんSDカードに溜める仕様のようです。ラズパイ・カメラシステムのシステム構成
上図の通りの単純な構成で、全てローカルネットワークに属します。監視カメラの設置場所までは、なんとか自宅のWifiが届いていました。監視カメラ・NASには内部からしかアクセスできません。
外部からも見たい用途が出てきたら、Raspberry PiからLINEにPushするなり考えようと思います。
カメラ設定手順
- カメラの組み立て
- 初期設定
- ネットワーク設定
- アラーム設定
- FTP設定
カメラの組み立て・設定
まずはカメラを箱から取り出してみます。
中身は上記で全てです。電源以外は、有線LANでも接続できるようケーブルもついていますが、今回はWifiを使いますので、電源のみのシンプル配線です。SDカードはカメラ内部の基盤に直接差し込むので、取り外しは結構面倒です。カメラにSDカードを入れて電源ケーブルを接続したら、以降は外部からリモートで設定をしていきます。
カメラの初期設定
カメラの説明書に従ってiPhone端末から指定のアプリを使って初期設定を行います。こちらは指示通りの操作なので大して問題はありません。(説明書通りなので割愛します)
カメラのネットワーク設定
カメラの良くわからない仕様なのですが、Windows端末からはIE11でしかアクセスできないようで、ここからはIE11を使って詳細な設定をしてきます。まずはカメラのネットワーク設定を行います。今回はIPアドレスを、192.168.0.100に固定します。
カメラのアラーム設定
SDカードに保持するか、FTPで転送するか、メールでお知らせするか等の設定を行います。今回はFTP転送がメインです。画像だけはFTPだけを選ぶことも出来ますが、動画はFTP転送だけは出来ず、いったんSDカード保持が必須のようです。
カメラ→ラズパイNASへのFTP設定
今回はRaspberryPiで制作したNASに飛ばす予定なので、画像の通りの設定です。今のところ転送先のNASが存在しないのでTestボタンを押してもFailedとなります。(先にNAS作れば良かった)
一応これで基本的な設定は完了です。あとは好みの問題もあるので、各自お好みの仕様にしてみてください。
仮置きでテストしてみた時の画像です。屋外や夜中も赤外線で割とはっきり撮れています。録画された動画も割と鮮明でした。(実際の運用開始後画像・動画は諸事情で載せれませんのでご了承ください)
Raspberry Pi + SDカードの NAS構築手順
- SDカードフォーマット
- SDカードマウント
- Samba設定
SDカードフォーマット
WindowsでもRaspberryPiでもフォーマットは出来るのですが、今回はWindowsでSDカードをフォーマットしました。
基本的にはWindows環境からのアクセスしか考えていませんので、ファイルシステムは NTFS とします。カメラ搭載のSDカードでも触れましたが、カメラの画像ファイルは100KB程度なので、あまり大きなアロケーションユニットサイズにすると結構無駄が出ます。あまり小さくすると、大きなファイルを扱う際に遅くなる恐れもありますが、ここでは最小の512byteとします。それでは、SDカードをRaspberry Piに接続します。
USBで接続したSDカードが認識できているかを確認します。ディスクのリストを一覧表示してみると最後のsda1で認識されました。
pi@raspberrypi:~ $ sudo fdisk -l | grep /dev/
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram4: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram5: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram6: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram7: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram8: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram9: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram10: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram11: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram12: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram13: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram14: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors
Disk /dev/mmcblk0: 14.7 GiB, 15720251392 bytes, 30703616 sectors
/dev/mmcblk0p1 8192 2474609 2466418 1.2G e W95 FAT16 (LBA)
/dev/mmcblk0p2 2474610 30703615 28229006 13.5G 5 Extended
/dev/mmcblk0p5 2482176 2547709 65534 32M 83 Linux
/dev/mmcblk0p6 2547712 2682879 135168 66M c W95 FAT32 (LBA)
/dev/mmcblk0p7 2686976 30703615 28016640 13.4G 83 Linux
Disk /dev/sda: 7.6 GiB, 8168931328 bytes, 15954944 sectors
/dev/sda1 * 8192 15954943 15946752 7.6G 7 HPFS/NTFS/exFAT
Raspberry PiにSDカードマウント
次にマウントポイントを作成して設定し、SDカードをマウントします。今回はSanDiskのSDカードでしたので、sandiskとしました。(内容は各環境で読み替えてください) OSはRaspbianベースの記載です。CentOSなどRedhat系の場合は、以降のコマンドで多少違う所があるかもしれません。sudo mkdir /mnt/sandisk
sudo mount /dev/sda1 /mnt/sandisk
もし以下のようなエラーが出た場合は、再起動にマウント出来るようにして再起動します。(再起動後にもう一度マウントを再実施)
Mount is denied because the NTFS volume is already exclusively opened.
The volume may be already mounted, or another software may use it which
could be identified for example by the help of the 'fuser' command.
sudo cp -p /etc/fstab /etc/fstab.org
sudo shutdown -r now
マウント処理でエラーが出なければ、以下のコマンドで正しくマウントされているかどうか確認できます。
pi@raspberrypi:~ $ df -k
/dev/sda1 7973376 25515 7947861 1% /mnt/sandisk
上記のように表示されれば設定されています。次に再起動後もマウント情報が消えない設定をしておきます。
以下のコマンドで設定ファイルを開きます。
sudo nano /etc/fstab
設定の最終行に、以下を追加しておきます。(tab区切りなので注意、0の前は半角スペース)
/dev/sda1 /mnt/sandisk ntfs-3g defaults 0 0
Ctrl+X, yEnterで設定終了です。
設定が終了したら、一度再起動してみます。
sudo shutdown -r now
再起動後も、設定したディスクが表示されていればディスクの設定は全て完了です。
Raspberry PiにSambaを設定
ここからはWindows端末からアクセス出来るようにSambaの導入に入ります。まず以下のコマンドでSambaをインストールします。sudo apt-get install samba
sambaの設定を行います。以下で設定ファイル最後尾に以下の設定を追加します。
sudo nano /etc/samba/smb.conf
[RaspNAS]
comment=SANDISK
path=/mnt/sandisk
public = Yes
read only = No
writable = Yes
guest ok = Yes
force user = pi
Ctrl+X, yEnterで設定終了です。以下でsambaを再起動します。
pi@raspberrypi:/mnt/sandisk $ sudo service smbd restart
これでエラーが出ていなければ、Sambaの設定は完了です。試しに、同ネットワーク上にいるWindows端末で、アドレスバーに以下のアドレスを打ち込んでみます。
\\192.168.0.81
すると RaspNAS ディレクトリを確認できました。ファイルの追加・削除も出来ております。
カメラ→ラズパイNASへのFTP設定(再)
今回採用したカメラの仕様上、SDカードへの書き込み以外の転送手段としてはFTPプロトコルの送信のみなので、FTPでRaspberryPiのNASに対してファイルをアップさせます。FTPでのやりとりは平文なので本来は暗号化すべきですが、内部ネットワークだけで完結する仕組みなので今回は良しとしました。(NASの話よりこちらを先にすればよかったと若干後悔) まずはvsftpdをインストールします。sudo apt-get install vsftpd
そのままだと、カメラ側からどうしても接続できなくてサポートにも確認しながら、あれこれ試しましたが、最終的にはvsftpd.confの設定を変えたら正常作動しました。(多分これだったと思うけどちょっと自信無いのでダメだったらログ見てください)
pi@raspberrypi:/etc $ sudo vi /etc/vsftpd.conf
- #ascii_upload_enable=YES
- #ascii_download_enable=YES
- #write_enable=YES
+ ascii_upload_enable=YES
+ ascii_download_enable=YES
+ write_enable=YES
設定が完了したらFTPを起動します。
pi@raspberrypi:/etc $ sudo systemctl restart vsftpd
sudo systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-07-10 01:25:37 JST; 2min 19s ago
Process: 2320 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 2321 (vsftpd)
Memory: 2.2M
CGroup: /system.slice/vsftpd.service
├─2321 /usr/sbin/vsftpd /etc/vsftpd.conf
├─2332 /usr/sbin/vsftpd /etc/vsftpd.conf
└─2338 /usr/sbin/vsftpd /etc/vsftpd.conf
7月 10 01:25:37 raspberrypi systemd[1]: Starting vsftpd FTP server...
7月 10 01:25:37 raspberrypi systemd[1]: Started vsftpd FTP server.
これでWindows端末からFTPでもつながります。
写真はWindowsからのWinSCPクライアントでのFTP接続確認。
改めて、Windows端末からIE11でカメラ(192.168.0.100)にアクセスして、FTP設定でTestしてみると、successとなりました。
実際にカメラからデータも送られてきています。画像は定期で送られてきますが、動画は動作検知した時のみ送られてくる仕様だそうです。(サポートにも確認しました)
NASの実物です。Raspberry Pi と SDカードだけなので非常にコンパクトです。今回はRaspberryPiと余っていたSDカードで制作しましたが、データはクラウドに保存とかサーバ機を使えるなら本来はそちらの方が良いと思います。
ラズパイ・カメラシステムのファイル管理
今回のNASは8GBと容量は少なめなのもありますが、容量に関わらずいつかは一杯になってしまうので、古いデータを削除する必要が出てきます。今回はRaspberryPiにシェルスクリプトを仕込んで削除することにしました。cronで毎日夜中に起動して5日間より前のものは削除する設定です。(何かあったときに見る程度なので、5日以上前のデータを残しておいてもどうせ見ないので)pi@raspberrypi:~ $ vi /home/pi/sandisk_remove.sh
#! /bin/sh
date1=`date "+%Y%m%d" -d "5 day ago"`
logdir="/mnt/sandisk/camera/"
sudo rm -rf "$logdir$date1"
スクリプトは上記のような感じです。5日経過したディレクトリをrmコマンドで削除しています。rmコマンドを使用していますので、流用する場合は自己責任でお願い致します。
pi@raspberrypi:~ $ crontab -e
00 4 * * * sh /home/pi/sandisk_remove.sh
後はcrontabに仕込んで毎日AM4:00に起動させます。
さすがに容量的に少し厳しめなので、将来的にSDカードからノートPC用のHDDに変更するかもしれません。(マウントの方法はSDカードと変わりません。)


