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

来源:http://www.cnblogs.com/xiaobo-Linux/archive/2016/07/02/5634883.html
-Advertisement-
Play Games

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

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 廣播發送接收測試

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 總體原則 縮進 對於所有編程語言,我們要求縮進必須是軟tab(用空格字元)。在你的文本編輯器里敲 Tab 應該等於 4個空格 。 可讀性 vs 壓縮 對於維護現有文件,我們認為可讀性比節省文件大小更重要。大量空白和適當的ASCII藝術都是受鼓勵的。任何開發者都不必故意去壓縮HTML或CSS,也不必把 ...
  • 一、在實際工作中,都是一個團隊在做項目,不是一個人在工作。多人協作,就是每個團隊都有自己 的命名習慣。1、css選擇符命名,規範。2、都有命名規範文檔。 二、css選擇符作用:指定css樣式所作用對象(範圍)1、標簽選擇符:針對html標簽2、id選擇符:針對頁面中只出現一次的內容,id3、類選擇符 ...
  • 這系列文章主要是學習Html5相關的知識點,以學習API知識點為入口,由淺入深的引入實例,讓大家一步一步的體會"h5"能夠做什麼,以及在實際項目中如何去合理的運用達到使用自如,完美駕馭O(∩_∩)O~ 先出一道題目:以下不是HTML5新增的API是 http://hovertree.com/tiku ...
  • //標準化總價錢 s:總價錢,n:保留幾位小數 function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";//更改這裡 ...
  • function ChangeDateFormat(cellval) { var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10)); var month = date.getMonth() + ...
  • 看完下麵大神的三篇文章就很清楚了 大白話講解promise(一) http://www.cnblogs.com/lvdabao/p/es6-promise-1.html 大白話講解promise(二) http://www.cnblogs.com/lvdabao/p/5320705.html 大白話 ...
  • 正所謂“一山不容二虎,一淵不藏兩蛟”,在某些“矯情”的需求中,數組中不能存在重覆的元素,於是就有了對數組去重方法的討論,關於數組去重的方法由來已久,我當然也想不出什麼原創的方法了,這裡只是簡單的總結一下以備忘。 不過,我們要先聲明一下,上面的這句強行組成的諺語還有下一句叫做“除非一公一母” ;也就是 ...
  • // 判斷substr字元串在str中出現的次數 isIgnore是否忽略大小寫! function countSubstr(str, substr, isIgnore) { var count; var reg = ""; if (isIgnore == true) { reg = "/" + s ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...