Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

PHP(Webページ)からGPIOを制御する方法(その2)

【スポンサーリンク】

前回はPHPからGPIOを制御する方法を試したのですが、うまく動作しませんでした。今回はその解決方法を記載したいと思います。

 

Apacheのエラーログの確認

PHPのWebページでstartボタンを押すと、pythonコードが実行され、LEDが光るようにコードを作成したつもりですが、LEDが全く光りません。まずは状況を確認するため、apacheのエラーログを確認しました。エラーログは下記の場所にあります。

/var/log/apache2/error.log

開いてみると

RuntimeError: No access to /dev/mem.  Try running as root!

とエラーが出ています。GPIOにアクセスできない、ルート権限で実行しろっという内容です。

 

apacheユーザーに権限付与

いろいろと調べてみると下記のコマンドでapacheユーザー(www-data)をgpioグループに追加し、apacheユーザーに権限を付与する必要がありそうです。

sudo usermod -a -G gpio www-data

 

再度、動作確認

上記のコマンド実行後、再度PHPで作成したWebページのStartボタンを押してみると、LEDが光っています。Stopボタンを押すと、LEDが消灯します。問題を解決して、ハードウェアが動作するとうれいしですね!

 

少し苦労しましたが、これでPHPからpythonコードを実行して、GPIOを制御することが可能になりました。WebページからGPIOが制御できますので、パソコンだけでなくスマートフォンからでもWebページを開いてGPIOを操作することができます。

 

GPIOを使用してセンサーやカウンタ等でハードウェアの情報を取得し、スマホでWebページを開きハードウェアの情報を確認する、ということがこれでできるようになります。いま流行りのIoTがRaspberry Piでもできそうです。