FlaskとFlask-RESTfulを使ったラズパイカメラの画像をHTTPで公開するサーバー
- RaspberryPi 4
- RasPi Camera V2.1
- DHT22 (温湿度センサー)
- GPIO 4ピンにDATA線が接続されていることを想定
- Debian GNU/Linux 13 (trixie)
- Python 3.13.5
venv導入&仮想環境に入る
> python -m venv --system-site-packages env
> source env/bin/activate
仮想環境を抜ける
> deactivate
> sudo apt install -y swig liblgpio-dev libcap-dev python3-picamera2 python3-libcamera libcamera-apps-lite libgpiod-dev
> pip install -r requirements.txt
or
> pip install Flask Flask-RESTful Pillow rpi-lgpio picamera2 adafruit-circuitpython-dht gpiod
> python3 camera-server.py
ウェブブラウザで以下のURLを開くとJPEG画像が表示される
http://raspberrypi.local:5000
以下のURLに対してHTTP GETリクエストを投げる
http://raspberrypi.local:5000/api/camera/
タイムスタンプとBase64エンコードされたjpeg画像が得られる
{
"timestamp": 1580553676.777748,
"data": "/9j/4AAQSkZJRgABAQ..."
}
以下のURLに対してHTTP GETリクエストを投げる
http://raspberrypi.local:5000/api/cpu/
タイムスタンプとCPUクロック、温度が得られる
{
"timestamp": 1580630488.874677,
"data": {
"cpu_clock": 750.199232,
"cpu_temp": 37.0
}
}
以下のURLに対してHTTP GETリクエストを投げる
http://raspberrypi.local:5000/api/temperatureandhumidity
タイムスタンプと温度、湿度が得られる。
{
"timestamp": 1581223396.671932,
"data": {
"room_temperature": 22.3,
"room_humidity": 26.6
}
}