國立 交通大學 電信工程研究所 Android 平台上之位置感知行事曆提醒系統...

23
國國國國國國 國國國國國國國 ANDROID 國國國國國國國國國國國國國國國 國國國國 國國國 國國 國國國 國國國 國國 國國國國國 國 :一 國國 MA290110 國國 1

description

國立 交通大學 電信工程研究所 Android 平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞. 班級:碩研資管一甲 學號: MA290110 姓名 :陳 靜 宜. 目錄. 緒論 系統 架構 功能 架構 實 作 結論. 緒論. 研究動機: 每個人的購物習慣不一樣。 智慧型手機都有行事曆。 使用者使用智慧型 手機幾乎 有上網功能。 研究目的: 使用者接近商家或時間區間內,發出提醒。 規劃一條最佳路徑。 手機與雲端同步。 廠商新增商品或使用者自行新增商家。. 本系統 APP 特性功能如下: - PowerPoint PPT Presentation

Transcript of 國立 交通大學 電信工程研究所 Android 平台上之位置感知行事曆提醒系統...

Page 1: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

1

國立交通大學 電信工程研究所

ANDROID 平台上之位置感知行事曆提醒系統

指導教授:林亭佑 博士研究生:陳柏丞

班級:碩研資管一甲學號: MA290110

姓名:陳 靜 宜

Page 2: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

2

目錄壹. 緒論貳. 系統架構參. 功能架構肆. 實作伍. 結論

Page 3: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

3

壹. 緒論研究動機:1. 每個人的購物習慣不一樣。2. 智慧型手機都有行事曆。3. 使用者使用智慧型手機幾乎有上網功能。

研究目的:4. 使用者接近商家或時間區間內,發出提醒。5. 規劃一條最佳路徑。6. 手機與雲端同步。7. 廠商新增商品或使用者自行新增商家。

Page 4: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

4

與其他 APP 比較:本系統 其他 APP

行事曆 • 指定一段時間區間和要買的東西

• 使用者接近商家或在此時間區間時,發出提醒

只能指定時間和買的東西

路徑規劃 • 根據路況選擇店家• 所有要去的商家規劃出一

條最佳路徑

只能規劃到商店的路徑

同步功能 提供本地和雲端同步功能 只能存取雲端,很少 APP

會用到本地加雲端功能

商品分類 提供完整的分類,能讓商品的廠商使用,也能自己新增店家

只提供讓使用者隨意填寫

本系統 APP 特性功能如下: 1. 普通記事功能 2. 新增店家 3. 新增購物清單 4. 自行設置欲提醒的時間範圍區間 5. 獲取實際路徑的道路情況 6. 根據實際道路情況進行商家最佳路徑規劃 7. 離線資料庫 8. 能將附近商家都有賣的東西,列出每家商家所販賣之價格 9. 商品分類庫 10. 震動提醒功能 11. 顯示目前使用者與店家的地圖相對位置

Page 5: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

5

貳. 系統架構1. 手機一直接收 GPS 訊號。2. 此時使用者設置好購物清單要提醒的商品。3. 手機透過 GPS 來知道使用者位置,再去比對資料庫的資料。4. 最後透過距離演算法來計算是否離使用者很近。5. 若很近就提醒使用者。

* 本系統另一項同步功能:手機無法連上網路,也能正常操作,若恢復網路將自動同步使用者的資訊、所有商家跟購物資料。

Page 6: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

6

2.2 ANDROID PHONE

Android iPhone iPhone

開發公司 Google Apple

開發工具 JAVA Object C

市場佔有率 高 低IDE Eclipse + Android

(cross-platform) Xcode

(only MAC OS)

APP Market Google Play App Store

有大量 API 能使用,如:需要震動讓使用者知道新訊息,開發者只要透過幾行程式就能達到,具有強大得整合性。

Page 7: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

7

2.3 WEB SERVICES1. 為一種網路服務,透過 Port80 的方式,透過穿越 Port 來存取

背後的資料庫,其目的就是要當作雲端,提供 Android 透過網路交換資料或備份之用。

2. 例如:假設我們要建立一個氣象網站,網站提供的服務包括了氣象資訊查詢等等,我們只要能找提供服務的 Web Services ,然後將它們整合到網站中即可,不需要再花費時間和成本來建立自己的資料庫系統等。

3. 本論文使用方法是 HTTP 的 port80 來存取資料庫的資料,並與手機端做同步的動作。

Page 8: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

8

2.4 資料庫 (DATABASE)本論文的實作資料庫採用的是 MS-SQL 2008 :1. 可信度很高且具有安全性、可靠性和可擴展性。 2. 高效能,可以降低開發和管理資料基礎設施的時間和成本。

分類資訊資料表

記事資料表

商家資訊資料表

Data 記下提醒項目和告知系統提醒時間。

地址

推測距離

Page 9: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

9

參. 功能架構3.1 程式架構

GPS 地圖相關模組

購物資料庫模組

Page 10: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

10

3.1.1 GPS 地圖相關模組• GPS 控制模組 接收 GPS 的訊號,將經緯度回傳給 GPS 地圖模組。

• Google Map 地圖顯示模組 負責將 GPS 的點顯示在地圖上,並提供使用者查詢之功能,也能透過此模組標出商家的位置,同時也能做路徑規劃等應用。

• 計算距離模組 計算商店和現在使用者位置的距離,本論文預設的距離為 300M 內,代表接近可以提醒使用者。因為每個人對距離的觀念不同,所以這個數值並非固定,可由使用者去調整。

• 計算 Hamilton Path 模組 應用上最創新的演算法,透過此模組就能抓取使用者現在位置,至所有商家的路線,為此來找尋一條最佳路徑。目的是讓使用者把欲前往購物之商店在不需折返的情況之下都拜訪過一次,把之前在購物清單的物品做採買的。

Page 11: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

11

3.1.2 購物資料模組• 購物記事模組

此模組能協助使用者,在某個自定的範圍時間內買購物清單上的東西。

當使用者將購物清單設置好之後,只要等到使用者的手機 GPS 有更新時,系統就會讀取此模組,將所有相關的商家資料進行比對。

若 GPS 偵測在附近,就可開啟控制震動提醒;若沒有則略過,直到有找到為止。

另外這個模組很重要功能,就是將某個商品所有附近有賣的店家都列出,並把價格標示出來,由使用者選擇想去的商家。

• SQLite 資料庫模組

手機端本地的資料庫,存取包含購物記事資料、商品項目、商家等等。

確保兩邊與雲端資料庫同步,也會主動去檢查兩邊的資料是否相同。

• 資料庫連線模組

與 Web Services 連線,透過 JSON 來交換格式資料,並存取最新的資料或進行上傳之動作,來讓資料同步。

Page 12: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

12

3.1.3 提醒模組1. 能主要是使用 Android SDK 提供的 API 來實作,只要對一個函數下動作,就會震動或發

出聲音提醒使用者。

2. 手機端的主要流程是透過 GPS 控制模組,能抓取最新目前的點座標→

程式會主動去抓取資料庫中的商品,並自動比對列出符合商家的資料→

並觸發提醒模組去震動手機或發出聲音來提醒使用者。

3. 主要的技術是透過資料庫連線模組來與本地資料庫做存取,進行網路同步之動作,它主要透過 JSON 和 KSoap2 兩個 API 。

• JSON( 資料交換語言 ) :1. 透過文字基礎,將屬性連結起來,因為可降低語系的問題。2. 資料量相對也小很多,所以目前許多網路服務、 API 都喜歡使用 JSON 格

式的字串做為交換格式。

• KSoap2 :1. Android 平台調用 Web Services 需要使用 KSoap2 ,它是一個 SOAP Web services ,透過 KSoap2 Android 的 API 來實作。

Page 13: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

13

3.1.4 WEB SERVICES 端• wsGPS 模組

1. 處理由 port80 進來的網路資料,手機端程式會使用 KSoap2 通訊方式來求取資料。

2. 資料庫存取模組是否有對應的資料,若有的話會收集資料並轉換成 JSON 格式回傳給手機端。

• 資料庫存取模組

1. 為負責存取資料庫的模組,不管是商品項目、商家資料等等,都能透過下 SQL 指令的方式與 SQL Server Database 作溝通。

• SQL Server Database

1. 雲端的資料庫,它會與手機端的本地資料作同步之動作,以防到時使用者在別地方安裝本系統 APP ,資料會無法同步。

* Web Services 流程是由手機端透過 Web Services 在 Port 80 利用 KSoap2 通訊,交由模組來做資料存取。

*基本上 Web Services 端還是主要在存取資料用,重要的運算和判斷都是在手機端作處理。

Page 14: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

14

3.2 實作規格

手機 HTC

手機 OS Android 2.2 以上版本

開發軟體 Eclipse + Android SDK

通訊方式 搭配 Google 的 JSON 與 KSoap2 與伺服器溝通

資料庫 SQLite

手機端實作規格:

Server 端實作規格 :

開發軟體 採用 Visual Studio2008 與 C# OS Windows XP

通訊方式 JSON 與 KSoap2 與伺服器溝通 資料庫 採用 MS-SQL2008

Page 15: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

15

3.2.2 環境建置Eclipse + Android SDK :(1)下載 Eclipse classic

(2) 下載 Java SDK(JDK)

(3) 下載 Android SDK

(4) 安裝 Eclipse 與 Android SDK

(5) 安裝 Eclipse ADT(Android Development Tools)

(6) 安裝後重新啟動

(7) 安裝完後,就能開始開發 Android APP

Visual Studio 2008 + SQL Server 2008 :Web Services 採用 .NET 的平台來實作。

資料庫為 MS-SQL2008 。

程式語言採用 C# 。

必須安裝以下軟體:

(1) 安裝 Visual Studio 2008 專業版

(2) 安裝 SQL Server 2008

(3) 透過 lib 項目做連結

Page 16: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

16

3.3 距離演算法1) 距離演算法:

1. 輸入兩點的 GPS 座標,就能算出兩點之間的距離。

2. 定義是由是否小於某個距離數值來認定。

3. 若進入販賣此時,就會由提醒模組來告知。

4. EARTH_RADIUS 是個定值,設為 6371 。

點相減用 toRadians 取得弧度再透過數學公式,就能取得兩點距離如下公式:

Page 17: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

17

實際路徑選擇:

距離長的到達時間和紅綠燈秒數相加,

相加

若與距離短的到達時間和紅綠燈秒數相加,

互相比較

選擇花費最小的 Cost 這條路線。

判斷是否發出提示:• 使用者與商家的距離小於 300 公尺。• 就加入提醒清單,並透過使用者所設定的提醒模式做 trigger 的方式。

• 若距離大於 300 公尺則什麼都不做。

Page 18: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

18

2) Hamilton Path 演算法:

西元 1859 年愛爾蘭數學家漢米爾頓 (William Hamilton)想解決路徑行走問題,目的是找出一個路徑,能夠把每一個城市中要拜訪的客戶都串起來,而且不能回溯。

例子:• 使用者將觸發提醒的參數距離設為 1400 公尺,為半徑 1400 公尺範圍內。• 路線上的數字代表所花費的 cost ,考慮到實際路徑的紅綠燈秒數總和以及使用者與此間商

家的直線距離。

Page 19: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

19

3.4 運作機制流程圖新增資料: 提醒流程:

1. 手機輸入要購買的品項清單或做普通記事功能。

2. 資料經由 Web Services ,透過走 Port 80 的方式。

3. 也能透過 Json 格式的方式來交換資料,進行同步等動作。

Page 20: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

20

存取資料庫流程: 地圖顯示流程: Hamilton Path 流程:

Page 21: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

21

肆. 實作

APP主畫面 商品內容與類別 新增店家 日期範圍

Page 22: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

22

符合當下購物列 商品在商店的資訊,並告知遠近

詳細店家資訊和購買的東西 最佳路徑

Page 23: 國立 交通大學 電信工程研究所 Android  平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞

23

伍. 結論1. 本系統會連結到雲端上,所以若換另一隻手機也不用擔心同步問題。2. 自行決定要提醒的日期範圍區間,可以調配要在什麼時間區間裡提醒使用者需

要買東西是很人性化的一個功能。3. 相同的商品在不同的店家會將價格排列出來提供使用者參考。4. 某家小店在資料庫中並無資料,可以自行新增店家資訊。

未來能更加精進之處:5. 物品的分類不足。6. 無法確切掌握到實際路況。因為現在只用虛擬的紅綠燈秒數以及隨機的時速,並不符合真實的情況。

7. 由於第二點, Hamilton Path 路徑也會有些許的誤差。8. 部分並無考慮到使用者是在對向或是目前這個車道上。