Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 安卓APP與智能硬件相結合的簡易方案,安卓app智能相結合

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

編輯:關於android開發

安卓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所示:

1.png

圖3.1 系統設計框圖

 3.2系統模塊框圖設計

(1)用戶登錄/注冊模塊框圖

采用SQLite3數據庫作為存儲數據的方案,可以方便的維修用戶信息。用戶登錄、注冊框圖如圖3.2.1所示:

2.png

圖3.2.1系統登錄注冊框圖

(2)攝像頭模塊框圖

攝像頭模塊主要顯示監控畫面,以及控制攝像頭左轉和攝像頭右轉,如圖3.2.2所示:

3.png

圖3.2.2攝像頭框圖

(3)網絡設置模塊框圖

網絡設置模塊主要設置網絡的URL地址,網絡攝像頭的端口號,網絡控制端口號,框圖如圖3.2.3所示:

4.png

圖3.2.3網絡設置模塊框圖

(4)電器模塊框圖

電器模塊框圖主要實現台燈,風扇的打開和關閉,框圖如圖3.2.4所示:

5.png

圖3.2.4電器控制模塊框圖

(5)語音模塊框圖

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

6.png

圖3.2.5電器控制模塊框圖

(5)小車控制模塊框圖

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

7.png

圖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所示:

01.png

圖4.2.1.1 Arduino Nano 主控板

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

 

02.png

圖4.2.1.2 Arduino Uno板

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

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

03.png

圖4.2.2.1 台燈、風扇繼電器

4.2.3 舵機和攝像頭的搭建

舵機主要控制攝像頭的左轉和右轉,攝像頭用來采集視頻圖像,如圖4.2.3.1所示:

04.png

圖5.2.3.1 舵機攝像頭

4.2.4 SYN6288語音文本合成模塊

模塊主要用於語音合成,播放台燈“台燈已經關閉”,“台燈已經打開”或者播放“風扇已經關閉”,“風扇已經打開”語音提示音,如圖4.2.4.1所示:

05.png

圖4.2.4.1 SYN6288語音合成模塊

4.2.5 OpenWrt 路由器模塊

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

路由器主要實現WIFI熱點,以及攝像頭圖像的采集,WIFI串口控制Arduino MCU主控板的工作,如圖4.2.5.1所示:

06.png

帶串口的TX RX GND,然後連接MCU Arduino上的RX TX GND,即可通信(前提是Openwrt上安裝ser2net一類的串口轉發接收數據軟件)

serial.jpg

圖4.2.5.1 OpenWrt路由器

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

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

07.png

圖4.2.5.2平衡車整體電路搭建

4.2.6 上部分電路搭建設計

上部分主要是控制台燈、風扇和舵機攝像頭的左右轉動,如圖4.2.6.1所示:

08.png

圖5.2.6.1 上部分電路設計

第五章測試

5.2.4 語音識別測試

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

11.png

圖5.2.4 語音識別測試圖

5.2.5 廣播發送接收測試

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

12.png

圖5.2.5 廣播測試圖

5.2.6 Wi-Fi 發送接收測試

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

13.png

圖5.2.6 WIFI發送接收測試圖

5.3 硬件測試過程

5.3.1 台燈風扇的測試

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

14.png

圖5.3.1 控制台燈風扇測試圖

5.3.2 攝像頭和舵機的測試

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

15.png

圖5.3.2 攝像頭和舵機測試

5.3.3 智能平衡車的測試

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

16.png

圖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 舵機攝像頭轉動

  

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved