星期一, 1月 27, 2014

Raspberry Pi 筆記(四):WebIOPi讓瀏覽器控制樹莓派

[2014/01/26]
要用瀏覽器或APP對Raspberry pi進行控制,需先在Raspberry Pi安裝WebIOPi。這套程式可讓使用者在瀏覽器上控制遠端的Raspberry Pi,讓連接的LED亮或滅,透過PWM也可控制步進馬的轉速及讀取感應器的值呈現在網頁上等功能。

WebIOPi是用 Python寫成的,可完整支援Unified Serial/SPI/I2C 控制超過30種以上的設備,包括類比轉換、IO擴充及感應器等,同時也可撰寫Javascript/HTML使用者介面,呈現控制所需呈現的使用者介面。

先看一段影片,透過瀏覽器控制Raspberry Pi的GPIO,讓Pin7及Pin11分別為開跟關,表示LED的亮與滅。


[安裝程序]

安裝WebIOPi之前,要在Respberry pi安裝 Python 2.7或3.2版,也需手動先安裝GCC及 Python development headers,如果使用 Raspbian 2014-01-07版本,Python(2.7.3)及GCC(4.6.3)都已安裝在Image裡了。

安裝Python development headers的方法:
$ sudo apt-get install python-dev python3-dev

以下是webiopi的安裝步驟:
$ wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
$ tar xvzf WebIOPi-0.6.0.tar.gz
$ cd WebIOPi-0.6.0
$ sudo ./setup.sh

截至2016.1.16為止,Webiopi最新版本為0.7.1,由於Raspberry Pi 2 Model B 的GPIO Pin有40個,因此安裝的步驟有點不一樣,安裝之前要先安裝python-rpi.gpio :

$ sudo apt-get update
$ sudo apt-get install python-rpi.gpio python3-rpi.gpio
下載Webiopi的位置如下:
$ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
$ tar xvzf WebIOPi-0.7.1.tar.gz
$ cd WebIOPi-0.7.1
如果用的是Raspberry Pi 2 或 B+,要先進行Patch,程序如下:
$ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
$ patch -p1 -i webiopi-pi2bplus.patch
$ sudo ./setup.sh
設定為Daemon
安裝成功後,可將WebIOPi 設定成Daemon形式,以下指令可啟動或停止WebIOPi ,設定檔放在 /etc/webiopi/config : 
$ sudo /etc/init.d/webiopi start 或  $ service webiopi start
$ sudo /etc/init.d/webiopi stop  或  $ service webiopi stop

重新啟動
$ sudo /etc/init.d/webiopi restart 或  $ service webiopi restart

於boot時自動啟動與停止
如果在boot時要啟動WebIOPi,可執行:
$ sudo update-rc.d webiopi defaults

如果在boot時要停止WebIOPi,可執行:
$ sudo update-rc.d webiopi remove

遠端連線WebIOPi
要用瀏覽器連線至Raspberry Pi的WebIOPi,以我的Pi為例,設定的IP是192.168.1.104,可用8000進行連線:http://192.168.1.104:8000,成功後會出現需輸入帳號密碼的畫面,預設帳號是webiopi,密碼是raspberry。


GPIO Header畫面:

變更密碼
如果要變更Webiopi密碼,可執行webiopi-passwd
$ sudo webiopi-passwd
WebIOPi passwd file generator
Enter Login: webiopi
Enter Password:
Confirm password:

修改密碼後,需重新啟動WebIOPi
$ sudo /etc/init.d/webiopi restart

移除密碼保護
要移除登入時的帳號密碼保護,可刪除 /etc/webiopi/passwd 檔案或清成空白,重新啟動WebIOPi即可

[2014/04/05]
2014/03推出0.7版,這個版本增加支援一些晶片功能,如MCP3002 ADC 和 MCP4802 DAC 晶片,也增加PiFace Digital 擴充卡的驅動程式,也支援IPV6功能,有興趣可連線至:WEBIOPI Change Log 看一下增加哪些支援功能。
圖片來源:webiopi

[參考資料]

• webiopi
WebIOPi-0.7.1 Patch for Raspberry B+ and Pi 2

另外有個Project 稱做PiUi,是用行動電話來控制Raspberry Pi,作法也類似,您可至以下網站取得相關資訊:http://www.raspberrypi.org/archives/3583
Share:

0 意見:

張貼留言