Raspberry Piでペット監視カメラをつくる (Raspberry Pi Zero 2 W対応)

---

## はじめに

我が家では犬を飼っているのですが、外出先はもちろん、同じ家の中でリモートワークをしているときにも別の部屋にいる愛犬の様子が気になります。そこで本記事では、Raspberry Piを使って自作の「ペット監視カメラ」を構築する方法を紹介します。  
今回は安価で小型な Raspberry Pi Zero 2 W の活用にフォーカスし、MotionEyeを導入して外出先からも映像を見られるシステムを構築します。そして安価に入手できる Freenove 5/8MP Camera などを使う場合のポイントも説明します。

---

## 1. プロジェクト概要

- **目的**
  - 外出先から、または同じ家の別室からペット（犬）の様子を確認したい  
  - 必要に応じて録画・動体検知などを行いたい

- **使用機器**
  - **Raspberry Pi Zero 2 W**  
    - 小型・省電力でWi-Fi内蔵、狭いスペースに設置しやすい  
  - **カメラモジュール**  
    - USBカメラ（UVC対応）  
    - **CSIカメラ**（例：公式Camera Module V3、Freenove 5/8MP Cameraなど）  
  - **microSDカード**（16GB以上推奨）  
  - **電源アダプター**（公式推奨）  
  - **Raspberry Pi OS**（GUI版 or Lite版）  
  - **MotionEye**（監視カメラ用ソフトウェア）

以下のようなシステム構成を想定しています。

```mermaid
flowchart TD
    A[カメラモジュール<br>USB or CSI] --> B[Raspberry Pi Zero 2 W<br>MotionEye]
    B --> C[LAN内アクセス<br>ローカルIP]
    C --> D[外部アクセス<br>ポート開放/VPN/Ngrok]
    D --> E[PC/スマホから映像閲覧]
    C --> E
```

---

## 2. ハードウェアの準備

### 2.1 Raspberry Pi Zero 2 W

- **省スペース・低消費電力**でWi-Fi内蔵。電源さえ確保できればどこにでも設置しやすいです。  
- CPU性能やUSB/Wi-Fi帯域は限られるため、**高解像度・高FPS**での運用や負荷の大きいタスクは注意が必要です。  
- **放熱対策**も考慮すると安定運用につながります。

### 2.2 カメラモジュール

#### 2.2.1 USBカメラ(UVC対応)

- 例：Logicool C920、Anker PowerConf C200など  
- 公式ドライバ不要で簡単に使えますが、**Pi Zero 2 Wではmicro USB OTGアダプタ**が必要  
- 高解像度(1080p以上)だとPi Zero 2 WのCPU負荷が大きくなるため、解像度やFPSを調整してください。

#### 2.2.2 CSIカメラ(例：Camera Module V3、Freenove 8MP Camera など)

- **CSI接続**を使うため、Raspberry Pi上のカメラコネクタにフラットケーブルで直結します。Pi Zero用の細いケーブルが必要な場合があります。  
- **Camera Module V3**は12MP対応でオートフォーカス搭載など高機能ですが、Zero 2 WでフルHD配信を高フレームレートで行うと負荷がかかりやすいです。

##### Freenove 8MP Cameraなどを使う場合（Camera Module V2 相当品）

- **IMX219センサー搭載**が多く、公式のCamera Module V2相当の画質・互換性があります。  
- Raspberry Pi OSの**libcamera**環境で標準的に認識されることが多く、**MotionEye**でも“V4L2 Camera”や“MMAL Camera”として利用可能。  
- NoIR版(赤外線フィルタなし)などバリエーションがあるため、昼夜の撮影に合わせて選択可能。  
- **Pi Zero 2 W**で使う際は、小型コネクタ用の**アダプタケーブル**を用意し、接続を正しい向きで行ってください。  
- **夜間撮影をしたい場合**はNoIR版＋IR照明を、昼間中心ならIRフィルタ付モデルを選ぶと自然な色合いが得られます。

##### Freenove 5MP Cameraなどを使う場合（Camera Module V1 相当品）
  - 多くの場合、**OV5647**センサーを採用（Raspberry Pi公式のCamera Module v1と同等）  
  - 最大5メガピクセルの静止画撮影、1080p/30fps程度の動画撮影が可能
  - Raspberry Pi OS (Bullseye)以降では、**libcamera**をベースとする新しいカメラスタックに移行しており、OV5647センサー（Camera Module v1系）は、公式的には「レガシー扱い」となり、現在のBullseye版でも**完全サポートが限られる**場合があります。  
- **動作させるには”legacy camera stack”を有効化**したり、モジュールや設定ファイルを調整したりする必要が出てくるケースがあります。  

---

## 3. ソフトウェアの準備

### 3.1 Raspberry Pi OSのインストール

1. [公式サイト](https://www.raspberrypi.com/software/)から**Raspberry Pi Imager**を入手してmicroSDに書き込み  
2. **GUI版**でも**Lite版**でもMotionEyeは導入可能  
   - Lite版：リソース節約でき、Pi Zero 2 Wでの動作がやや軽い  
   - GUI版：デスクトップ操作がしやすく初心者向けだが、CPU/メモリ負荷はLite版より高め  
3. 初回起動後、以下でアップデート  
   ```bash
   sudo apt update
   sudo apt upgrade -y
   ```

### 3.2 MotionEyeのインストール

1. 依存パッケージ

   ```bash
   sudo apt update
   sudo apt install -y python3 python3-pip ffmpeg v4l-utils motion
   ```
2. MotionEye本体の導入

   ```bash
   sudo pip3 install motioneye
   ```
3. 設定ファイルの配置・systemdサービス登録  
   - [MotionEye公式GitHub](https://github.com/motioneye-project/motioneye)参照  
   - 再起動時にも自動起動するよう設定

4. ブラウザでアクセス  
   - デフォルトでポート**8765**  
   - `http://<Raspberry PiのIP>:8765`

---

## 4. Raspberry Pi Zero 2 WでMotionEyeを動かすポイント

1. **解像度やFPSを抑える**  
   - 720p(1280×720)やVGA(640×480)程度で15fps前後を目安にすると安定度が増します。  
   - フルHD以上の解像度や高FPSはCPU使用率や温度が上がりやすいため、様子を見ながら調整。

2. **動体検知・録画の負荷**  
   - 常時録画＆動体検知機能をフルに使うとCPU負荷も高くなるので、最初はライブストリーミングのみでテストし、問題なければ段階的に機能を追加すると良いでしょう。

3. **Wi-Fi安定性**  
   - Zero 2 Wは2.4GHz帯のWi-Fiを使うことが多く、電波干渉などで映像が途切れやすい場合があります。  
   - ルーターの近くに置く、チャネルを変更するなどで通信を安定させましょう。

4. **GUI版 or Lite版**  
   - **GUI版Raspberry Pi OSでもOK**ですが、Pi Zero 2 Wはリソースが少ないので、GUIを同時に動かすと負荷がやや高まります。  
   - 動作が重いと感じたらLite版に切り替える、不要なサービスを止めるなどの対策を検討してください。

---

## 5. カメラ接続とMotionEye設定

### 5.1 カメラの接続

1. **USBカメラ**: micro USB OTGアダプタ経由で接続し、`ls /dev/video*`で認識確認  
2. **CSIカメラ（Camera V3、Freenove 5/8MPなど）**:  
   - Pi Zero用リボンケーブルを正しい向きで挿入  
   - `libcamera-still --list-cameras`などで認識確認  
   - 必要に応じて`raspi-config`または`libcamera`の設定を有効化
   - Freenove 5MPなどの Camera Module V1 相当品を**動作させるには”legacy camera stack”を有効化**したり、モジュールや設定ファイルを調整したりする必要が出てくるケースがあります。  
 
### 5.2 MotionEyeでの設定

1. ブラウザで`http://<PiのIP>:8765`にアクセス  
2. 初回ログイン（ユーザー: `admin`、パスワード: 空）  
3. 「Add Camera」を押し、**Local V4L2**(USBカメラ)または**MMAL / libcamera**(CSIカメラ)を選択  
4. 解像度やFPS、録画設定を適宜調整  
5. プレビュー映像がMotionEyeの画面に表示されれば成功です。

---

## 6. ネットワークアクセス

### 6.1 LAN内からアクセス

- ルーターから割り当てられた**ローカルIP:8765**にアクセス  
- ポート開放不要なのでシンプル。家の中でのリモートワーク監視などに便利

### 6.2 外出先からアクセス

1. **ポート開放**  
   - ルーターの管理画面で8765番をPi Zero 2 WのIPに転送  
   - グローバルIPやDDNSでアクセス  
   - セキュリティ対策として強固なパスワードやファイアウォール設定が必須

2. **VPN**  
   - 自宅ルーターやRaspberry Pi上にVPNサーバーを立て、外出先からVPN接続  
   - ポート開放よりもセキュリティ面で安心

3. **リバーストンネル(Ngrok等)**  
   - ポート開放不要でお手軽  
   - 無料プランだとセッション制限やURL変更があるため、本格運用には注意

---

## 7. Q&A

### Q1. Pi Zero 2 WでMotionEyeは動作するの？

**A1. はい、動作します。ただしパフォーマンス管理が重要。**  
- 高解像度や高FPSを設定するとCPU負荷が上がり、遅延や発熱、フレーム落ちのリスクが高まります。  
- 720p程度で15fps前後に抑えれば、ペット見守り用途なら十分実用的に使えます。

### Q2. Freenove 8MP Cameraは使えますか？

**A2. 使えます。**  
- Freenove 8MP Cameraは**Sony IMX219センサー**搭載の場合が多く、公式Camera Module V2相当の画質や互換性が期待できます。  
- libcamera対応のRaspberry Pi OS上で標準的に認識され、MotionEyeからも**V4L2 Camera**や**MMAL Camera**として利用可能。  
- Pi Zero 2 Wで使う場合は、小型コネクタ用のアダプタケーブルを用意し、向きに注意してください。  
- IRフィルタの有無、レンズ焦点距離などの仕様が公式カメラと異なる場合があるので、用途に合わせて選んでください。

### Q3. Raspberry Pi OS Liteじゃなくてもいいの？

**A3. GUI版でもOKです。**  
- ただしPi Zero 2 Wはリソースが限られるので、GUIを常に起動しているとCPU負荷が増えます。  
- 動作が重い場合はLite版を検討したり、不要なサービスを停止したりするとよいでしょう。

---

## 8. まとめ

- **Raspberry Pi Zero 2 W + MotionEye**で、コンパクトかつ省電力なペット監視カメラを構築可能。  
- 安価な**Freenove 5/8MP Camera**を含む様々なCSIカメラモジュールや、UVC対応USBカメラが使える。  
- **解像度やFPSは抑えめ**に設定し、Wi-Fi環境を整えることでスムーズに動作しやすい。  
- LAN内アクセスならローカルIPを使い、外出先アクセスはポート開放やVPNなどを駆使する。  
- GUI版Raspberry Pi OSでも動作するが、Lite版のほうが軽量でパフォーマンス的に有利な場合もある。

---

## 9. LAN/外部アクセス比較表

| アクセス方法               | 手順                                                                                       | メリット                                                          | デメリット                                                  |
| :------------------------- | :----------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | :---------------------------------------------------------- |
| **同じ家のネットワーク**  | 1. ローカルIPをブラウザで指定<br>2. `http://<ローカルIP>:8765`                             | - ルーター設定不要<br>- セキュリティリスク少<br>- 簡単に試せる    | - 外出先からは見られない                                     |
| **ポート開放(フォワード)** | 1. ルーターで8765番を転送<br>2. グローバルIPまたはDDNSでアクセス                           | - 外部から直接アクセス可能<br>- 手順が比較的シンプル              | - 不正アクセスリスク増<br>- 強固なパスワード設定・DDNSなど必須 |
| **VPNの利用**             | 1. 自宅ルーター/ラズパイでVPNサーバ構築<br>2. 外出先端末でVPN接続                           | - セキュリティが高い<br>- ローカルLANと同じ感覚で使える           | - 構築のハードルがある<br>- ルーター機能や設定の知識が必要    |
| **リバーストンネル**       | 1. Pi上でNgrokなどを起動<br>2. 生成されたURLを外部から利用                                  | - ポート開放不要<br>- お手軽                                     | - 無料版は制限あり<br>- 連続運用には有料プランが必要な場合    |

---

### 参考リンク

- [Raspberry Pi公式サイト](https://www.raspberrypi.com/)  
- [MotionEye GitHubリポジトリ](https://github.com/motioneye-project/motioneye)  
- [Freenove公式サイト](https://freenove.com/)（8MP Camera他）  
- [Anker公式ストア](https://www.ankerjapan.com/)（PowerConf C200など）  
- [Logicool公式サイト](https://www.logicool.co.jp/ja-jp)（C920など）  
---

以上