Raspberry Pi 筆記(55):(Zero W) Debain10 buster作業系統安裝WebIOPi

上週(2019-09-26) Raspbian 剛發行核心4.19的Debian 10的版本buster,測試一下安裝這個版本的作業系統到 Pi Zero W,並安裝 WebIOPi來使用。可是WebIOPi在2015/2/10之後就沒有在更新了,根據trouch官網的說明,僅支援Pi 2跟3,無法支援Pi Zero,我試著依照官網的安裝程序安裝完成,結果網頁無法呈現。Google一下看看有沒有方法可以解決這個問題,找到 Github thortex/rpi3-webiopi WebIOPi的程式,可以打包成安裝的系統。試著依照 thortex 的安裝步驟安裝,出現一些錯誤,如:E: Package 'hardening-includes' has no installation candidate,Package hardening-includes is not available, but is referred to by another package.等問題,試著找出解決的方法。發現這個套件僅支援到 Debian前一個版本 Stretch,我試著修正錯誤,改成 Zero W可以用的版本,以下是實做的步驟與結果:


[安裝thortex/rpi3-webiopi]

首先,執行作業系統更新:
$ sudo apt-get update
執行下載程式git前,需先確認一下是否已經安裝 git 程式,如果沒有的話,請先執行以下指令安裝 git:
$ sudo apt-get install git 
下載 thortex/rpi3-webiopi WebIOPi程式:
$ git clone https://github.com/thortex/rpi3-webiopi.git
變更目錄到 rpi3-webiopi/dev:
$ cd rpi3-webiopi/dev 
執行以下指令編輯 dev 目錄內的 01_setup-required-packages.sh 程式:
$ nano 01_setup-required-packages.sh
將以下紅框的部分改成 buster,亦即改用 Debian 10 的系統名稱:

修改完成後存檔。在執行剛修改的安裝套件程式,以及python所需程式的 script:
$ ./01_setup-required-packages.sh
$ ./03_install_python_dev.sh

接著就可以開始編譯主程式。編譯前,因下載的 rpi3-webiopi/dev 目錄內缺少buster版作業系統所需的編譯設定,需先建立buster需要的檔案才行。作法是在 /home/pi/rpi3-webiopi/dev的目錄下,將Debian 9 的Stretch 複製成 Debian 10 的 buster,再進行主程式編譯作業,以下是執行複製的指令:
$ cp -r debian_stretch debian_buster
接著編譯主程式:
$ ./10_make_deb.sh

編譯完成後,繼續安裝 webiopi 套件,分成 Python2 跟 3:
$ sudo dpkg -i ~/build.webiopi/python2-webiopi*.deb
$ sudo dpkg -i ~/build.webiopi/python3-webiopi*.deb
$ sudo webiopi-select-python 2
重新載入 daemon,並重新啟動 webiopi
$ sudo systemctl daemon-reload
$ sudo systemctl restart webiopi
假使要安裝 WebIOPi+ 在python3環境,可選擇 python3當作執行的主程式:
$ webiopi-select-python 3
$ sudo systemctl daemon-reload
$ sudo systemctl restart webiopi
重新起動 webiopi 的服務:
$ sudo /etc/init.d/webiopi restart

到這裡已經完裝完成WebIOPi了,可使用瀏覽器開啟,在URL輸入您樹莓派的IP:8000/webiopi,以我Pi的IP是192.168.1.108為例:
http://192.168.1.108:/webiopi
我以手機的瀏覽器輸入網址後,會出現下圖左方輸入密碼帳號的畫面,預設帳號為 webiopi,密碼 raspberry 。登入後會看到下圖右方的畫面:

按下 [GPIO Header] 出現以下畫面,就可以開始控制GPIO了(筆電的操作畫面)。


變更密碼
如果要變更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即可。

[連接線路]

連接GPIO4,Pin 6 GND接LED負極,Pin 7(GPIO4)接LED正極。

[執行結果]

我用一個LED接在 GPIO4,測試一下是否正常。

測試結果的影片:

[參考資料]

Post a Comment

較新的 較舊