FlaskからRasperry PIのPIカメラを操作する

Raspberry PIにFlaskをインストールするとWebサイトが構築できるようになります。Flaskはpythonでプログラミングしますので、
pythonで出来ることは何でも出来ることになります。
PIカメラをWeb経由で遠隔地から操作そうることが出来ます。
PIカメラをpythonから操作するためのpicameraモジュールは標準でインストールされています。
PIカメラで写真撮影するなら次のようなコードになります。import sqlite3

camera = picamera.PiCamera() camera.resolution = (512, 389) time.sleep(2) camera.capture('capture.jpg')

 

FlaskからPIカメラを操作する

FlaskでWeb経由で上記操作を実現するためには、HTMLでカメラ操作の行うための画面が必要になります。

今回は、HMLでボタンを用意しておきボタンを押せば撮影する動作を考えます。

次にボタンを押されたら上記のようなpythonのプログラムが実行されて撮影をします。

最初の画面は次のようなHTMLになります。(一部抜粋 )

<p>
 <form action="/ptoho" method="post"> 
 <button type="submit" class="btn btn-primary btn-lg btn-block">撮影</button>
 </form>
</p>

 

pythonでflaskに処理を次のように記述します。

@app.route('/photo', methods=['POST'])

 def photo():

     take_photo()

     return redirect(url_for('hello'))

 def take_photo():

     from PIL import Image import picamera import time

     now = datetime.datetime.now()

     timeString = now.strftime("%Y%m%d%H%M")

     dirname = "/var/flask/static/"

     db_img_file = timeString + ".jpg"

     filename = dirname + db_img_file

     camera = picamera.PiCamera()

     camera.resolution = (512, 389)

     time.sleep(2)

     camera.capture(filename)

     camera.close()

 

camera.close()を記述しておかないと、PIカメラの赤いLEDランプがつきっぱなしなります。忘れないようにします。

撮影した画像をflaskを使いweb経由で見せたいなら、staticディレクトリに保存しておき、さらに撮影した画像を表示してあげるHTMLを

作成すれば良いです。そうすればweb経由で遠隔地から家の中のペットの様子などを確認できますね。

 

次のような画面を作って色々と実験としています。