Rapiroをブラウザで動かしてみた 【準備編】

丸パンダ研究所のRapiro、しゃべるようになった。カメラもつけた。
しかし、それぞれの機能がバラバラで操作がめんどくさい。

そんなわけで、Rapiroの機能をひとまとめにしたインターフェイスを作成して、ブラウザから操作できるようにした。

WebIOPiを使ってWebサーバーを立てる

WebIOPiとは

WebIOPiとは、Raspberry PiにWebサーバーを立てて、ブラウザ経由でGPIOの制御やPythonスクリプトの実行ができるソフトウェア。
HTMLやJavaScriptで作った画面から、センサーやデバイスを操作できるようになる。

WebIOPiのセットアップ

WebIOPiをダウンロードする。

wget https://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz

ダウンロードが終わったら、解凍する。

tar xvzf WebIOPi-0.7.1.tar.gz

「WebIOPi-0.7.1」ディレクトリで、WebIOPi用のパッチファイルをダウンロードして適用する。

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

セットアップスクリプトを実行する。
途中で「Do you want to access WebIOPi over Internet ? [y/n]」(インターネット経由でWebIOPiにアクセスしますか?)と表示されたら、「n」を入力する。

インターネット経由でアクセスしてもよいが、セキュリティ設定など一気にめんどくさくなるので、丸パンダ研究所ではやっていない。どうしても外部からアクセスしたい場合は、十分に注意すること。

sudo ./setup.sh

「/etc/systemd/system/」ディレクトリに移動して、systemd用のサービス定義ファイルをダウンロードし、systemctlでWebIOPiを操作できるようにする。

cd /etc/systemd/system/
sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service

接続の確認

WebIOPiを起動。

sudo systemctl start webiopi

WebIOPiのステータスを確認。
「Active: active (running)」となっていれば、正常に起動している。

sudo systemctl status webiopi

必要に応じてサービスを停止・再起動することもできる。

[停止]

sudo systemctl stop webiopi

[再起動]

sudo systemctl restart webiopi

ブラウザで以下のURLにアクセス。

http://[RapiroのIPアドレス]:8000/

例:丸パンダ研究所のRapiroの場合

http://192.168.95.198:8000/

認証のダイアログが表示されたら、デフォルトのユーザー名とパスワードを入力してログインする。

ユーザー名:webiopi
パスワード:raspberry

下の画面が表示されればOK。

自動起動を有効にして再起動。

sudo systemctl enable webiopi.service
sudo reboot

自動起動を無効にする場合。

sudo systemctl disable webiopi

認証情報の変更

WebIOPiの認証情報を変更。

sudo webiopi-passwd

以下の情報を入力する。

  • Enter Login: 使用するユーザー名
  • Enter Password: 使用するパスワード
  • Confirm password: 確認のためにもう1回使用するパスワード

セキュリティ面が不安なので推奨はしないが、認証が不要な場合は、設定ファイルでパスワードの部分をコメントアウトすればよい。

/etc/webiopi/configを開く。
ここではvimを使用しているが、好きなエディタで構わない。

sudo vim /etc/webiopi/config

[HTTP]のところにあるpasswd-fileの行を「#」をつけてコメントアウトする。

#passwd-file = /etc/webiopi/passwd