*

IoT開発(10)
RaspberryPiをIoTゲートウェイにする(IV)
Appサーバーのセットアップ

公開日: : 最終更新日:2020/08/13 Python, RaspberryPi, 開発, 電子工作

この記事は、下記の記事の続きです。

IoT開発(6) RaspberryPiをIoTゲートウェイにする(I) VM上に開発環境を構築
IoT開発(7) RaspberryPiをIoTゲートウェイにする(II) VM上の開発環境にWEBサーバーをインストール
IoT開発(8) RaspberryPiをIoTゲートウェイにする(II)-1 MariaDBにPHPからアクセス
IoT開発(9) RaspberryPiをIoTゲートウェイにする(III) MariaDBのセットアップ

前回までの記事で、RaspberryPiOS上にWEBサーバー(nginx)とデータベース(MariaDB)をセットアップできました。
そこで今回は、Appサーバーをインストールして、「Hello, World!」を表示するまでを実行します。

1.Appサーバーの選択

Appサーバーには、uWSGIを使用します。
また、フレームワークには、Flaskを採用します。
即ち、「nginx + uWSGI + Flask」という構成になります。
プラットフォームがRaspberryPiということもあり、AppのフレームワークとしてFlaskを採用しています。
そして、Flaskと相性がいい(?)uWSGIをAppサーバーに選択することとしました。

2.インストール

まず、FlaskとuWSGIをインストールします。
インストールは、以下のコマンドにより行います。

これで、uWSGIおよびflaskのインストールは完了です。

3.Hello,world!

インストールが完了したら、次は準備です。
…とは言っても、ここでは何か設定ファイルを編集する、ということは行いません。以下のコマンドを実行して、Pythonコードを配置するディレクトリを作成、カレントディレクトリを移動します。

次に、以下のようなPythonコードを作成します。
ファイル名は、なんでもよいのですが、ここでは「hello.py」としてきます。

上記コードを作成したら、次は、uWSGIを起動します。
起動のためには、以下のコマンドを入力します。

ここで、「–http」オプションで「0.0.0.0」を指定していますが、これは「hello.py」をパブリックIP、即ち外部から参照する際のIPアドレスで公開する、ということを示します。
その後ろの「8000」については、ポート番号です。
最後の「–callable」は、hello.pyで実行するアプリケーションで呼び出し可能なモノ、即ち、hello.pyの「app」に対応します。
(実際に、例えばhello.py中のappをapp2に変更、uWSGIの「–callable」の値を「app2」に変更すれば、同様の結果を得ることができます。)
上記コマンドを実行後、任意のブラウザで

にアクセスすると、以下のような「Hello, world!」の画面が表示されます。

iot_raspberrypi_gateway_004_001

4.まとめ

これで、「nginx + uWSGI + Flask」の環境でページを表示できるようになりました。
飾り気が一切なく、また平文ですが、まずは第一歩です。
次は、HTML形式のデータをページを表示できるようにしてみようと考えています。

ではっ!

関連記事

eclipse-juno-logo

C言語でEV3開発(1)

どもです。 2回目の投稿。 本格的な投稿としては、初めての投稿になります。 内容は、LEG

記事を読む

no image

C言語でEV3開発(7)

どもです。 今回のエントリーでは、いよいよEV3を動かしていきます。 新しい環境に対して、最もよ

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(2)-C#のユーザーコントロール開発(2つ目)

どもです。 前回に引き続き、今回もC#/WPFでの独自UI(ユーザーコントロール)の作成についての

記事を読む

arduino_relay_switch_002_ae_g5v_drv_eye_catch

Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチカについて書きました。 その

記事を読む

no image

C言語でEV3開発(15)-TOPPERS/HRP2 EV3 で PID制御

どもです。 今回のエントリーは、コレまでのエントリーから内容を変えて、モーターの動作の制御をします

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(2)-出力ファイルの読める化

どもです。 前回の続きです。 前回は、VisualStudio/C#での単体テストの効率

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

iot_at_home_eye_catch

IoT開発(2)-ESP-WROOM-02で気温測定

どもです。 この記事は、IoT開発(1)-ESP-WROOM-02のセットアップからの続きです

記事を読む

no image

Windows-QtCreatorでのデバッグ

どもです。 更新の間隔が空いてしまいました。 久しぶりの更新です。 最近、Qtを触り始めま

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

tlp222af_001_eye_catch
Arduinoでリレースイッチ(1)-TLP222AF

どもです。 つい先日、やっとのことでリレースイッチを手に入れるこ

c_sharp_eye_catch
外部からMariaDbにアクセスする(2)-C#からMariaDbにアクセスする。

どもです。 前回のエントリで、外部からMariaDbにアクセスす

c_sharp_eye_catch
外部からMariaDbにアクセスする(1)-データベースの設定

どもです。 今回は、Linux上のMariaDbにWindows

think_about_utest
middle_unit
最小…よりも(ほんの)少し大きいテストフレームワーク

どもです。 今回は、単体テストのフレームワークについて書きます。

→もっと見る

PAGE TOP ↑