Git Product home page Git Product logo

picommander's Introduction

PiCommander

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

示範影片:

歷程

  • 2015/12/17:PiCommander Android App 開放下載: https://play.google.com/store/apps/details?id=net.macdidi5.picom
  • 2015/03/31:為Android App加入項目排列功能。
  • 2015/03/26:完成監聽功能,可以在Android App接收GPIO輸入狀態。
  • 2015/03/18:開放原始程式碼,請參考這裡的說明。
  • 2015/03/18:支援GPIO擴充晶片:MCP23008與MCP23017,請參考這裡
  • 2015/03/16:覺得少了什麼?有錯誤?在這裡留下你的想法!
  • 2015/03/16:開放PiCommander v0.1應用程式。InstallAndPlay.md

需求

硬體:

  • Raspberry Pi Model B+Raspberry Pi 2 Model B
  • 8 GB MicroSD 記憶卡。
  • 5V 2A 電源供應器。
  • 無線USB網路卡。Edimax EW-7811Un
  • Android行動電話,Android 4.0.3或更新的版本。
  • 使用Raspberry Pi控制設備需要的零件,例如麵包板、連接線、LED、蜂鳴器、繼電器模組與家用電器。

軟體:

開發環境:

  • Java SE 8
  • NetBeans
  • Android Studio

架構

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

picommander's People

Contributors

macdidi5 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.