ラズパイ3のWeb インターフェースを作成


ラズパイに接続したいろいろなデバイスやセンサーをWebベースで制御したりモニターするためのインターフェースのベースを作成してみます。

ラズパイをIoTプラットフォームにするための準備です。

まぁ、サーバーを立てるっちゅうことですが、ここでは軽量のFlaskを使ってみます。

FlaskはPythonのWebアプリケーションフレームワークです。

Raspbianの最新バージョンならプレインストールされています。

同様にテンプレートエンジンのjinja2もプレインストールされています。

$pip3 list

Flaskの現バージョン(2018/12/07)は0.12.1


適当なディレクトリ(FLASK)を作成して、直下にstaticとtemplatesというサブディレクトリを置いておきます。

これが基本形

FLASK/server.py

FLASK/templates/index.html

FLASK/static/index.js,index.css

実行

$python3 server.py

これを実行することで、 server.pyがindex.htmlを読み込んで、index.htmlがindex.jsやindex.cssを読み込んでサーバーを立てるという構成です。


コードはこんな感じ

【server.py】

”192.168.0.31”はRaspbianのローカルIPの例(確認)

8080は使用するポート番号の例(好み、但し1024番以下を使用する場合はroot権限が必要)

messageboxの表示にtkinter.messageboxの代わりにeasyguiを使ってみます。

easygui

$pip3 install easygui

 

【index.html】

sampleというボタンをクリックすると、param1,param2のvalueが送信され、

  pythonで’ls -al’というコマンドが実行され、結果がダイアログで表示されます。

 

【index.js】

【index.css】

 

 


 

$python3 server.py

スマホのブラウザーでアクセス

http://192.168.0.31:8080

 

ルータの設定で、例えば192.168.0.31のローカルIPを持っているサーバーのポート番号8080を開放しておけば、外出先からラズパイを制御できます。

 


HTTPS対応

工事中


ラズパイ3をIoTプラットフォームにする機器構成

スマートコンセントを使って外出先から家電の電源をON・OFFしてみる

VNC Viewerで外出先からラズパイをシャットダウン

制御用のコードサンプルはこちら

ラズパイにAI推論実行用プロセッシング・ユニットを使ってみる

IoTプラットフォームをAIで賢くしてみる

 


Appendix

Pythonは普通にサーバー用のライブラリを持っています。

$python3

>>>import http.server
>>>server_address = (“<ローカルIPアドレス>”, 8080)
>>>handler_class = http.server.SimpleHTTPRequestHandler
>>>simple_server = http.server.HTTPServer(server_address, handler_class)
>>>simple_server.serve_forever()

あるいは単体起動

適当なフォルダーを作って以下のファイルを設置(ここがドキュメントルートになります)

例えば….

【webserver.py】

#!/usr/bin/env python3
import http.server

server_address = (“192.168.0.31”, 8080)
handler_class = http.server.SimpleHTTPRequestHandler
simple_server = http.server.HTTPServer(server_address, handler_class)
simple_server.serve_forever()

 

【index.html】

<html><body>
Hello World !
</body></html>

 

webserver.pyに実行権を与えて起動

 


 

 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*