● Flaskを使って RaspberryPi Serverを作る
2026.05.24
RaspberryPi Carの Remote制御に、今まで WebIOPiを使用していましたが、
Raspi OS Ver.12 (bookworm)以降では動作しなくなってしまいました。
この原因は Raspi OS 12 (bookworm)では、python2関連のcommandの廃止が行われたからです。
WebIOPiは python2に依存して作られており、開発も 2015年以降は止まったままです。
新たに Raspiの Remote制御を作る場合は、WebIOPi以外を選択する方が無難です。
ここでは、簡単に Web serverを構築できる Flaskを紹介します。
Flaskは web siteを開発する時の debug用に開発されたもので、programは pythonで
書かれており数行の命令を書くだけで簡単に web siteから RasPiに Remote接続ができます。
ただし、securityを考慮していないので公開 serverなどには使用しないでくださいと
開発者は述べています。
flaskは数行の commandで serverを構築できるので、エアコンの制御や、天井灯の ON/OFF制御や
Browserからの RasPi Remote制御には最適です。
Flaskは RasPiの基本機能として defaultで installされているので、新規に installする必要もなく
使用する事ができます。

【flask Folderを作る】
まず、home の配下に flask専用の flasksvという folderをつくります。
作った flasksv folder内に app.pyというfileを作ります。
これは app.pyという名前にしなければいけません。
app.pyには以下の 7行を書き込みます。
$ ~/mkdir flasksv
$ cd /home/pi/flasksv
$ sudo nano app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True, port=5000)
ctl + O で書き込み、ctl + x で終了。
【templates folderを作る】
/flasksv folderの中に templates folderをつくり index.htmlを入れる。
これは templatesという名前にしなければいけません。
$ /home/pi/flasksv: mkdir templates
$ cd templates
$ sudo nano index.html
index.html の中身

ctl + O で書き込み、ctl + x で終了。
【実行してみる】
flasksv folderに移動して flaskを起動します。
$ cd /home/pi/flasksv:
$ flask run --host=0.0.0.0 --port=5000
--host=0.0.0.0は 127.0.0.1以外の IP Addressから Acsess出来る様にするため指定するものです。
Errorが出なければ serverは起動しています。
web serverの終了は ctl + c で終了します。
【ifconfigで RasPiの Addressを調べる】
RasPi の IP Addressを調べるには ifconfigまたは ip addrを使用します。
$ ifconfig
wlan0: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
【他の PCから Acsessしてみる】
Network内にある他のパソコンから Web Browserを開いて
RasPiの IP Address (192.168.1.11)を入力します。
port番号は flask起動時に使用した :5000を使用します。
Hello, World! 画面が表示されれば成功です。
【起動 fileを作る】
Flask serverを使用する目的に応じて起動 fileや systemd fileを作成するとよいでしょう。
----------------------------------------------------------------------------------------------------------------------------
