第1章 概 述 (作者小波QQ463431476) (來源http://blog.chinaaet.com/zhaocundang/p/5100017645博客) (來源 http://www.cnblogs.com/xiaobo-Linux/博客) 1.1 設計背景與意義 安卓物聯繫統的設計主要是 ...
第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 廣播發送接收測試