UMEHOSHI ITA TOP PAGE    COMPUTER SHIEN LAB

[Rapsberry Pi Zero WH]のカメラ操作

RaspberryPiカメラモジュールv2を使い、Pythonで画像を配信までを示します。
前述のページの続きで、 sshのコマンド操作で「sudo raspi-config」を実行してカメラ利用の設定を行います。
「Interfacing Options」を選択して、次で「Camera」を選択でき、
「Would you like the camera interface to be enabled?」で。、<はい>を選択します。
そして、次のように接続します。(下記クリックで裏⇔表が変わります。)

(プラスチックケース [SK-16] 外寸(mm):110×80×33の蓋に取り付けています。)

「python-picamera」のインストール

「python-picamera」というパッケージを、次のようにインストールします。

pi@raspberrypi:~ $ sudo apt-get install python-picamera
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
python-picamera はすでに最新バージョン (1.13) です。
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libmicrodns0 python-colorzero rpi-eeprom-images
これを削除するには 'sudo apt autoremove' を利用してください。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 8 個。
pi@raspberrypi:~ $ ^C
そして「mkdir ~/pyprg」で、フォルダを作り、「cd ~/pyprg」で作業場所に移動して、「python3」のPython会話モードして、 次のコードを貼り付けて写真を撮ってみます。
import time
import picamera

camera = picamera.PiCamera()
camera.capture('./test.jpg')

これで、'./test.jpg'の写真ファイルが生成されるはずです。
しかし、正しく撮れいるかモニタが無いと分かりません。 そこで、次のHTMLファイル(test.html)を作り、ブラウザで確認します。
「nano ~/pyprg/test.html」

<html lang="ja">
<head></head>
<body>
<img src="test.jpg">
</body>
</html>

つまり、test.htmlをtest.jpgがある場所で作り、ここをドキュメントルートになるように 次のコマンド操作でwebサーバを起動します。
前述のページの設定により、 raspberry pyのIPアドレスが、192.168.0.123でWifで接続されている前提です。)

pi@raspberrypi:~/pyprg $ sudo python3 -m http.server --bind 192.168.0.123 80
Serving HTTP on 127.0.0.1 port 80 (http://192.168.0.123:80/) ...

これでこのネットワークに繋がっているPCの任意のブラウザで閲覧できるはずです。
ブラウザのURL欄で「http://192.168.0.123/test.html」と 入力します。
正しく閲覧できている場合は、sshの画面は次にような応答メッセージが表示されます。

pi@raspberrypi:~/pyprg $ sudo python3 -m http.server --bind 192.168.0.123
Serving HTTP on 127.0.0.1 port 80 (http://192.168.0.123:80/) ...
192.168.0.110 - - [17/Oct/2021 10:57:51] "GET /test.html HTTP/1.1" 200 -
192.168.0.110 - - [17/Oct/2021 10:57:51] "GET /test.jpg HTTP/1.1" 200 -
192.168.0.110 - - [17/Oct/2021 10:57:52] code 404, message File not found
192.168.0.110 - - [17/Oct/2021 10:57:52] "GET /favicon.ico HTTP/1.1" 404 -

上記操作は、docs.python.org/ja/3/library/http.server.html を参考に行いました。