ここでは「Flask」アプリケーションを「Raspberry Pi 4 Model B」で実行し、様々なコントローラーとして使用する方法を紹介します。
この記事を読むことで
Raspberry PiでFlaskアプリケーションを実行する方法
アプリケーションをラズパイ、PC側から操作する方法
を知ることができます。
ラズパイ側から、アプリケーションを操作することはもちろん、IPアドレスを使用してPC側からアプリケーションを操作することもできます。
PC側からアプリケーション操作ができると、↓↓下記の動画のようにロボットのコントローラーとしても使用することができるのでオススメです。
それでは早速始めていきましょう!
Raspberry PiでFlaskを使えるよう準備
SSH接続など基本設定
まずはRaspberry PiでSSH接続やVNC、ファイルサーバーのSambaなどの基本設定を行っておきましょう。
当サイトではiPhoneのテザリング機能を使ってラズパイとSSH接続する方法を始め
VNC、Sambaの使い方も紹介しているので、合わせてご覧ください。
FlaskをRaspberry Piへインストール
続いて、Raspberry Pi 4 Model BでFlaskを使うためのパッケージをインストールします。
最新バージョンのRaspberry Pi 4 には既にFlaskのパッケージが入っているようですが、それ以前のバージョンだとインストールする必要があります。
まずはpipインストールができるように
コマンドを入力します。
python3-pipのインストールが終了したら
と入力してFlaskパッケージをインストールします。
他にも、SSH接続ONのために
など初期設定をしておきましょう。
※raspi-configでは、矢印キーで選択欄を動かすことができます。
ネットワークの設定
Flaskパッケージのインストールができたら、IPアドレスを確認します。
コマンド上で
と入力し、有線・無線のIPアドレスを調べます。
SSH接続では、表示されるIPアドレスを使用して接続を行いますが、IPアドレスで上手くSSH接続できない場合は
から有線・無線のIPアドレスの設定を行いましょう。
私はiPhoneでテザリングしたラズパイに対してPCからSSH接続していますが、IPアドレスでSSHできなかったので
として無線のIPアドレスを有線IPアドレスに設定し直して再起動したところ、IPアドレスでSSHすることができました。
理由は現在解明中ですが、今回はこの手法で続けていきます。
Flaskを実際にRaspberry Pi で実行する方法を紹介する前に「お知らせ」です。
PythonとFlaskを使ってWebアプリケーション開発を学びたい方は「Udemy」のこちらのコースがオススメです。
Webデザイン、アプリの開発やPythonのスキルアップを目指したい方は是非上記リンクからのぞいてみてください。
Flaskを実際にRaspberry Piで実行する
FlaskをRaspberry Piで実行するには
とする必要があります。
「host = ‘localhost’」となっている方は実行ファイル(app.pyなど)を書き換えておきましょう。
app.pyの例
# Raspberry Pi if __name__ == '__main__': app.run(debug=True, host = '0.0.0.0', port=5050, threaded=True)
Raspberry Pi側からFlaskアプリケーションにアクセス
まずは、Raspberry Pi側、つまり
ということです。
ここではapp.pyが実行ファイルとなるため
としてFlaskアプリケーションを実行します。
実行したら
をクリックしてアプリケーションを開きます。
無事、アプリケーションが開けたら完了です。
PC側からFlaskアプリケーションにアクセス
PC側からFlaskアプリケーションにアクセスする、つまり
ということです。
IPアドレスでSSH接続できるようになったら、実際にSSH接続してFlaskアプリケーションを実行するPythonプログラムを動かしてみましょう。
また、XmingなどのGUIウィンドウをPC上で表示するアプリケーションを使っている場合は、X0.hostsファイルにIPアドレスを追加しておきます。
Pythonプログラムを実行中に
サーバはこのマシンに転送を試みました。
localhost上のXサーバへの接続を要求しました。
接続は拒否されました。
転送接続を終了します。
という警告が表示されることがありますが、問題なく進めることができるので、ここではこの警告を無視して進めます。
プログラムを実行したら、GoogleChromeなどから
を検索欄に打ち込みます。
今回は
IPアドレス: 172.20.10.2
port : 5050
なので「http://172.20.10.2:5050」と検索欄に打ち込みました。
IPアドレス、ポートを使ってアクセスしてみると
無事、ログイン画面に入ることができました。
それぞれ、メニューなどを切り替えて不備がない事を確認したら、完了になります。
以上、FlaskアプリケーションをRaspberry Piで実行する方法でした。
ロボット操作用にROS2を使いたいので今勉強していますが、当分はFlaskアプリケーションをコントロールとして使用すると思います。(-ω-)/
この記事が皆さんの助けになれば幸いです。
お疲れ様でした。