安卓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 舵機網路攝影機轉動
就介紹到這裡啦,又什麼想法或者有什麼問題請在下面留言,一起學習進步吧!