インターフォン作る予定でしたが、急遽ペット見守りカメラに変更します。
追加部品一覧
![]() | Raspberry Pi Zero 2 W 今回は Zero 2Wを使用します。 |
![]() | 多機能USBケーブルアダプター Zero 2WはUSBポートが少ないのでこれでポートを増やしています。 |
![]() | ミニコンピューターWebカメラ 安価なUSBカメラ |
![]() | 2dofサーボ サーボモータを持った2軸のARM。 USBカメラをこれに取り付けてカメラの向きを制御します。 |
![]() | ミニスピーカー ダイソーの300円スピーカ。電源はUSB。音入力は3.5mm ステレオミニプラグ |
![]() | ラップトップ用の外部サウンドカード スピーカーの音入力をUSBに変換する為に使用 |
![]() | ACアダプター 5V 1.5A 7.5W 電源 |
![]() | ソリッド・ステート・リレー AC100Vのオンオフに使用。現在LEDをオンオフしているポートでこのSSRを制御 |
![]() | 埋め込みコンセント SSRの出力先。このコンセントにAC100Vのライトを接続。 周りが暗い時にライトを点灯させる。 |
カメラの構成
Raspberry PI Zero 2Wを中心に各部品を下記の様に配線しています。
- Zero 2WはUSBポートが少ないためHUBを追加
- HUBにカメラ、スピーカ(電源と信号の2つ)をつなぐ。
- GPIO26でソリッドステート制御。AC100Vのオンオフを実施。電灯のオンオフが出来ます。
- GPIO20,21でサーボモータ(2つ)を管理。カメラを上下左右に回転させます。

実際のカメラ

コントロール画面
クライアント(コントール)側の画面は以下の通り

前回のコードをGeminiに添削してもらったらこんな感じになりました。Gemini恐るべし。
- ブラウザはFirefoxを使用しています。SSLの関係でFirefoxが一番使い易かったのが理由です
他のブラウザでは動かない可能性が有ります。 - スマホ、PC等から簡単にアクセス出来る用IPアドレスを固定しています。
- Streamingは中央のエリアに表示されます。エリア左上にはステイタスを表示
- Streamingオン・オフボタン:Steamingの開始と停止
- 音量調整:ハウリングを防ぐ為にPC側はMute(音量0)を奨めます。
PC側から音声を送りたい時のみ音量を調整下さい。大きくするとハウリングします。 - 今回はコンセントに100VのLED電灯をつなぎました。このボタンで点灯・消灯出来ます
あまり大きな電力を消費する機器は使えません。LED電灯位が目安です。 - Streamingの録画、その場面の写真が取れます。撮ったものは表示領域に表示されます
写真:ダウンロードボタンでダウンロード出来ます
録画:録画終了が表示エリアで再生出来ます。
ダウンロードは表示エリアで右ボタンクリックで出来ます。 - 十字カーソル:ボタンを押している間ボタンの方向にモータが回ります。
放すとモータは止まります。回転中左上に位置が表示されます。 - ホームボタンを押すとモータはホームポジションに戻ります。
コードのダウンロード
まず下のリンクから今回のコードをダウンロードし解凍して下さい
favicon.ico、index.html、monitor.css、monitor.js、monitor.py、setup.sh、start.sh 7つのファイルが有ります。
Raspberry PIのセットアップ
OSのインストール
Raspberry Pi ImagerV1.8.5を使用してOSのイメージを作成します。

- Raspberry PIデバイス ー> Raspberry PI ZERO 2W
- OS ー> Raspberry PI OS(Legacy,32-bit) Lite (Bookwormのno deskTop版です)
- ストレージ ー> SDカードを選択して下さい。16G以上が推奨。今回は32Gを使用
起動パラメタの設定とSSHを有効化。Zero 2Wにキーボード等を繋がないのでSSHは必須です。

この設定でOSのイメージを作成します。
アプリのセットアップ
必要機器を接続し、SDカードを Zero 2Wに挿入してブートします。しばらくするとSSHがつながるようにまりますので接続して下さい。まずはホームディレクトリにsetup.shをコピーします。コピーの方法は幾つか有ると思いますが今回は
- Raspberry Pi ホームディレクトリで sudo nano setup.sh とsetup.shを新規に作成
- PC側でsetup.shをエディタ開いて全てをコピー。それをRaspberry PI側にエディタにすべて貼り付け。
- Raspberry PI側のエディタを保存終了すればホームディレクトリにsetup.shが保存されます。
後はsetup.shに実行権を与えて実行です。
sudo chmod +x setup.sh
./setup.sh
しばらく待ち
——————————————————-
セットアップが完了しました!
——————————————————-
【重要:最後に必ず行うこと】
1. ‘lsusb’ を実行して、あなたのWebカメラのIDを確認してください。
‘sudo nano /etc/uv4l/uv4l-uvc.conf’ を開き、device-id を書き換えてください。
2. ‘arecord -l’を実行して、オーディオを確認して下さい。
‘sudo nano /etc/asound.conf’を開き、システムに合わせて修正して下さい
3. IP Addressの固定を奨めます。下記のxxx.xxx.xxx.xxxにIPを指定して下さい
sudo nmcli connection modify preconfigured ipv4.method manual ipv4.addresses xxx.xxx.xxx.xxx/24
4. 設定終了後 reboot して下さい。
——————————————————-
が表示されると第一段階終了です。次は上記の項目の設定を行います。
1.’sudo nano /etc/uv4l/uv4l-uvc.conf’ の修正
モニタでUSB機器を表示デバイスIDを確認
~ $ lsusb
Bus 001 Device 004: ID 1d6c:0103 webcamvendor webcamproduct
Bus 001 Device 003: ID 001f:0b21 Walmart AB13X Headset Adapter
Bus 001 Device 002: ID 214b:7250 Huasheng Electronics USB2.0 HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ここでカメラのIDを確認します。今回のIDは ”1d6c:0103” でした。
これを”uv4l-uvc.conf”に登録します sudo nano /etc/uv4l/uv4l-uvc.conf’とFileを開くと
Fileの終わりが下記の様になっています。
device-id = xxxx:xxxx
server-option = –use-ssl=yes
server-option = –ssl-private-key-file=/home/kita/monitor/localhost-key.pem
server-option = –ssl-certificate-file=/home/kita/monitor/localhost.pem
このxxxx:xxxxの箇所に”1d6c:0103”を代入してファイルを保存します
2.’sudo nano /etc/asound.conf”の修正
モニタでオーディオの状態を表示
~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Audio [iStore Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: webcamproduct [webcamproduct], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
これは表示例です。この場合、スピーカーはcard 0: 。マイクはcard 1:です。これを元に”asound.conf”
を修正します。sudo nano /etc/asound.conf 新規作成になると思います。
pcm.!default {
type asym
playback.pcm “plug:hw:0“
capture.pcm “plug:dsnoop:1“
}
playback.pcm スピーカ。今回はcard 0:なので、”plug:hw:0“と指定
capture.pcmはマイク。今回はcard 1:なので”plug:dsnoop:1“と指定してファイルを保存
3. IP Addressの固定を奨めます。
固定しなくてもコードは動きますが固定した方がブラウザURLの入力に断然有利です。
今回は192.168.1.200に固定しています。(各自の環境に合わせて下さい)
4. 設定終了後 reboot して下さい。
5.コードのコピー
Raspberry PIが立ち上がったらダウンロードしたコードをRaspberry PIに保存します。
アプリインストール時にSAMBAをセットし、ホームディレクトリーを共有フォルダに設定しています。
PCのファイルマネージャでそこを開き、ダウンロードした”start.sh”をそこにコピーします。
その他のファイル avicon.ico、index.html、monitor.css、monitor.js、monitor.pyは
ホームの下の”monitor”フォルダに保存して下さい。
6.ブラウザとSSL対応
今回PCRaspberry PC側のマイクを使用する為、通信はSSLで行う必要が有ります。認証ファイルが自前(オレオレ認証)なので使用するポートに対し問題なしと登録する必要が有ります。使っているポートは ”443”、”8090”、”8700”の3つです。
ブラウザでSSLの扱いがブラウザで違うようで、Firfoxでは問題無く動いたのですが、Chromeで動かなかったです。そこで今回はFirefoxを使用しています。

- 今回はIPアドレスを192.168.1.200に固定しています。
- まずはURL欄に “https://192.168.1.200:8090″と入力します。
- 表示された画面で ”詳細へ進む” をクリック
- 次の画面で ”危険性を承知の上で使用” をクリック
- 最後に一番上の画面になります。これでhttps://192.168.1.200:8090の登録完了
- 次に”https://192.168.1.200:8700″をURL欄に入力して同様の登録します。
- 最後に”https://192.168.1.200″で同様の処理を行い登録します。
以降はURL欄に”https://192.168.1.200″と入力するだけでコントロール画面が上がります。

次回は
次回はこれを外部(ルータの外から)アクセスできる様に改良して行きます。








