從 Zero 開始(7)- 在 Raspberry Pi 安裝與測試 PiCommander by Michael | CodeData
top

從 Zero 開始(7)- 在 Raspberry Pi 安裝與測試 PiCommander

分享:

從 Zero 開始(6)- 認識 Raspberry Pi GPIO 與基本零件 << 前情

準備與確認工作

  • Raspberry Pi
    • 已經安裝與設定好作業系統
    • 可以連線到網際網路
  • 個人電腦
    • 可以使用PuTTY連線到Raspberry Pi
  • 需要的零件
    • 麵包板
    • 公/母杜邦線
    • 麵包板連接線
    • 220ohm電阻

下載 PiCommander

現在準備在Raspberry Pi安裝PiCommander應用程式,它是使用Java嵌入式技術開發的,可接收與儲存Firebase資料庫,負責監控連接在Raspberry Pi的設備與零件:

swz_07_001

在個人電腦使用PuTTY連線到Raspberry Pi的視窗,執行下載PiCommander專案的指令:

cd ~
git clone git://github.com/macdidi5/PiComFire2.git

執行指令以後的畫面:

Cloning into 'PiComFire2'...
remote: Counting objects: 41, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 41 (delta 1), reused 37 (delta 0), pack-reused 0
Receiving objects: 100% (41/41), 13.25 MiB | 165.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.

完成上面的工作以後,下載的檔案都儲存在「/home/pi/PiComFire2」資料夾。

為了讓PiCommander可以讀取DHT11溫、濕度感器,同樣在使用PuTTY連線到Raspberry Pi的視窗,執行下列安裝程式庫的指令:

cd ~
git clone git://github.com/macdidi5/PiSensorJNI.git
cd PiSensorJNI
chmod +x build.sh
sudo ./build.sh

傳送 Firebase 金鑰檔案

在「從 Zero 開始(5)- Firebase 雲端即時資料庫服務」說明的「下載 Firebase 專案金鑰檔案」,已經下載與儲存的Firebase金鑰檔案,需要傳送到Raspberry Pi給應用程式使用:

  1. 在個人電腦開啟瀏覽器,輸入下載的網址http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  2. 找到「Binaries」的「For Windows on Intel x86」,選擇「pscp.exe」的下載連結,儲存下載的檔案:

    swz_07_002

  3. 選擇「開始」後,在「電腦」上按滑鼠右鍵,選擇「內容」。

  4. 在「系統」視窗選擇「進階系統設定」:

    swz_07_003

  5. 選擇「進階」標籤後選擇「環境變數」:

    swz_07_004

  6. 選擇「Path」項目後選擇「編輯」:

    swz_07_005

  7. 不要修改原來變數名稱與變數值的內容。如果你下載的pscp.exe放在「C:\work」,在變數值的最前面加入「C:\work;」,選擇「確定」:

    swz_07_006

  8. 回到環境變數視窗後選擇「確定」按鈕。回到系統內容視窗後同樣選擇「確定」按鈕;最後關閉系統視窗完成設定。

在個人電腦啟動命令提示字元視窗,執行下列切換資料夾的指令:

cd Firebase金鑰檔案儲存的資料夾

同樣在命令提示字元視窗,執行傳輸Firebase專案金鑰檔案到Raspberry Pi的指令,提示輸入密碼的時候,輸入Raspberry Pi的密碼(如果沒有修改的話,密碼是raspberry。把192.168.1.101替換為你個Raspberry Pi IP位址):

pscp 金鑰檔案名稱 [email protected]:/home/pi/PiComFire2/projects/PiComServiceFire

啟動 PiCommander

在個人電腦使用PuTTY連線到Raspberry Pi的視窗,執行啟動PiCommander應用程式的指令:

cd ~/PiComFire2/projects/PiComServiceFire
sudo java -jar PiComServiceFire.jar Firebase專案URL 金鑰檔案名稱

執行啟動PiCommander的指令以後,如果沒有任何問題的話,稍候片刻,就可以看到下面這樣的訊息:

Check device file...
Init Firebase...
Init Firebase done...
PiComServiceFire add listener...
PiComServiceFire process control...
PiComServiceFire running...
Add listener: GPIO 4,true,false
Add listener: GPIO 6,true,false
GPIO 0:false
GPIO 1:false
GPIO 2:false
GPIO 3:false
GPIO 7:false
GPIO 10:false
GPIO 11:false
GPIO 12:false
GPIO 13:false
GPIO 14:false
GPIO 15:false
GPIO 16:false

啟動PiCommander以後,它會處於服務的狀態,按下「Ctrl + C」可以結束應用程式。

控制 LED

準備好一個LED、一個220 ohm電阻和兩條公/母杜邦線,依照下面的線路圖連接好需要的零件:

swz_07_007

下面是連接好零件的照片:

swz_07_008

在個人電腦啟動瀏覽器,開啟Firebase Console,選擇「Database」後選擇「Control」的「+」:

swz_07_009

展開Control節點後的畫面:

swz_07_010

修改「GPIO_00」的資料為「true」,就可以點亮LED,修改為「false」關閉LED:

swz_07_011

準備好一個LED、一個220 ohm電阻和一條公/母杜邦線,依照下面的線路圖,再連接另外一顆LED:

swz_07_012

下面是連接好零件的照片:

swz_07_013

使用上面的作法控制第二顆LED「GPIO_01」。在Firebase修改資料以後,在Raspberry Pi運作的PiCommander應用程式,會即時接收到最新的資料,再根據接收到的內容,點亮或關閉指定GPIO的LED。

偵測開關

準備好一個開關、一條麵包板連接線和兩條公/母杜邦線,依照下面的線路圖連接好需要的零件:

swz_07_014

下面是連接好零件的照片:

swz_07_015

在個人電腦啟動瀏覽器,開啟Firebase Console,選擇「Database」後選擇「Control」的「+」。按下開關不放,「GPIO_04」的資料會從「false」成為「true」,放開開關,資料會從「true」成為「false」:

swz_07_016

準備好一個開關、一條麵包板連接線和一條公/母杜邦線,依照下面的線路圖,再連接另外一個開關:

swz_07_017

下面是連接好零件的照片:

swz_07_018

使用上面的作法測試第二個開關「GPIO06」。在Raspberry Pi運作的PiCommander應用程式,會偵測GPIO04和GPIO_06的輸入狀態,按下或放開開關以後,把狀態儲存到Firebase資料庫。

下一步

完成在Raspberry Pi的PiCommander應用程式安裝與測試,接下來為系統加入Android App,就可以在行動裝置執行監控的工作。

後續 >> 從 Zero 開始(8)- 安裝 Android 模擬裝置 Genymotion

分享:
按讚!加入 CodeData Facebook 粉絲群

相關文章

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

mm Meng12/20

sudo java -jar PiComServiceFire.jar http://hellofiException in thread "main" java.lang.UnsatisfiedLinkError: no dht11sensor in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at net.macdidi5.picomservicefire.PiComServiceFire.(PiComServiceFire.java:51)
該如何解決,另外請問控制LED我在firebase 輸入true但沒反應,是要如何啟動PiCommander,下什麼指令?謝謝

garyzcwang09/30

pi@raspberrypi:~/PiComFire2/projects/PiComServiceFire $ sudo java -jar PiComServiceFire.jar http://gw-firebase-575d2.firebaseio.com/ gw-firebase-575d2-f9c92bf3aedb.json
Check device file...
Unable to determine hardware version. I see: Hardware : BCM2835
,
- expecting BCM2708 or BCM2709.
If this is a genuine Raspberry Pi then please report this
to [email protected]. If this is not a Raspberry Pi then you
are on your own as wiringPi is designed to support the
Raspberry Pi ONLY.

請問:該如何解決...??
我是用 raspberry Pi 2 Model B ,並且跟著做到這裡說..

熱門論壇文章

熱門技術文章