新しいものづくりがわかるメディア

RSS


Raspberry PiでIoTを始めよう企画

紙相撲が無駄にIoTになった!~Raspberry Piで始めるIoTデバイス入門

環境構築編2:WebIOPi

WebIOPiというのは、Raspberry Pi 用の、IoT向けライブラリです。簡単に言うと「スマホやPCのWebブラウザ上の操作で、リアルタイムにGPIOピン(など)を操作する」ためのツールです。「(など)」と書いたのは、今回はその用途に使っているだけで、やろうと思えば何でもできるからです。

もうちょっと具体的にいうと、 

  • 起動するとWebサーバが立ち上がる。その後、初期化処理(自由に書ける)、待機時処理(自由に書ける)を開始
  • ブラウザ上で何か操作をされたら、それに対応する処理(もちろん自由に書ける)を実行、終わったら待機時処理に戻る

Arduinoを使用したことがある方は、Arduinoのスケッチを書く感覚でRaspberry Piを制御できる、と考えていただければ大体合っています(初期化処理がsetup()、待機時処理がloop()、加えてブラウザ上の操作をトリガーに任意の関数を呼び出し可能です)。
各処理はPythonで記述します。ですからPythonで実行可能なことならたいていできるうえ、WebIOPi固有の機能もあり、IoTっぽいこと(GPIOピンの制御とかサーボモータ動かすとか)が簡単にできるようになっています。

さっそくチュートリアルのページを見ながらインストールしてみます。が、ここで注意。WebIOPiは2015年6月時点でRaspberry Pi 2に未対応です。なのでこちらのページを参考に、スクリプトを一部修正しました(2でない場合は不要)。

wget --trust-server-names
"http://downloads.sourceforge.net/project/webiopi/
WebIOPi-0.7.1.tar.gz?r=http%3A%2F%2Fsourceforge.net
%2Fprojects%2Fwebiopi%2Ffiles%2F&ts=1431007213&use_mirror=jaist"
tar xvzf WebIOPi-0.7.1.tar.gz
cd WebIOPi-0.7.1/
nano python/native/cpuinfo.c #Raspberry Pi 2用に修正。2でない場合は不要
nano python/native/gpio.c #Raspberry Pi 2用に修正。2でない場合は不要
sudo ./setup.sh

 

URLはバージョンアップで変わると思いますのでご注意ください。インストールの最後に「インターネットに接続する?」みたいなことを聞かれますが、これはCloud Piのおかげで今回は不要(LANだけつながっていればよい)なのでNOを選びました。すべて完了すれば、

sudo webiopi -d -c /etc/webiopi/config

 

これでWebサーバを立ち上げることができます。

無事立ち上がったら、動作チェックです。LAN上でテストしてもいいのですが、せっかくなのでCloud Pi越しにやってみましょう。スマートフォンでさっき入れたCloud Piのアプリを立ち上げまず。WebIOPiの待ち受けポートはデフォルトで8000番になっていますので、アプリ上で「ラズパイ・ポート」の項目を8000に変更してから接続してください。

接続できたら、Webブラウザを立ち上げて「http://127.0.0.1:8080」にアクセスしてみましょう。
認証がかかっていて、デフォルトではIDが「webiopi」、パスワードが「raspberry」です。

デ、デター!これがWebIOPiのサンプル画面です。
このように、Cloud Piを使うと、8000番ポート(スマホ・ポート)にアクセスした通信を、Raspberry Pi側の8080番ポート(ラスパイ・ポート)に転送することができます。ふしぎー!

引き続きWebIOPiのテストです。ここでおもむろに一番上の「GPIO-Header」を押してみましょう。

 

Raspberry PiのGPIOポートの一覧が出てきます。ただし、ただの一覧表ではありません。ポート番号を押すと、実際に入出力の切り替えと、出力の場合はHIGH/LOWの切り替えができるんです!

ためしにGPIO2をOUTにして、Raspberry Pi の GPIO2ピン—LED—50~100Ωくらいの抵抗—Raspberry Pi の GROUNDピン(どれでもよい)の順で接続、画面上でGPIO2の横にある「3」というボタンを連打してみてください。インターネット経由でLEDをチカチカさせることが可能です! 南極基地からでも、です。
(LEDは足の長いほうをGPIO2側にしてください)

さて、この時点でもうThings(LED)がインターネットにつながったわけですから、これはもうIoTですよ。順調に行けば30分もあればここまでたどり着けると思います。ちょっとやばくない? 30分でIoTデバイスできるのやばくない? 便利すぎてちょっと怖くなってきたので、気を落ち着けるために今度はハードウェアの製作に入りましょう。 

おすすめ記事

 

コメント

ニュース

編集部のおすすめ

連載・シリーズ

注目のキーワード

もっと見る