從 Zero 開始(12)- 使用 PiCommander 即時監測類比資訊 by Michael | CodeData
top

從 Zero 開始(12)- 使用 PiCommander 即時監測類比資訊

分享:

從 Zero 開始(11)- 使用 PiCommander 即時監測溫濕度資訊 << 前情

準備與確認工作

現在準備為PiCommander提供即時監測類比資訊的功能,先確認已經準備好下列項目:

  • Raspberry Pi:已經安裝好PiCommander而且可以正確的運作。
  • Android App:已經在Android行動電話或模擬裝置,安裝與設定好PiCommander Android App。
  • Web App:已經安裝好TomEE與PiCommander Web App。

因為Raspberry Pi的GPIO架構,只能夠處理數位的資訊,所以不能夠直接使用很多輸出類比資訊的零件與設備。不過Raspberry Pi也可以搭配使用數位類比轉換器,例如MCP3008,使用它讀取各種電子零件與設備輸出的類比資訊,轉換成數位資訊後,就可以讓Raspberry Pi的GPIO針腳讀取與使用。

因為數位類比轉換是很常見的應用,所以有很多數位類比轉換器可以選擇。目前在Raspberry Pi最常使用的是MCP3008,製造廠商把很多需要的零件封裝在一起,製作成一個外觀像是IC的零件,很方便使用在各種電子設備、電路板或麵包板上。

MCP3008的規格是8通道10位元(bit)的數位類比轉換器,它可以輸入並轉換八個類比訊號,轉換後的數位資訊是0到1023。應用程式可以使用讀取的數位資訊,根據連接的類比零件或設備換算成實際的資訊,例如電壓值或氣溫。

除了原來的基本零件,你需要另外準備好下列的零件:

連接類比數位轉換晶片

MCP3008在連接到Raspberry Pi以後,可以連接與讀取八個類比訊號(電壓高低),經由程式可以讀取到0到1023的數值:

swz_12_001

依照下面的線路圖連接MCP3008晶片:

swz_12_002

類比設備與零件

一般電器設備經常使用旋鈕執行一些調整的工作,例如傳統音響設備的音量調整旋鈕,或是調整照明光線的亮度。這類的功能大部份是採用可變電阻(Variable Resistor、VR)這種零件,它可以經由使用者的調整改變它的電阻值,經常使用在各種電子設備執行需要的調整工作。

swz_12_003

類比搖桿是電視遊樂器與大型電玩常見的設備,使用者可以使用它執行上、下、左、右方向的控制,大部份的類比搖桿也具備按鈕的功能,讓使用者按下搖桿執行選擇或確定的功能。下面圖片的左側是類比搖桿模組的外觀,提供一些輸出與輸入的針腳,圖片的右側是接上操作把手的外觀,使用者可以使用把手控制方向,也可以按下把手觸發開關。

swz_12_004

有許多價格便宜而且穩定的類比輸出零件,經由MCP3008的轉換,就可以讓Raspberry Pi使用這些零件。例如前面說明的可變電阻與類比搖桿模組。市面上還有其它很多類比輸出的零件,例如接下來要說明的LM35溫度感應器,它是一種電壓變化型的感應器,在提供電源給它以後,溫度的變化會改變它的輸出電壓。下面的圖型是LM35溫度感應器的外觀與針腳的說明:

swz_12_005u

連接光敏電阻

光敏電阻(photo resistor)經常用在自動夜間照明的小夜燈,光線強弱的
變化或改變它的電阻值,光線越強電阻越大,經過的電壓就會越小,光線越弱電阻越小,經過的電壓就會越大。

swz_12_006

電源經過光敏電阻以後,把輸出連接到MCP3008的類比輸入,就可以根據數值的變化知道光線的強弱。依照下面的線路圖連接光敏電阻,輸出訊號連接到MCP3008的0號類比輸入:

swz_12_007

類比資訊設定檔

依照下列的步驟執行修改類比資訊設定檔的工作:

  1. 如果Raspberry Pi的PiCommander正在運作,先停止應用程式。
  2. 在使用PuTTY登入到Raspberry Pi的視窗,執行下列的指令開啟類比資訊設定檔:

    cd ~/PiComFire2/projects/PiComserviceFire
    sudo nano picdevice.txt
  3. 畫面顯示類比資訊設定檔預設的內容:

    D00,光敏電阻,false,3,0

  4. 設定檔的內容使用的格式為「代碼,名稱,遞增,精確度,通道」:

    • 代碼:識別代號,大寫D後面接著兩個數字編號。
    • 名稱:依照功能設定顯示在畫面的名稱,例如環境亮度或溫度。
    • 遞增:可以設定為true或false。因為光敏電阻在光線越強時,讀取的值越小,光線越弱時,讀取的值越大,光線強弱與讀取的值呈反比,所以設定為false。
    • 精確度:讀取的類比值通常會有浮動,設定為3表示忽略正負3之間的變化。
    • 通道:連接到MCP3008類比輸入的編號,可以設定為0到7。
  5. 你可以修改預設的內容,例如把「光敏電阻」修改為「Light」,表示光線強弱。

  6. 修改完成以後,依序按下「Ctrl+X」、「Y」與「Enter」鍵,儲存修改後的設定檔案。

  7. 執行下列的指令啟動PiCommander應用程式:

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

監測類比資訊

啟動PiCommander Android App,登入Firebase以後,選擇「Device」功能,畫面顯示上面加入的光敏電阻資訊,目前的溫、濕度是應用程式自動加入:

swz_12_008

啟動PiCommander Web App,選擇「Device」功能,畫面同樣顯示上面加入的光敏電阻資訊,目前的溫、濕度是應用程式自動加入:

swz_12_009

下一步

瞭解類比資訊監測的作法以後,接下來會繼續介紹其它類別零件。

後續 >> 從 Zero 開始(13)- 監測更多類比資訊

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

相關文章

留言

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