Home

Awesome

PiCommander

使用Android App控制與監控Raspberry Pi連接的硬體設備,例如LED與蜂鳴器。連接繼電器模組,也可以控制家用電器。

示範影片:

歷程

需求

硬體:

軟體:

開發環境:

架構

MQTT(Message Queuing Telemetry Transport)是由IBM與Eurotech共同研發的通訊協定。在2014年11月,MQTT v3.1.1已經成為OASIS標準。MQTT是應用在Machine to Machine(M2M)與Internet of Things(IoT)的通訊協定,透過發佈(publish)與訂閱(subscribe)的方式來傳遞訊息,特色是需要很低的硬體資源與網路頻寬。

PiCommander使用MQTT在不同類型的裝置傳送與接收訊息:

PiCommander包含下列三個部份:

  1. 安裝在Raspberry Pi的MQTT Broker:
    • MQTT Broker有很多選擇,這裡採用Mosquitto
    • 讓用戶端發佈與訂閱訊息。
  2. 使用Java技術開發,採用Paho類別庫,在Raspberry Pi運作的PiCommanderService應用程式。
    • 訂閱並處理Android發佈的訊息。
    • 控制連接在GPIO的零件與設備。
    • 發佈GPIO狀態變化的訊息。
  3. 使用Android技術開發,採用Paho類別庫,在Android裝置運作的PiCommander App。
    • 提供使用者設定與操作的畫面。
    • 發佈控制GPIO狀態的訊息。
    • 訂閱狀態變化的訊息,在畫面顯示目前最新的GPIO狀態。

功能

啟動在Raspberry Pi的PiCommanderService以後,就可以在Android裝置執行下列的操作:

  1. 啟動PiCommand App,選擇連線到MQTT Broker:

  2. 輸入MQTT Broker(Raspberry PI)的IP位址後選擇連線:

  3. 連線到MQTT Broker以後,選擇新增控制項:

  4. 選擇已經連接好設備與零件的GPIO針腳編號(Pi4J),輸入設備的說明後選擇新增:

  5. 新增後的控制項可以控制指定的GPIO針腳,切換為高電壓或低電壓:

  6. 在Raspberry Pi連接更多設備與零件以後,使用同樣的方式新增與設定控制項:

  7. 不需要的控制項可以在畫面長按後選擇刪除:

試試看

安裝執行環境與功能測試請參考InstallAndPlay.md