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経由で遠隔地から家の中のペットの様子などを確認できますね。
次のような画面を作って色々と実験としています。