前回少し大変でしたが、WiringPi-PHPをインストールしました。今回は、実際にWiringPi-PHPを使用して、WebからGPIOを制御してみたいと思います。
以前、PHP(Webページ)でPythonコード(xxx.py)を実行する方法を紹介しました。
このPHPのコードと基本的には同じ構成で、WiringPi-PHPに置き換えてサンプルコードを作成しようと思います。WiringPi.phpというファイルを新規で作成します。
sudo vi /var/www/html/WiringPi.php
initボタンで初期化処理をし、startボタンでLEDが点灯、stopボタンでLEDが消灯するという動作になります。
----------WiringPi.php----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LedTest</title>
</head>
<body>
<?php
if (isset($_POST["init"])) {
echo "init";
wiringPiSetupGpio();
pinMode(26, 1);
}
else if(isset($_POST["start"])) {
echo "LED Light ON";
digitalWrite(26,1);
}
else if(isset($_POST["stop"])) {
echo "LED Light OFF";
digitalWrite(26,0);
}
?>
<form method="POST" action="">
<input type="submit" value="init" name="init">
<input type="submit" value="start" name="start">
<input type="submit" value="stop" name="stop">
</form>
</body>
たぶんこれで動くだろうと思っていたのですが、動かない。。。ソフトウェアって本当に予想通りに行かないことが多いですよね。ブラウザのinitボタンを押すと、"接続がリセットされました"と表示され、動きませんでした。/var/log/apache2/error.logのログを見ると、
wiringPiSetup: Must be root. (Did you forget sudo?)
とエラーログが出ています。これを解消しないといけないようです。解決方法は次回のブログで紹介します。