• 沒有找到結果。

 軟體設計

(六) 結果

(七) 實作介紹

1. 首先在 android studio 中建立一個專案,並且開啟 gradle,

gradle 是一個基於 Apache Ant 和 Apache Maven 概念的專案 自動化建構工具。在執行專案時會去該項目跟目錄下讀取獲 得需要的配置資料。

圖 8 gradle 檔配置文件信息

2. 在 src/main 目錄下開發此應用的程式,將功能分為五大部 分:

(1) AbstractClass:將程式碼共同的部分向上提出以節省重 覆程式碼。

(2) Fragment:各 Fragment 對應之詳細實作,和介面操作實 作程式碼。

(3) Model:將所需的資料建立模型,以有組織性的方法管理、

操作傳輸的資料。

(4) Services:包含各項前後景的服務,裡面包含了 Restful、

手機本地端的 Data Base、傳輸 MQTT 和串接視訊 API 和 檢測 Beacon 訊號之服務。

(5) 各 Activity 實作:各 Activity 對應之詳細實作,和介 面操作實作程式碼。

圖 9 類別目錄

3.

詳細介紹 Service 內容

(1)RequestManager

:運用 volley 套件向後端要傳輸資料 或者取得資料,其中包含了登入、登出、註冊、取得 Beacon 資料、新增 Beacon 資料、刪除 Beacon 資料、傳送警報 等功能

圖 10 登入應用程式碼實作範例

(2) DataBaseService:提供將存取資料庫功能,內含取得使用 者資訊、取得連絡人資訊、刪除使用者 資訊、新增 Beacon 資訊等。

圖 11 取得使用者資訊程式碼實作範例

圖 12 增加使用者資訊程式碼實作範例

(3) MQTT:提供連接 MQTT server 之服務,使應用能夠訂閱 Arduino 之狀態且,能發送緊急狀態封包給 Arduino。

圖 13 連接 MQTT Server 部分程式碼

(4) SinchLoginService:提供連接 Sinch 的服務,使應用程式 能夠使用 Sinch 所提供的視訊服務。

圖 14 連接 Sinch 程式碼實作範例

(5) BeaconDetectService:提供連接以偵測 Beacon 訊號強度 推 斷 距 離 的 服 務 , 使 應 用 程 式 能 夠 知 道 是 否 別 戴 著 Beacon 的小孩接近 Android 感測裝置,若超過安全範圍 則下因應措施。

圖 15 偵測 Beacon 訊號部分程式碼實作範例

(八) Use Case Diagram

圖 16 系統使用者的使用案例圖

(九) ER Diagram

圖 17 資料庫 ER-MODEL

User 為使用者,sinchid 為 Android 使用到的套件上的 ID。

Contact 為聯絡人清單,存放 ID、名稱和聯絡人名字。

Beacon 為綁定至系統的 Beacon,mac 可存入 Beacon 的 MAC address。

(十) 系統操作流程圖

圖 18 系統操作流程圖

(十一) 操作介紹

圖 19 登入介面 開啟 APP 可進入此畫面

若沒有帳號可按下註冊按鈕

圖 20 註冊介面 輸入資料即可註冊成功

圖 21 連絡人介面 可在此頁面新增緊急連絡人

按下已新增的緊急聯絡人可撥打視訊電話

圖 22 設定介面

此介面可以登出並且能夠新增要被監控的小孩的 Beacon 和距離,亦考慮到了小孩不只一個,也可增加至超過一個。

圖 23 監控介面﹙一﹚

此介面能夠開啟關閉監控功能 上圖為未開啟時的畫面

圖 24 監控介面﹙二﹚

此介面能夠開啟關閉監控功能

上圖為開啟且已綁定的 Beacon 接近時的畫面,此時亦會發 出兇猛的狗叫聲以嚇阻小孩接近。

圖 25 接聽介面

當已綁定的 Beacon 接近時,家長端會收到此視訊來電,並 且無論手機在任意模式皆會調整至鈴聲模式且調至最大音 量。

圖 26 家中擺放之蜂鳴器

已綁定的 Beacon 接近時,家中擺放的蜂鳴器亦會同時響 起,以在第一時間告知在家中的家人。

(十二) 未來展望

目 前 只 有 Android 版本的,故希望能夠新增 iOS 版本,而 Raspberry Pi 的部分須使用者自行設定還太多,所以還有改良的空間,

加強使用者經驗。

(十三) 心得

次計劃從一開始的一點點想法到耗費時間製作,最後完成,

其中也有對此計劃能否如期的完成的不安感和同時的課業壓力,但看 到它完成了,而且比當初的小想法還要多功能,真的感到十分有成就 感,很多東西都是第一次實作,其中也有很多人協助我完成此計劃,

感謝曾參與、協助本計劃的所有人,謝謝科技部能夠給予我此次機會。

(十四) 參賽紀錄

智慧終端與人機互動軟體創作專題競賽

(十五) 參考文獻

[1] 張志勇、翁仲銘、石貴平、廖文華(2013),物聯網概論,碁峰。

[2] Visual studio code,https://code.visualstudio.com/

[3] Android Studio,https://developer.android.com/studio [4] Android, https://www.android.com/

[5] Smartphone OS Market Share, International Data Corporation, http://www.idc.com/promo/smartphone-market-share/os

[6] Matthew S. Gast(2014) , Building Applications with iBeacon:

Proximity and Location Services with Bluetooth Low Energy,O'Reilly Media。

[7] Eben Upton、Gareth Halfacree 著、曾吉弘 譯(2013),Raspberry Pi 使用者手冊,馥林文化。

[8] 孫駿榮、蘇海永(2015),用 Arduino 全面打造物聯網,碁峰。

[9] 孫宏明,完整學會 Git, GitHub, Git Server 的 24 堂課(第二版) [10] Passbeemedia,https://www.passbeemedia.com/ibeacon/。

[11] MQTT,http://mqtt.org/。

[12] 高淑珍、吳建興(2012)。資料庫管理系統概論。藍海文化。

[13] 朝井淳、陳奕苓(2007)。SQL 語法範例辭典。旗標。

[14] MongoDB , https://www.mongodb.com/。

[15] ElasticSearch, https://www.elastic.co/。

[16] Cassandra, http://cassandra.apache.org/。

[17] Lineabe Smartband,http://www.lineable.net/englishsmartband。

相關文件