CentOS7 on Raspberry Pi 3にWebIOPiをインストールする

WebIOPiはWEBブラウザからGPIOの入出力が操作できるツールです。

WebIOPi - The Raspberry Pi Internet of Things Framework

Raspberry PiのGPIOの一覧が表示できたり、

GPIOをクリックするごとON/OFF、IN/OUTを切り替えられます。

インストール方法

まず、CentOSのインストールはこちら。

yomon.hatenablog.com

必要なパッケージをインストールします

# yum install python-devel patch

最新のWebIOPiをダウンロードして解凍

# wget http://downloads.sourceforge.net/project/webiopi/WebIOPi-0.7.1.tar.gz
# tar xvf WebIOPi-0.7.1.tar.gz

ディレクトリ移動してRaspberry Pi3向けのパッチ適用

# cd WebIOPi-0.7.1
# wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
# patch -p1 -i webiopi-pi2bplus.patch

インストールを実行します。

# ./setup.sh

途中で以下の質問が出るのでnでスキップします。

Do you want to access WebIOPi over Internet ? [y/n]
n

systemd登録

CentOS7なのでsystemdで制御します。systemdの定義をGithubから拝借します。

# wget https://raw.githubusercontent.com/neuralassembly/raspi/master/webiopi.service

このままだと環境と合わないので、一カ所だけ書き換えます。

  • 書き換え前
ExecStart=/usr/bin/python3 -m webiopi -l /var/log/webiopi -c /etc/webiopi/config
  • 書き換え後
ExecStart=/bin/python -m webiopi -l /var/log/webiopi -c /etc/webiopi/config

systemdの所定のフォルダにファイルを移動します。

# mv webiopi.service /etc/systemd/system/

systemctlでスタートと自動起動有効化します。

# systemctl daemon-reload
# systemctl start webiopi.service
# systemctl status webiopi.service
● webiopi.service - WebIOPI
   Loaded: loaded (/etc/systemd/system/webiopi.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2016-06-03 23:02:22 JST; 4s ago
 Main PID: 2150 (python)
   CGroup: /system.slice/webiopi.service
           └─2150 /bin/python -m webiopi -l /var/log/webiopi -c /etc/webiopi/config

ログを確認するとHTTPのアクセスURLがわかります。

# tail /var/log/webiopi
<>
2016-06-03 23:23:26 - WebIOPi - INFO - HTTP Server binded on http://192.168.1.10:8000/
<>

ここまでくると、ブラウザでアクセスすれば繋がるはずですが、繋がらない場合はFWではじかれている可能性があります。この場合Chromeだと「接続が拒否されました」と表示されたりします。

ここでは、FWを無効化しておきます。

# systemctl stop firewalld.service
# systemctl disable firewalld.service

ユーザとパスワードを聞かれるので以下のように設定します。

ユーザ パスワード
webiopi raspberry

繋がりました。

f:id:yomon8:20160604000143p:plain