2020年11月24日火曜日

raspberry pi : WEB から LED ON/OFF

目的:

WEB画面から raspberry pi に 接続した LED の ON/OFF を行う。

環境/構成:

WEB画面から ON/OFF を行うため、

  • WEBサーバー (apache2)
  • php

のインストールを行い、php から LED ON, LED OFF のプログラムを実行する。
LED ON, LED OFF のプログラム、LED接続回路は こちら を参照。

アプリケーションインストール:

  • WEBサーバー(apache2) のインストール
    sudo apt install apache2
    インストール完了で apache が 起動する。
    ブラウザから、http://"raspberry pi の アドレス" へアクセスすると、
    "Apache2 Debian Default Page" が表示される。
  • php のインストール
    sudo apt install php
    php -v で、php のバージョンが表示される。
    また、

    php -r "echo date('Y-m-d');" で、日付が表示される。

html ( .php) ファイルの設置:

/var/www/html の下 に html 格納用のディレクトリを作成し、以下の様な html (.php)を格納する。

<?php
if ($_GET['on'] == "ON") system('./led_on') ;
if ($_GET['off'] == "OFF") system('./led_off') ;
?>

<!DOCTYPE html><html lang='ja'>
  <head><meta charset='UTF-8'>
    <style>
      input {margin:8px;width:100px;}
      div   {font-size:16pt;text-align:center;width:250px;border:solid 4px #93ff93;}
    </style>

    <title> Color LED Controller </title>
  </head>

  <body>
    <div>
      <p>LED ON/OFF</p>
      <form method='get'>
        <input type='submit' name='on' value='ON' />
        <input type='submit' name='off' value='OFF' />
      </form>
    </div>
  </body>

</html>

この php では、ON ボタン の押下で ./led_on を、OFF ボタン の押下で ./led_off を実行する。

この為、php と同じディレクトリに led_on, led_off の実行ファイルを格納する。
 ( led_on, led_off の実行ファイルは こちら を参照。)
 

php 実行ユーザのグループ設定:

led_on, led_off の 実行は root で行うか、実行ユーザが gpio グループに所属している必要がある。
php の実行ユーザ ( apach2 の実行ユーザ ) は、www-data である為、 www-data に gpio グループを追加する。

sudo usermod -aG gpio www-data

www-data に 追加されたことを確認する。

groups www-data

追加されていれば、一度 raspberry pi をリブートする。

sudo reboot
 

WEB アクセスで LED ON/OFF 実行:

ブラウザから、

http://"raspberry pi の アドレス"/"html のディレクトリ"/led_ctl.php

にアクセスする。(led_ctl.php は 上で格納した php ファイル)
以下の様な画面が表示される。


ON ボタン押下 で LED ON,
OFF ボタン押下で LED OFF 

する。




0 件のコメント:

コメントを投稿