999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MQTT 的智能寵物追蹤系統①

2020-03-23 06:04:40林志舟葉傲斌
計算機系統應用 2020年2期
關鍵詞:界面用戶設備

林志舟, 任 凱, 葉傲斌

1(南京大學金陵學院 信息科學與工程學院, 南京 210089)

2(華東師范大學 計算機科學與軟件工程學院, 上海 200062)

隨著我國經濟的迅速發展, 人們的養寵意愿增強,寵物經濟成為城市經濟重要的組成部分[1,2].根據《2010-2015 年中國寵物市場調研及行業發展分析研究報告》[3],全國寵物數量已超過1 億只, 由寵物經濟興盛帶來的龐大寵物基數, 使得寵物丟失時有發生.在此背景下,設計一款以寵物追蹤為基礎功能的應用系統尤為重要.一方面, 系統的使用可在一定程度上解決由于寵物丟失帶來的社會問題; 另一方面, 系統在經濟方面的投資回報相對可觀, 可促進該類產品的進一步研發.

依托嵌入式設備和Android 平臺, 本文構建了基于消息隊列遙測傳輸(Message Queuing Telemetry Transport, MQTT)協議的智能寵物追蹤系統.該系統具有規劃尋寵路徑、語音導航、預估尋找時間、路況預測等多種功能.系統采用的MQTT 傳輸協議具有簡潔、小巧、可擴展性強、省流量、低功耗等特點, 可確保MQTT 客戶端的持久耐用[4].

1 整體架構

系統整體架構按照物聯網3 層模型可分為: 應用層、網絡層、感知層, 如圖1 所示.

圖1 系統整體架構圖

應用層包括Web 服務器、Android 客戶端應用程序(以下簡稱Android 端)和導航服務器3 部分.Web服務包含應用服務器、數據庫服務器兩部分.應用服務器主要負責處理Android 端發送來的各種請求, 并對每個請求給出響應.數據庫服務器負責用戶數據的存儲, 它與應用服務器部署在同一個硬件設備中,Android 端根據嵌入式設備的所在位置為用戶提供導航功能, 利用該特點實現寵物追蹤.導航服務器由高德地圖提供, 在具體實現時, 只需調用高德地圖為Android 端提供的服務接口, 不關心其內部實現.

網絡層主要依靠MQTT 協議進行消息的發布和訂閱.MQTT 服務器由蘇州煜瑛微電子科技有限公司提供, 該服務器主要負責寵物信息的發布與訂閱, 將寵物位置信息發送至Android 端.MQTT 服務器與Web服務器安裝在不同的硬件設備中.即使Web 服務器暫時不可用, 只要用戶在Android 端沒有退出登陸,Android 端的導航功能仍舊能夠正常使用.

感知層主要由嵌入式設備實現, 為了實現寵物追蹤功能, 寵物必須攜帶并完成設備綁定才能完成定位和追蹤功能.

2 Android 端的設計與實現

2.1 設備綁定

實現寵物追蹤需對寵物設備和Android 端應用程序進行綁定.綁定關系為一對多, 即每只寵物只屬于1 個用戶, 1 個用戶可擁有多只寵物.通過用戶的手機號碼來標識用戶, 通過設備的SN 號(設備序列號)來標識寵物.設備被封裝成項圈佩戴在寵物頸部, 可隨時通過本應用程序獲取設備的位置信息, 即寵物的位置信息.

綁定設備只需要用戶通過掃描SN 號即可完成.主要過程分為兩步: 首先, 依靠Android 平臺提供的Bitmap 接口, 將SN 號編碼為JSON 格式字符串, 再將字符串轉為黑白點陣, 最后轉化為二維碼圖片, 如圖2所示.其次, 在識別二維碼時, 通過攝像頭捕獲, 然后判斷編碼類型, 再根據已有信息進行解碼, 即可從開始的二維碼中獲取SN 號[5,6], 如圖3 所示.設備綁定完成后通過Android 端應用程序即可進行定位、導航等操作.

圖2 設備SN 號轉為二維碼

圖3 二維碼轉換設備SN 號

2.2 寵物導航

寵物綁定之后, 進行寵物追蹤還需要寵物的位置信息與Android 端的位置信息.寵物的位置信息通過MQTT 服務端獲取, 由于與MQTT 服務器建立的是長連接, 在用戶訂閱消息后, 可獲取MQTT 服務器發布的寵物位置信息.用戶位置信息的獲取需要依靠Android 平臺查找手機所有可用的位置提供器.在找到位置提供器后動態請求權限, 經用戶同意后獲取.在獲取雙方位置信息后, 調用高德地圖的API 即可開始導航.在低版本的SDK 中, 要實現語音播報需要語音在線合成平臺的SDK, 在取得導航播報信息后, 將播報信息轉換成語音.高版本SDK 對語音功能支持更好, 只需要集成導航公司提供的包含了語音功能的jar 包與so 包, 做好相關配置即可.

2.3 實現與服務端的交互

Android 端與導航服務器的通信由高德提供SDK 內部實現, 只需調用相關接口即可.Android 端和Web 服務器的交互通過HTTP 協議進行.在Android端采用了Okhttp 框架進行, 該框架可支持GZIP 格式,達到減少數據流量使用的目的.在編寫底層通信代碼時, 高版本Android SDK 不允許主線程進行通信操作,因為主線程需要進行界面元素的監聽, 若主線程負責通信, 則會使界面在通信時失去響應, 造成不友好的用戶體驗.所以在進行通信時, 應啟動子線程, 由子線程負責監聽, 并通過Handler 進行必要的界面更新等操作.在OkHttp 框架中, 也是基于該原理進行了封裝.

在與MQTT 服務端交互時, Android 端和嵌入式設備都可以看作MQTT 客戶端, 導入在MQTT 官網下載的jar 包之后, 在Android 端通過MQTT 協議提供的接口進行通訊, 整體過程如圖4 所示[7].

圖4 MQTT 服務器交互方式示意圖

3 嵌入式設備與MQTT 服務端的實現

嵌入式設備為集成MTK2503 芯片組的WZ-203CS開發板.開發板的底層是一個實時操作系統.圖5 為開發板的實物圖, 中間方形芯片為開發板的核心模塊.該核心模塊集成了GNSS、GPRS、藍牙等功能模塊, 分別由相應的接口對外提供服務, 其實現的內部結構框圖如圖6 所示.在核心模塊外部的開發板上嵌入了物聯網卡, 能夠滿足定位與追蹤需求.同時, 核心模塊還對外提供了SD、AUDIO 等接口, 通過外接SD 卡可存儲音頻等信息, 使得依托該開發板的系統擁有較好的可拓展性.對于集成了該開發板的設備, 開發商提供了一套較為齊全的服務.若不采用該服務, 可以在云平臺搭建屬于單個系統的私有云服務器, 整體設計思路相近, 系統容量會更加可觀.

圖5 WZ-203CS 開發板實物圖

圖6 開發板核心模塊結構框圖

嵌入式設備需要能夠維持與MQTT 服務器端的長連接.傳統智能家居設備與Android 端進行交互需要先進行配網再控制設備, 它們的連接由WiFi 模塊發送心跳包維持[8].與智能家居設備不同的是, 當用戶有寵物追蹤需求時, 寵物往往已不在家中, 此時再通過WiFi 模塊配網將使系統可用性大大降低, 故此時的連接交由開發板上內嵌的物聯網卡進行, 由GPRS 模塊負責連接的維持, 主動向MQTT 服務器上報設備狀態.在整個過程中, 為了保證每個用戶都能夠訂閱到自己設備的信息, 系統以設備SN 號為標識設置訂閱主題.簡化后的過程如圖7 所示.當用戶訂閱了主題之后, 就可以接收到來自設備的推送信息.1 個用戶可以訂閱以多個SN 號為標識的主題, 適用于1 個用戶擁有多只寵物的情形.為了避免訂閱主題在人工輸入環節出錯, 采用了二維碼掃描輸入的方法, 確保系統的易用性.

圖7 簡化后的發布訂閱模式示意圖

4 Web 服務端的實現

Web 服務端以Spring Boot 框架為基礎, 集成Hibernate 中間件進行數據持久化, 依靠Maven 進行代碼管理.Web 服務端對Android 端的響應利用了Spring MVC 的設計模式[9], 為Android 端提供服務的視圖層在服務端是不可見的.當用戶發起請求時, 根據用戶請求的URL, 控制器會為其映射到對應的處理方法中, 該方法會根據用戶需求進行業務處理, 并將結果以JSON 格式返回給Android 端進行解析.絕大多數業務都是對數據進行處理, 對于需要訪問數據庫的業務邏輯, 服務器端將關系數據利用Hibernate 映射到實體類中, 即MVC 框架中的模型層, 該業務只需通過操作實體類即可完成對數據庫的事務操作.依靠數據庫連接池、Hibernate 的Transaction 事務處理接口、加鎖等操作, 可以在一定程度上依靠代碼處理好并發.

5 系統測試與部分系統界面展示

5.1 Android 端的測試

由于Android 平臺開源的特性, 促進了眾多基于Android 平臺的硬件設備的出現, 這些硬件產品存在著不兼容的可能性.為確保系統穩定, 需要對Android 端進行兼容性測試.傳統測試每次只能在一個硬件上對測試用例串行執行, 云測試可以合理的動態調用各類資源, 通過一個共享可用的自動化測試環境提供高效的便捷服務[10].通過云平臺以較低成本覆蓋測試更多的設備, 盡可能發現系統的潛在兼容性問題.本系統Android 端借助百度移動云測試中心進行測試, 已通過MTC 認證并在百度應用市場發布.

5.2 業務流程

用戶首次進入該系統, 需要先注冊, 注冊時會收到云平臺發送的短信驗證碼, 通過驗證登陸.登陸后用戶掃描二維碼綁定設備, 綁定成功后用戶即可查看寵物位置信息.當寵物丟失時, 用戶可以通過位置信息發現寵物, 并選擇導航方式進行寵物追蹤.核心業務流程如圖8 所示.

圖8 核心業務流程圖

5.3 部分系統界面展示

用戶在注冊并登陸后, 可進入如圖9 所示的主界面, 在該主界面下用戶可以綁定設備、查看設備信息,完成綁定后, 點擊主界面下方導航即可進入如圖10 所示的導航界面預覽, 界面已將用戶與寵物的經緯度信息可視化, 用戶在該界面可確認寵物位置并確定是否要開始導航.當用戶決定導航尋寵時, 單擊地圖下方的圖形按鈕即可開始導航, 如圖11 所示.

6 結語

本文設計并實現了基于MQTT 協議的智能寵物追蹤系統.通過掃描二維碼的形式錄入、識別綁定寵物攜帶的硬件設備SN 號.以SN 號設置訂閱主題, 實現用戶與設備間一對多的關系.綁定完成后通過MQTT協議獲取寵物的位置, 通過高德地圖繪制從用戶到寵物的路徑, 并可實現導航功能.除核心模塊外, 系統還為用戶提供了許多其他功能, 如疫苗規劃、科普、物聯網卡充值等.系統在設計過程中融入軟件工程復用思想, 為系統預留了拓展接口.依靠這些拓展接口, 可漸增集成開發老人防走失, 汽車防盜等模塊.采用該協議實現的追蹤功能具有低功耗、長連接、低流量等優點, 為開發同類產品提供了一種新思路.

圖9 Android 端主界面圖

圖10 導航預覽界面圖

圖11 導航界面圖

猜你喜歡
界面用戶設備
諧響應分析在設備減振中的應用
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 国产在线视频导航| 国产成在线观看免费视频| 一区二区欧美日韩高清免费| 美女免费黄网站| 国内熟女少妇一线天| 亚洲欧美在线看片AI| 国产精品尤物在线| 亚洲电影天堂在线国语对白| 亚洲成肉网| 制服丝袜在线视频香蕉| 91在线无码精品秘九色APP| 午夜国产小视频| 亚洲熟女中文字幕男人总站| 2022精品国偷自产免费观看| 四虎精品黑人视频| 刘亦菲一区二区在线观看| 在线精品自拍| 男女性午夜福利网站| 国产十八禁在线观看免费| 精品福利视频导航| 特级aaaaaaaaa毛片免费视频 | 五月天丁香婷婷综合久久| 婷婷中文在线| 国产一级在线观看www色| 亚洲日本韩在线观看| 国产正在播放| 一级毛片不卡片免费观看| 91麻豆久久久| 国产伦精品一区二区三区视频优播 | 91精品专区国产盗摄| 国产成人综合日韩精品无码首页| 国产福利2021最新在线观看| 欧美午夜网站| 国产日韩av在线播放| 久草中文网| 日本人又色又爽的视频| 国产簧片免费在线播放| 久久香蕉国产线看观| 免费国产高清视频| 老司机aⅴ在线精品导航| 色妞永久免费视频| 日本成人精品视频| 国产拍揄自揄精品视频网站| 免费A∨中文乱码专区| 91精品国产福利| 女人毛片a级大学毛片免费| 亚洲丝袜第一页| 国产一区二区色淫影院| 欧美国产综合色视频| AV不卡国产在线观看| 最新加勒比隔壁人妻| 国产在线拍偷自揄观看视频网站| 久久精品国产一区二区小说| 亚洲美女高潮久久久久久久| 亚洲天堂视频在线观看| 国产办公室秘书无码精品| 免费女人18毛片a级毛片视频| 亚洲午夜片| 日本亚洲最大的色成网站www| 亚洲欧洲美色一区二区三区| 亚洲六月丁香六月婷婷蜜芽| 国产成人AV大片大片在线播放 | 国产高清国内精品福利| 日本色综合网| 欧美精品影院| 欧美A级V片在线观看| 国产99视频精品免费观看9e| 国产毛片片精品天天看视频| 中文字幕2区| 无码一区18禁| 91精品啪在线观看国产60岁 | 欧美人人干| 中文字幕一区二区人妻电影| 亚洲另类国产欧美一区二区| 午夜视频www| 老司机久久99久久精品播放| 狠狠干综合| 日韩毛片在线视频| 动漫精品啪啪一区二区三区| 日本久久久久久免费网络| 欧美精品色视频| 免费在线不卡视频|