Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

WiringPi-PHPの使い方(その2)

前回少し大変でしたが、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?)

とエラーログが出ています。これを解消しないといけないようです。解決方法は次回のブログで紹介します。