安卓APP與智能硬體相結合的簡易方案,安卓app智能相結合

來源:互聯網
上載者:User

安卓APP與智能硬體相結合的簡易方案,安卓app智能相結合
第1章 概  述(作者小波QQ463431476)(來源http://blog.chinaaet.com/zhaocundang/p/5100017645部落格)

(來源   http://www.cnblogs.com/xiaobo-Linux/部落格)

                                          

1.1 設計背景與意義

安卓物聯絡統的設計主要是解決安卓手機APP與智能硬體的結合,將互連網和生活中使用的家用電器結合。像智能家居那樣,未來的發展離不開互連網,更離不開物聯體系。手機通過4G網路就可以與家用網路相串連,個人不在家中,就可以知道家裡發生的所以事情,只要動一動手指頭,在手機APP上點一點,遠在千裡之外就可以控制家裡的檯燈,風扇,熱水器等家用電器,如果回家晚,就可以提前開啟APP,通過網路開啟家裡的熱水器。此外還可以遠程監控家裡的情況,給生活提供更多的便捷與快樂。物聯絡統APP的設計朝著智能化發展方向,與物聯網相結合,為生活帶來方便,為生活增添樂趣。

1.2 設計目標

(1)瞭解並熟練編寫Android代碼,瞭解安卓相關架構,瞭解安卓開發體系與運行機制,瞭解Eclipse Android環境的配置。

(2)使用多種Android組件,熟練使用Android多種控制項。本軟體是基於Eclipse開發環境,採用了Activity, Broadcast Receiver, Service組件,頁面菜單採用Navigation Drawer ,每個頁面採用Fragment,能任意比例適應手機大小,而且比較靈活。首頁採用grid view網格布局,只是採用了橫向布局,能夠橫向滾動的效果,可以快速地開啟任意頁面,比較方便。

(3)採用語音辨識控制。項目中採用科大 訊 飛 語音辨識API介面,來語音控制電器,小車,快速方便,而且具有語音文本朗讀的功能。

(4)最簡約的介面UI設計,採用Tranlucent沈浸式,獲得簡明友好的介面設計,扁平化簡約圓形按鈕,隱藏式瀏覽選單的快捷方便,最大限度的節省介面空間布局。

(5)使用Socket 通訊端 串連WIFI 並實現傳輸資料,主要傳輸字元,用來控制硬體裝置的高低電平觸發。

(6)實現多種資料存放區方式:完成SQLite資料庫的儲存,主要儲存使用者登入帳號密碼;另外一種比較輕快的資料儲存方式share preference,主要用來暫時儲存WIFI設定資訊資料。

(7)實現硬體的焊接工作,主要是對Arduino開發板代碼的設計,檯燈風扇USB介面以及外部供電介面的設計,舵機串連的方式,網路攝影機有OpenWrt路由器串連的設定,繼電器的焊接,以及平衡車電機驅動模組,MPU6050陀螺儀,Arduino主控,電機碼盤和電機的接線方式。

第2章 需求分析2.1 功能需求

安卓手機物聯絡統APP可以通過4G網路連接到家用網路,查看家裡的具體情況,可以查看家庭監控,可以遠程遙控網路攝影機向左,向右轉動。可以遠端控制家裡面的電器,例如熱水器,檯燈,風扇等家庭電器。此外也可以遙控智能平衡車,實現小車的前進,後退,向左,向右等。

2.2 介面需求

(1)登入、註冊介面

首先是使用者登入介面,使用者登入和註冊的介面為同一個,用來登入並註冊帳號密碼並且儲存在SQLite資料庫中。使用者可以隨時登入並註冊相關帳號資訊,SQLitte資料庫儲存帳號資訊使使用者資訊更加安全,便於維護資料庫。

(2)主屏介面

使用者主介面用來使使用者快速地選擇功能,採用GridView,實現了橫線滾動,可以使使用者有更好的體驗。

(3)使用者介面

使用者介面主要顯示使用者的資訊,採用TextView來顯示可以完成什麼樣的功能。

(4)網路攝影機介面

網路攝影機介面主要實現監控視頻的即時顯示,以及控制監控網路攝影機向左,向右轉動。

(5)網路介面

網路介面主要用來配置使用者佈建的WIFI地址,視頻連接埠和控制連接埠號碼,便於開發維護,採用Share Preference輕量級儲存資料,可以方便的儲存資料,下次不用再次輸入內容。

(6)電器介面

電器介面主要控制檯燈、風扇的開關。

(7)語音介面

採用科大訊飛語音API介面,實現語音辨識控制電器開啟關閉,以及對平衡車的姿態控制。

(8)小車介面控制

主要實現對平衡車的前進、後退、向左、向右的方向控制。

 

//http://www.cnblogs.com/xiaobo-Linux/  qq463431476 (趙存檔編寫)

 

第3章 概要設計3.1 設計架構圖

系統主要分為5大主模組,主要是使用者資料模組,網路攝影機模組,網路設定儲存模組, 控制模組,語音辨識和語音朗讀模組,小車控制模組,系統總體框圖如3.1所示:

圖3.1 系統設計框圖

 3.2系統模組框圖設計

(1)使用者登入/註冊模組框圖

採用SQLite3資料庫作為儲存資料的方案,可以方便的維修使用者資訊。使用者登入、註冊框圖3.2.1所示:

圖3.2.1系統登入註冊框圖

(2)網路攝影機模組框圖

網路攝影機模組主要顯示監控畫面,以及控制網路攝影機左轉和網路攝影機右轉,3.2.2所示:

圖3.2.2網路攝影機框圖

(3)網路設定模組框圖

網路設定模組主要設定網路的URL地址,網路攝影機的連接埠號碼,網路控制連接埠號碼,框圖3.2.3所示:

圖3.2.3網路設定模組框圖

(4)電器模組框圖

電器模組框圖主要實現檯燈,風扇的開啟和關閉,框圖3.2.4所示:

圖3.2.4電器控制模組框圖

(5)語音模組框圖

語音模組主要實現用語音辨識來控制檯燈和風扇的開關,平衡車方向的控制。框圖3.2.5所示:

圖3.2.5電器控制模組框圖

(5)小車控制模組框圖

小車模組主要是控制小車的方向,前進,後退,向左,向右,以及串連WIFI,框圖3.2.6所示:

圖3.2.6小車控制模組框圖

3.3 設計架構說明3.3.1 後台服務

 語音辨識和語音文本朗讀使用了後台服務元件,採用Service的好處就是可以靈活的調用服務,後台運行。語音模組通過Intent Start Service的方式來啟動Service服務,調用Stop Service 開關Service服務。服務裡面主要實現語音API介面調用,語音辨識,擷取語音辨識的結果,返回給Fragment。

3.3.2 SQLite 資料庫儲存

 使用者登入註冊模組採用了SQLite資料庫,SQLite3資料庫用來儲存使用者的帳號密碼資訊,方便維護使用者資訊資料。首先建立一個SQLite Helper的類來重載增刪 改 查的方法,並且建立Database資料檔案,以及建立表格。然後在使用者類中自己定義函數實現增刪改查。

3.3.3 Share Preference資料存放區

Android輕量級的資料存放區用來暫時儲存使用者的喜好設定,非常方便。使用者儲存的資料都是存放在XML檔案中。

3.3.4 Grid View 資料配接器

資料配接器將圖片和標題存放到鏈表資料結構中,顯示的時候就以圖片或者標題的長度遍曆鏈表,輸出完整的圖片和文字標題。

3.3.5 Navigation Drawer隱藏式瀏覽選單

隱藏式瀏覽選單就是側滑出介面菜單,節省空間的布局大小。側滑菜單採用Fragment裡麵包含一個List View, 採用一個資料配接器,List View裡麵包含圖片和標題。

第4章Arduino開發板硬體方案

4.2.1 Arduino 主控搭建

(1)採用了Arduino Nano 最小板外加一個擴充版,主要用來控制檯燈、風扇,語音模組和網路攝影機舵機,4.2.1.1所示:

圖4.2.1.1 Arduino Nano 主控板

(2)控制平衡車則是採用了Arduino UNO R3板,4.2.1.2所示:

 

圖4.2.1.2 Arduino Uno板

4.2.2 Arduino 檯燈、風扇繼電器搭建

繼電器用來弱電控制強電,給繼電器供電,來控制檯燈、風扇的開啟和關閉,4.2.2.1所示:

圖4.2.2.1 檯燈、風扇繼電器

4.2.3 舵機和網路攝影機的搭建

舵機主要控制網路攝影機的左轉和右轉,網路攝影機用來採集視頻映像,4.2.3.1所示:

圖5.2.3.1 舵機網路攝影機

4.2.4 SYN6288語音文本合成模組

模組主要用於語音合成,播放檯燈“檯燈已經關閉”,“檯燈已經開啟”或者播放“風扇已經關閉”,“風扇已經開啟”語音提示音,4.2.4.1所示:

圖4.2.4.1 SYN6288語音合成模組

4.2.5 OpenWrt 路由器模組

Openwrt簡單就是跑在微控制器上的Linux作業系統

路由器主要實現WIFI熱點,以及網路攝影機映像的採集,WIFI串口控制Arduino MCU主控板的工作,4.2.5.1所示:

帶串口的TX RX GND,然後串連MCU Arduino上的RX TX GND,即可通訊(前提是Openwrt上安裝ser2net一類的串口轉寄接收資料軟體)

圖4.2.5.1 OpenWrt路由器

4.2.5 平衡車整體電路搭建設計

平衡車系統電路搭建主要包括Arduino UNO R3主控制板,L298N電機驅動模組,MPU6059陀螺儀模組,降壓模組,其他包括電池,電機等組件,整體設計4.2.5.2所示:

圖4.2.5.2平衡車整體電路搭建

4.2.6 上部分電路搭建設計

上部分主要是控制檯燈、風扇和舵機網路攝影機的左右轉動,4.2.6.1所示:

圖5.2.6.1 上部分電路設計

第五章測試

5.2.4 語音辨識測試

    主要看語音辨識是否成功,測試圖5.2.4

圖5.2.4 語音辨識測試圖

5.2.5 廣播發送接收測試

主要測試廣播是否發送接收成功,測試圖5.2.5所示:

圖5.2.5 廣播測試圖

5.2.6 Wi-Fi 發送接收測試

主要測試WIFI是否發送接收成功,測試圖5.2.6所示:

圖5.2.6 WIFI發送接收測試圖

5.3 硬體測試過程5.3.1 檯燈風扇的測試

 用手機串連Wi-Fi測試是否可以開啟和關閉風扇,5.3.1所示:

圖5.3.1 控制檯燈風扇測試圖

5.3.2 網路攝影機和舵機的測試

 用手機串連Wi-Fi測試是否可以接收監控映像和舵機左右轉動,5.3.2所示:

圖5.3.2 網路攝影機和舵機測試

5.3.3 智能平衡車的測試

用手機串連Wi-Fi測試平衡是否可以前進後退向左和向右,測試5.3.3所示:

圖5.3.3平衡車測試

第6章 結 論

瞭解Android的開發流程,瞭解Android 的運行開發機制模式,熟悉了Android 4大組件代碼編寫與熟練的應用,對各種控制項都有所瞭解和更深入的研究。

物聯絡統的項目將安卓手機APP與智能硬體裝置結合,通過WIFI網路傳串口的方式,與Arduino MCU主控串口通訊,實現發送與接收資料,更加深入的瞭解軟體和硬體結合密不可分的關係,作為軟體與硬體結合,必定像是智能家居,智能物聯絡統 這樣的智慧型裝置的新潮流。

在項目開發中,對安卓各種UI介面和開發架構更有深入的瞭解,瞭解開發的思路,學習別人開發的方式方法,將與自己的項目結合,做一些更好的改進,在硬體中,學習Arduino 開發板硬體代碼的編寫,瞭解串口發送與接收的方式,保證能夠成功執行相關指令。對於平衡車的控制,主要是對MPU6050陀螺儀的角度輸出控制,卡爾曼濾波輸出比較穩定的角度值,然後PID計算角度輸出PWM脈衝來控制電機。當小車往前傾時,小車電機快速前進防止其傾倒,反之小車往後傾時,小車電機快速後退防止其傾倒,這樣就保證小車穩定運行。

 

項目代碼:https://item.taobao.com/item.htm?spm=686.1000925.0.0.QUGyYj&id=534691263656

 

   最後下面是項目的示範視頻:

   語音辨識控制風扇檯燈的開關

   

  安卓遠端控制智能機器人,最佳化好的話必定是家庭機器人控制新潮流

  

  Arduino 舵機網路攝影機轉動

  

       就介紹到這裡啦,又什麼想法或者有什麼問題請在下面留言,一起學習進步吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.