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

