開発手順
1. pipenvの導入pipenvをインストールしていない場合は、以下のコマンドを実行します。
sudo apt-get update
sudo apt-get -y install python3-pip python3-distutils python3-dev
sudo pip3 install --upgrade pip
sudo pip3 install --upgrade setuptools
sudo pip3 install pipenv
echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc
source ~/.bashrc
2. dht11モジュールとflaskがインストールされた仮想環境作成
pipenvを使用する場合は以下のコマンドで、dht11とflask用の仮想環境を作成します。
mkdir -p ~/dht11_flask
cd ~/dht11_flask
pipenv --python 3
pipenv install dht11 flask
pipenv shell
3. Flask REST APIアプリケーションの作成
/dht11にアクセスされたとき、温度・湿度の情報を取得してJSONで返すコードを実装します。
app.py
from flask import Flask, jsonify, request
import RPi.GPIO as GPIO
import dht11
# initialize...
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BCM)
app = Flask(__name__)
@app.route('/dht11')
def get_dht11():
data = {}
while True:
instance = dht11.DHT11(pin=14)
result = instance.read()
if result.is_valid():
data = {"temperature":result.temperature, "humidity":result.humidity}
break
return jsonify(data)
4. 実行
Flaskを実行するには、以下のコマンドを実行します。
export FLASK_APP=app.py
flask run -h 0.0.0.0
次に、ブラウザから以下のアドレスにアクセスして、温度・湿度の情報をjsonで返すことを確認します。
http://<Raspberry Piのホスト名またはIPアドレス>:5000/dht11
0 件のコメント:
コメントを投稿