WebIOPiはウェブブラウザからラズベリーパイのGPIOをポートを制御できるフレームワークです。WebIOPiはWebサーバー機能も動作しているため、プログラムを作らなくてもウェブブラウザからWebIOPiのURLにアクセスして、Javascriptで簡単にGPIOポートに接続した電子回路などを操作できます。
WebIOPiは2018年1月現在では開発がとまっており、ヴァージョンが0.7.1となっているため、最新のラズベリーパイでは動作しません。しかし、パッチを充てることで動作させることが可能です。
STEP1.まずはWebIOPiをダウンロードして解凍
WebIOPiはpythonでかかれたオープンソースのフレームワークです。ラズベリーパイ上で公式サイトを開いて「WebIOPi-0.7.1.tar.gz」をクリックしてダウンロードします。(公式サイト:http://webiopi.trouch.com/ )
通常は、Downloadフォルダ内にダウンロードされていますので、ファイルマネージャーからDownloadフォルダを開いてWebIOPi-0.7.1.tar.gzファイルを右クリックして「指定先にファイルを展開」をクリックします。
展開する場所はホームディレクトリにしておきますので、パスを「/home/pi」にして、「展開」ボタンをクリックして展開します。
するとホームディレクトリにWebIOPi-0.7.1というフォルダが出来上がります。
STEP2. WebIOPiにパッチを当てて修正、インストール。
WebIOPiは初期のころのラズベリーパイでは動作しますが、Raspberry Pi3 ModelBでは動作しません。そのため修正プログラムをGitHubより取得します。
まずは、ターミナルを起動して、以下のようにコマンドを入力して、WebIOPi-0.7.1フォルダ内に移動します。
続いて、以下のようにコマンドを入力して、wgetにてパッチファイルをゲットして、パッチを当てます。
$ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
$ patch -p1 -i webiopi-pi2bplus.patch
最後にセットアップスクリプトを実行してインストールします。少々待ち時間があります。
$ sudo ./setup.sh
途中で「Do you want to access WebIOPi over Internet?」[Y/N]と聞かれます。これはインターネット側から操作したい場合の設定で後からも変更可能ですので、ここでは「N」と入力してEnterを押しておきましょう。
STEP3. 環境を整えサンプルファイルを設置。
次に、ホームディレクトリ内にWebIOPi用にドキュメントルート(WebIOPiでアクセスするためのディレクトリ)を作成します。任意の名前でよいですが、ここでは「webiopi」というフォルダをホームに作成し、ここをドキュメントルートにします。
ホームディレクトリに移動して以下のコマンドを入力します。
$mkdir webiopi
するとホームディレクトリにwebiopiというフォルダが作成されます。
WebIOPiをインストールすると、/usr/share/webiopi/htdocs 内にサンプルプログラムがインストールされていますので、このフォルダ内を全て今回柵下webiopiフォルダ内にcpコマンドで以下のようにしてコピーします。
$ cp -r /usr/share/webiopi/htdocs/* webiopi/
次に/etc/webiopi/configファイルをテキストエディタで開いてドキュメントルートの位置をwebiopiフォルダに設定します。今回使うテキストエディタはleafpadというものを使います。
$ sudo leafpad /etc/webiopi/config
Leafpadでconfigファイルが開いたら、doc-rootと書かれた場所を探し、先頭の#マークを削除して、以下の図のようにファイルのパスを設定します。
編集が完了したら、「ファイル」-「保存」を行ってドキュメントルートの設定は完了です。
STEP4. 動作を確認する。
まずは、webiopiの機能を起動します。起動には以下のコマンドを使います。
$ sudo systemctl start webiopi
特にエラーがで表示されなければ、これでwebiopiが起動しています。
次にアクセス可能かどうか、動作を確認します。まずウェブブラウザを開いて以下のURLを入力します。
http://raspberrypi.local:8000
必ずhttp://から入力してください。(これはポート番号8000を指定しているため行います。)
画面が開くと認証画面になりますので、ユーザー名:webiopi パスワード:raspberry を入力して進みます。
以下のような画面が表示されればWebIOPiは無事インストールが完了し、動作していることになります。
webiopiの動作を停止させるには、以下のコマンドを入力します。
$ sudo systemctl stop webiopi
以上が、WebIOPiのインストールから起動・終了までの流れです。