注目キーワード
  1. Photoshop
  2. Python
  3. Raspberry Pi
  4. Arduino

FlaskアプリケーションをRaspberry Piで実行し、コントローラーとして使用する

  • 2021年5月22日
  • 2021年6月24日
  • Python

ここでは「Flask」アプリケーションを「Raspberry Pi 4 Model B」で実行し、様々なコントローラーとして使用する方法を紹介します。

 

この記事を読むことで

Raspberry PiでFlaskアプリケーションを実行する方法

アプリケーションをラズパイ、PC側から操作する方法

を知ることができます。

 

ラズパイ側から、アプリケーションを操作することはもちろん、IPアドレスを使用してPC側からアプリケーションを操作することもできます。

 

PC側からアプリケーション操作ができると、↓↓下記の動画のようにロボットのコントローラーとしても使用することができるのでオススメです。

 

 

それでは早速始めていきましょう!

 

Raspberry PiでFlaskを使えるよう準備

 

SSH接続など基本設定

まずはRaspberry PiでSSH接続やVNC、ファイルサーバーのSambaなどの基本設定を行っておきましょう。

 

当サイトではiPhoneのテザリング機能を使ってラズパイとSSH接続する方法を始め

ラズパイをiPhoneのテザリングを使ってSSH接続する

 

VNC、Sambaの使い方も紹介しているので、合わせてご覧ください。

 

FlaskをRaspberry Piへインストール

続いて、Raspberry Pi 4 Model BでFlaskを使うためのパッケージをインストールします。

最新バージョンのRaspberry Pi 4 には既にFlaskのパッケージが入っているようですが、それ以前のバージョンだとインストールする必要があります。

 

まずはpipインストールができるように

sudo apt-get install python3-pip

コマンドを入力します。

 

python3-pipのインストールが終了したら

sudo pip3 install flask

と入力してFlaskパッケージをインストールします。

 

他にも、SSH接続ONのために

sudo raspi-config → Interfacing Options → SSH → Yes

など初期設定をしておきましょう。

 

Interfacingoptions

 

※raspi-configでは、矢印キーで選択欄を動かすことができます。

 

ネットワークの設定

Flaskパッケージのインストールができたら、IPアドレスを確認します。

コマンド上で

ifconfig

と入力し、有線・無線のIPアドレスを調べます。

 

flaskapp_raspicontrol_02

 

SSH接続では、表示されるIPアドレスを使用して接続を行いますが、IPアドレスで上手くSSH接続できない場合は

sudo nano /etc/dhcpcd.conf

から有線・無線のIPアドレスの設定を行いましょう。

 

flaskapp_raspicontrol_01

 

私はiPhoneでテザリングしたラズパイに対してPCからSSH接続していますが、IPアドレスでSSHできなかったので

interface wlan0 ⇄ interface eth0

として無線のIPアドレスを有線IPアドレスに設定し直して再起動したところ、IPアドレスでSSHすることができました。

 

理由は現在解明中ですが、今回はこの手法で続けていきます。

 

Flaskを実際にRaspberry Pi で実行する方法を紹介する前にお知らせです。

PythonとFlaskを使ってWebアプリケーション開発を学びたい方は「Udemy」のこちらのコースがオススメです。

Webデザイン、アプリの開発やPythonのスキルアップを目指したい方は是非上記リンクからのぞいてみてください。

 

Flaskを実際にRaspberry Piで実行する

FlaskをRaspberry Piで実行するには

host = ‘0.0.0.0’

とする必要があります。

 

「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側、つまり

VNCViewerなどのGUI環境からFlaskアプリケーションにアクセスする

ということです。

 

ここではapp.pyが実行ファイルとなるため

sudo python3 app.py

としてFlaskアプリケーションを実行します。

 

flaskapp_raspicontrol_03

 

実行したら

Running on http://0.0.0.0:5050/

をクリックしてアプリケーションを開きます。

 

無事、アプリケーションが開けたら完了です。

 

PC側からFlaskアプリケーションにアクセス

PC側からFlaskアプリケーションにアクセスする、つまり

ラズパイにSSH接続した状態から、PCのGoogleChromeでアプリケーションを表示させる

ということです。

 

IPアドレスでSSH接続できるようになったら、実際にSSH接続してFlaskアプリケーションを実行するPythonプログラムを動かしてみましょう。

 

また、XmingなどのGUIウィンドウをPC上で表示するアプリケーションを使っている場合は、X0.hostsファイルにIPアドレスを追加しておきます。

 

Pythonプログラムを実行中に

サーバはこのマシンに転送を試みました。

localhost上のXサーバへの接続を要求しました。

接続は拒否されました。

転送接続を終了します。

という警告が表示されることがありますが、問題なく進めることができるので、ここではこの警告を無視して進めます。

 

プログラムを実行したら、GoogleChromeなどから

http://IPアドレス:port

を検索欄に打ち込みます。

 

今回は

IPアドレス: 172.20.10.2

port : 5050

なので「http://172.20.10.2:5050」と検索欄に打ち込みました。

 

flaskapp_raspicontrol_04

 

IPアドレス、ポートを使ってアクセスしてみると

 

flaskapp_raspicontrol_05

 

無事、ログイン画面に入ることができました。

 

flaskapp_raspicontrol_06

 

それぞれ、メニューなどを切り替えて不備がない事を確認したら、完了になります。

 

 

以上、FlaskアプリケーションをRaspberry Piで実行する方法でした。

ロボット操作用にROS2を使いたいので今勉強していますが、当分はFlaskアプリケーションをコントロールとして使用すると思います。(-ω-)/

 

この記事が皆さんの助けになれば幸いです。

お疲れ様でした。

flaskapp_raspicontrol_thumbnail
学びに関する情報をチェック!