Raspberry Pi 3を買いました。
今回は2からCPUスペックも上がり、それだけでなくWiFiとBLEもついたのがうれしいですね^ ^
RPi3にはElement14版とRS Component版があるみたいなのですが、どちらも基本的には変わらないようです。
私はElement14版を購入しました。
なので基本的にはにはSDカードとディスプレイ、キーボード、マウスがあれば成り立ちますね^ ^
RPiにはPythonライブラリがあるので、ここからGPIOを突けばカンタンに制御できてしまいます。
しかし、WebエンジニアにはPython触ったこと無いという人も多いと思います。
なのでここでWebエンジニアでも使えるライブラリ「WebIOPi」に使ってみたのでレビューします。
WebIOPiとは
WebIOPiはRaspberry Pi用のGPIOを触れるフレームワークです。
WebIOPiの特徴としては
・Webサーバ機能が標準で搭載されている
・プログラムを書かなくともデフォルトのURLにアクセスするだけでGPIOを制御できる
・REST APIに対応している
・機能な豊富なJavaScriptライブラリ(webiopi.js)が用意されている
といったところです。
立ち上げたあとURLで「http://<IPアドレス>:8000/header.html」を叩くと上記のようなページが表示されるのですが、
この画面の「IN」「OUT」でGPIOの入出力を決めて、
あとは番号をクリックして、オン・オフにするだけです。
これでGPIOが制御できます。
非常にカンタンでした。なので、GPIOにLEDを設定してしまえばLチカなんかカンタンにできてしまいます。
また、ここにあるようにJavaScript Libraryがあるので
これに従ってAPIを叩くようにすれば、自分で操作画面も作れます。
さらにREST APIについてもここをみると記載されているので、これがあれば遠隔操作も余裕です^ ^
WebIOPiを入れてみました
さっそく入れてみました。
以下URLよりダウンロードして、scpとかでアップロードします。
http://webiopi.trouch.com/DOWNLOADS.html
アップロードしたら、ラズパイの中にSSHで入って、その対象ディレクトリで
「tar xvzf WebIOPi-0.7.1.tar.gz」
と叩き解凍します。
以下コマンドを叩いてWebIOPiのディレクトリに移動しましょう。
「cd /home/pi/WebIOPi-0.7.1」
続いて以下コマンドを叩いてインストールします。
「sudo ./setup.sh」
あとは以下のコマンドで起動します。
「sudo /etc/init.d/webiopi start」
これでWebIOPiが使えるはずです。
なんとラズパイ3(2にも)対応していない。。。
と思ったら、WebIOPiはデフォルトでRasbpberryPi B(最初のバージョン)とB+(次のバージョン)しか対応しておらず。RPi2や3には対応していないことが発覚しました。
こんな残念な画面になってしまいます。。。
ラズパイ3に対応できるようにしてみました
これはSoCがBCM2708からBCM2709に変更しているからみたいで、そうなるとペリフェラルのベースアドレスも異なります。
なので、まずは参照するCPU情報が記載されている、
「python/native/cpuinfo.c」のファイルの40行目の
「if (strcmp(hardware, BCM2708 ) == 0)」と書かれているところの
BCM2708をBCM2709に換えましょう。
そして今度はGPIOについて設定しているファイル
「python/native/gpio.c」の32行目の
「#define BCM2708_PERI_BASE 0x20000000」の
BCM2708をBCM2709に
0x20000000を0x3f000000に変えてベースアドレスも適切なものにしなしょう。
これらが完了すれば
あとはコマンドで「sudo ./setup.sh」と叩けばOKでです。
動きました!
さあ、Raspberry PiをWebでガンガン動かしてみましょう!
-
購入金額
5,600円
-
購入日
2016年07月15日
-
購入場所
千石電商
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。