このエントリーをはてなブックマークに追加
facebooktwittergoogle_plusredditpinterestlinkedinmail

こんにちは、tapunです。

はじめに

今日は、なんとWeb UIからラズベリーパイのGPIOを操作できるという噂の「WebIOPi」を試してみようと思いました!

ただ、最初に書いておきますがRaspberry Pi 2 Model B では、失敗しました。
なのでこのブログは失敗記事です。
# 古いバージョンなら問題なくいけそうです。。。

(2015/12/18 追記 コメントしてくださったmt08さんのおかげで動くようになりました!! :-) )
[メモ] WebIOPiのRaspberryPi2 簡単対応 (GPIO Header 40pin)

Web IOPiってなに?

説明に良い動画がありました!↓

初めての電子工作ブログで、GPIOピンを使って制御するためには、それぞれのピンのIn/OUTを設定したりしないといけなかったですが、このツールを使うとWebブラウザ上でピンをクリックするだけでIn/OUTの切替や無効化ができるようです!!こりゃ便利です!

準備するもの

前回のブログと同じ材料です。

やること

回路を組む

今回は、このような超単純な回路にします!

回路図[GPIO17] – [抵抗] – 足長[LED]足短 – GND

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

  1. ダウンロードページの最新版のURLを確認する
    右クリック – リンクのURLをコピー でコピーできます!
    今の最新版0.7.1のURLはこちら
    <http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz/download>
    dlpage
  2. Raspberry Pi にSSHでアクセスします。
    ※SSHの設定はこちらを参照してください。
  3. インストールファイルをダウンロードします。
    $ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz/download
    $ tar xvzf download

     先ほどコピーしたダウンロードもとURLからgownloadという圧縮ファイルをもってきて、tarコマンドで解凍します。

  4. WebIPOiフォルダに移動し、setup.shを実行します。
    $ cd ./WebIOPi-0.7.1/
    $ sudo ./setup.sh

     ※ちょっと時間かかります!5分くらいかな。

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

     と聞かれます。今回は家の中だけで大丈夫なので”n”キーでスキップします。

  5. インストールおわり!
    WebIOPi successfully installed
    * To start WebIOPi foreground   : sudo webiopi [-h] [-c config] [-l log] [-s script] [-d] [port]
    
    * To start WebIOPi background   : sudo /etc/init.d/webiopi start
    * To start WebIOPi at boot      : sudo update-rc.d webiopi defaults
    
    * Run ./weaved-setup.bin to install the Weaved IoT Kit and access your device over Internet
    
    * Look in /home/yiwase/WebIOPi-0.7.1/examples for Python library usage examples
    

WebIOPiのサービスを起動する

  1. 下記のコマンドを実行してサービス立ち上げます!
    $ sudo /etc/init.d/webiopi start
    [ ok ] Starting webiopi (via systemctl): webiopi.service.

ブラウザからWebIOPiにアクセスする

アクセス先はこちらです。

http://<Raspberry PiのIPアドレス>:8000

 ※IPアドレスは、”ifconfigコマンド”とかで確認できます。

認証

なにこれ?

調べたら、初回だけ認証が必要なようです。

デフォルトではこちらのようです。

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

 この認証情報を入力すると、、、

アクセス成功

入れました!!!

GPIO Headerをクリックすると。。。。

1それっぽい!けどちょっと違う!!

本当は、PIN番号をクリックすると空白の箱に IN / OUT の切替ができるはずなのですが・・・

サンプル:本来のあるべき姿

色々調べたところ、なんとソフトウェア開発が滞っており、Raspberry Pi 2には対応していないらしい・・・

It seems to be an excellent project but it isn’t updated anymore. That shouldn’t be a problem hence this software does NOT work at all the newest and most popular Raspberry 2B Try this on your old Raspberry and it works great. But don’t waist your time and try this on your Raspberry 2 It will NOT work and it will take you a while before you find out it’s outdated software.
引用:http://sourceforge.net/projects/webiopi/reviews?source=navbar

残念すぎる・・・

上記の引用元ブログも参考に1時間くらいがんばったんですけど、ダメでした。

Its NOT working at all !!!

2015/12/18 追記:コメントしてくださった心優しいmt08さんのお陰でうごくようになりました♪
詳しくはqiitaをご確認ください!

Raspberry Pi 2B用にWebIOPiの設定ファイルを修正する

修正箇所はこちらのすばらしいqiitaをご参考に。
[メモ] WebIOPiのRaspberryPi2 簡単対応 (GPIO Header 40pin)

作業内容も記載しておきます!

  1. Haerware Checkの変更(”BCM2708″→”BCM2709″)
    $ nano ./WebIOPi-0.7.1/python/native/cpuinfo.c
    ※40行目を下記のように変更
    if (strcmp(hardware, "BCM2709") == 0)

     

  2. GPIOの処理 (ペリフェラルのベースアドレスを0x20000000から、0x3F000000へ変更)
    $ nano ./WebIOPi-0.7.1/python/native/gpio.c
    ※32行目を下記のように変更
    #define BCM2708_PERI_BASE   0x3F000000
  3. GPIO Header(/app/gpio-header)の40pin対応
    もともと26pinしか対応していなかったので、40pinに拡張します。
    $ nano ./WebIOPi-0.7.1/python/webiopi/utils/version.py
    ※MAPPING2を下記のように変更。
    _MAPPING[2] = ["V33", "V50", 2, "V50", 3, "GND", 4, 14, "GND", 15, 17, 18, 27, "GND", 22, 23, "V33", 24, 10, "GND", 9, 25, 11, 8, "GND", 7, 0, 1, 5, "GND", 6, 12, 13, "GND", 19, 16, 26, 20, "GND", 21]
    

     

  4. 40pin用にテーブルを拡張する
    $ nano ./WebIOPi-0.7.1/htdocs/webiopi.js
    ※76行目と580行目を下記のように修正。
    ...
              this.PINS = Array(41);
    ...
              for (var pin=1; pin<=40; pin++) {
    ...

     

  5. もう一回setup.shを実行する
    $ sh ./setup.sh

     

  6. WebIOPiを起動する
    $ webiopi
    2015-12-18 22:26:04 - WebIOPi - INFO - Starting WebIOPi/0.7.1/Python3.4
    2015-12-18 22:26:04 - WebIOPi - INFO - GPIO - Native mapped to REST API /GPIO
    2015-12-18 22:26:04 - WebIOPi - WARNING - Access unprotected
    2015-12-18 22:26:04 - WebIOPi - INFO - HTTP Server binded on http://<your address>:8000/
    2015-12-18 22:26:04 - WebIOPi - INFO - CoAP Server binded on coap://<your address>:5683/
    2015-12-18 22:26:04 - WebIOPi - INFO - CoAP Server binded on coap://<your address>:5683/ (MULTICAST)

     動いてる!
    # エラーが出る場合はwebiopi -d でデバッグログを見てみましょう。

dekita2

うごくー!嬉しい!!

まとめ

全然まとまっていないのですが、今日はハマったまま終わりです。

Raspberry Pi 2 Bで成功している人の情報が見当たらないから、難しいのかな~ 誰かなおしてくれないかな~

また方法を見つけたら更新します。無念。

2015/12/18 追記:

「誰かなおしてくれないかな~」とか無責任なことを書いていたら、心優しい方が修正箇所をqiitaにまとめてくださいました!感激です!この情報過多な時代にもこんなにやさしい方がいるのですね・・・!

次はHubotを使ってボット化を試してみようと思います :-) 


 


Raspberry Pi ブログランキングへ