平 欣,宋育斌,孔維賓,方忠慶,陳 希
(1.鹽城工學(xué)院 信息工程學(xué)院;2.鹽城市光纖傳感及應(yīng)用工程技術(shù)研究中心,江蘇 鹽城 224051)
隨著社會(huì)經(jīng)濟(jì)高速發(fā)展,人民生活質(zhì)量逐步提高,許多家庭飼養(yǎng)貓、狗等寵物。據(jù)統(tǒng)計(jì),2021 年全國城鎮(zhèn)寵物飼養(yǎng)人數(shù)達(dá)到6844 萬人[1],相較于2020 年增長8.7%;消費(fèi)市場(chǎng)規(guī)模則達(dá)到2490 億元,相較于2020 年猛增20.6%。研究表明,良好的飼養(yǎng)行為可有效促進(jìn)老年人積極參與體力活動(dòng),緩解老年人抑郁癥狀[2]。
由于生活節(jié)奏加快,人們?nèi)狈φ疹檶櫸?,造成寵物走失現(xiàn)象大量增加[3]。為有效加強(qiáng)寵物管理,保障公共衛(wèi)生安全,促進(jìn)寵物產(chǎn)業(yè)和諧發(fā)展[4],不少學(xué)者提出利用通信網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)智能化寵物管理。例如,莊帥[5]采用三層架構(gòu)和DAO、MySQL 等技術(shù)設(shè)計(jì)寵物管理系統(tǒng),主要實(shí)現(xiàn)寵物飼養(yǎng)者和寵物商店之間的業(yè)務(wù)。葉軍等[6]以用戶體驗(yàn)為中心,設(shè)計(jì)一種多功能寵物管理系統(tǒng)。該系統(tǒng)運(yùn)用Arduino 單片機(jī)實(shí)現(xiàn)多用戶控制,但主要偏向于寵物監(jiān)控功能。王亞文等[7]在社區(qū)層面基于SSM 框架設(shè)計(jì)寵物信息管理系統(tǒng)。
綜上所述,本文針對(duì)飼養(yǎng)寵物中的管理問題,設(shè)計(jì)一款智能寵物管理系統(tǒng)。該系統(tǒng)提供生活喂養(yǎng)、添加寵物檔案、導(dǎo)航電子圍欄、GPS 定位等功能,以便于用戶在微信小程序端查看寵物當(dāng)前位置信息,并利用polygons 多邊形圍欄為寵物劃警戒區(qū)域。
基于GPS 與微信小程序的智能寵物管理系統(tǒng)支持記錄寵物日常生活飲食,能提醒用戶及時(shí)預(yù)約寵物疫苗,設(shè)置電子圍欄防止寵物意外走丟。該系統(tǒng)既提升了寵物的生活質(zhì)量,又便于飼養(yǎng)者合理安排寵物日常作息,系統(tǒng)整體結(jié)構(gòu)如圖1所示。
由圖1 可見,系統(tǒng)分為硬件、軟件兩部分。其中,硬件部分由STM32、GPS 定位模塊及NB-IoT 模塊組成,通過GPS 收集寵物位置信息;軟件部分由微信小程序?qū)崿F(xiàn),包括首頁、生活記錄、預(yù)約、寵物檔案、導(dǎo)航模塊,導(dǎo)航模塊主要與服務(wù)器數(shù)據(jù)進(jìn)行通信以定位寵物位置,并包含電子圍欄、騰訊地圖等功能。
Fig.1 Overall system structure圖1 系統(tǒng)整體結(jié)構(gòu)
具體而言,系統(tǒng)使用MySQL 數(shù)據(jù)庫存儲(chǔ)位置信息及用戶登錄信息,Navicat 作為數(shù)據(jù)庫連接工具,其可視化界面可創(chuàng)建、組織、訪問與共享信息[8-10]。
基于GPS 定位芯片實(shí)時(shí)獲取STM32 的位置信息,利用NB-IoT 模塊訪問網(wǎng)絡(luò),服務(wù)器、MySQL 數(shù)據(jù)庫使用Socket進(jìn)行通信,并將獲取的STM32 位置信息發(fā)送至小程序端[11-12]。
寵物管理系統(tǒng)流程如圖2 所示。當(dāng)用戶登錄寵物管理系統(tǒng)小程序后,填寫賬號(hào)、密碼等信息進(jìn)行驗(yàn)證,若驗(yàn)證失敗會(huì)彈出提示,用戶可進(jìn)行下一步操作;若用戶驗(yàn)證成功則進(jìn)入主界面。主界面包含首頁、導(dǎo)航等6 個(gè)頁面模塊,用戶可根據(jù)自身需求選擇不同模塊。
Fig.2 Flow chart of pet management system圖2 寵物管理系統(tǒng)流程
智能寵物管理系統(tǒng)硬件部分由GPS、NB-loT 和STM32模塊組成。其中,GPS 定位模塊的型號(hào)為ATGM336H-5N-31,具有高靈敏度、低功耗、低成本等優(yōu)勢(shì),適用于車載導(dǎo)航、手持定位、可穿戴設(shè)備;數(shù)據(jù)傳輸模塊型號(hào)為WHNB73-BA,具有體積小、功耗低等優(yōu)勢(shì),適用于寵物穿戴設(shè)備,并且WH-NB73-BA 可利用NB-loT 網(wǎng)絡(luò)傳輸數(shù)據(jù),支持多頻段。物聯(lián)網(wǎng)平臺(tái)能幫助開發(fā)者實(shí)現(xiàn)設(shè)備接入與連接,快速完成產(chǎn)品開發(fā)部署。
此外,智能寵物管理系統(tǒng)還利用了云平臺(tái)技術(shù)與用戶設(shè)備進(jìn)行連接。例如,將系統(tǒng)與微信關(guān)聯(lián),用戶可通過小程序利用手機(jī)遠(yuǎn)程查看設(shè)備的工作情況與示警詳情。
MINA(Multipurpose Infrastructure for Network Applications)框架如圖3 所示。該框架在降低系統(tǒng)開發(fā)難度的同時(shí),提升了運(yùn)行速度,并且開發(fā)團(tuán)隊(duì)提供大量API,開發(fā)者可根據(jù)自身需求直接調(diào)用API來提升開發(fā)速度[13]。
Fig.3 MINA frame圖3 MINA框架
由圖3 所示,MINA 框架由視圖層和邏輯層組成。其中,視圖層由頁面Page 組成,每個(gè)Page 文件下均包含WXML、WXSS 文件,WXML 是一套由微信官方團(tuán)隊(duì)封裝的標(biāo)簽語言,為開發(fā)者提供大量包裝好的組件,WXSS 是一套基于CSS語言封裝的樣式描述語言,具有CSS大部分特性;邏輯層是小程序的邏輯、服務(wù)處理中心,視圖層頁面需要的數(shù)據(jù)、頁面交互處理邏輯均在邏輯層實(shí)現(xiàn),該層使用JS 語言進(jìn)行邏輯處理、數(shù)據(jù)請(qǐng)求及調(diào)用API 接口,數(shù)據(jù)在邏輯層處理后發(fā)送至視圖層,觸發(fā)視圖層頁面渲染,并接收來自視圖層的事件反饋[14-15]。
移動(dòng)終端利用微信小程序提供的接口與后端服務(wù)器進(jìn)行數(shù)據(jù)交互,由于小程序與系統(tǒng)后臺(tái)服務(wù)間通過微信服務(wù)器相連接,因此數(shù)據(jù)安全性有所保障。具體的數(shù)據(jù)交互流程如圖4所示[16]。
Fig.4 Data interaction flow chart圖4 數(shù)據(jù)交互流程
由圖4 可見,小程序首先通過wx.request 接口向微信服務(wù)器發(fā)送https請(qǐng)求;然后由微信服務(wù)器發(fā)送數(shù)據(jù)至系統(tǒng)服務(wù)器;最后數(shù)據(jù)庫得到指令寫入數(shù)據(jù)[16]。在小程序接收返回消息時(shí),服務(wù)器會(huì)先讀取數(shù)據(jù)庫數(shù)據(jù),然后將數(shù)據(jù)輸出至微信服務(wù)器。為保證傳輸?shù)姆€(wěn)定性和便捷性,會(huì)選擇以JSON 的格式將數(shù)據(jù)返回。
預(yù)約信息、生活記錄、寵物檔案及經(jīng)緯度信息均通過MySQL 數(shù)據(jù)庫進(jìn)行保存。如表1 所示,系統(tǒng)設(shè)計(jì)多張表保存不同類型的數(shù)據(jù)。其中,預(yù)約信息表包含預(yù)約名稱、標(biāo)題、地點(diǎn)、時(shí)間及備注字段。如表2 所示,經(jīng)緯度信息表保存用戶運(yùn)動(dòng)軌跡、當(dāng)前位置、經(jīng)緯度信息等信息。如表3所示,寵物檔案表記錄寵物生日、類別、名稱等信息。如表4 所示,寵物生活記錄表記錄寵物每天的喂食、換水情況等信息。
Table 1 Reservation information表1 預(yù)約信息
Table 2 Longitude and latitude information表2 經(jīng)緯度信息
Table 3 Pet profile information表3 寵物檔案信息
Table 4 Pet life record information表4 寵物生活記錄信息
圖5 為用戶登錄頁面,包含圖標(biāo)、輸入框及登錄按鈕組件。用戶可輸入手機(jī)號(hào)和密碼進(jìn)行登錄,或選擇頁面下方微信、微博、QQ 等第三方登錄方式。
Fig.5 Login interface圖5 登錄界面
圖6 為首頁界面。頁面頂部運(yùn)用swiper 滑塊視圖容器輪播3 張圖片,支持indicatorDots 浮點(diǎn)點(diǎn)擊更換圖片。頁面中間部分為寵物商店、疫苗社區(qū)、游樂場(chǎng)等入口。通過調(diào)用wx.navigateTo 接口在每個(gè)圖片中設(shè)置超鏈接,一旦點(diǎn)擊圖片觸發(fā)事件即可跳轉(zhuǎn)至其他頁面,如圖7、圖8 所示。首頁下半部分為熱點(diǎn)資訊區(qū)域,用戶可根據(jù)自身需求進(jìn)行查看。
Fig.6 Home page圖6 首頁頁面
Fig.7 Pet store page圖7 寵物商店頁面
Fig.8 Vaccine community page圖8 疫苗社區(qū)頁面
圖9 為生活記錄頁面。頁面包含switch 滑塊、提交和重置按鈕button 組件,以便于用戶設(shè)置行程安排,記錄寵物日常生活習(xí)性,對(duì)寵物進(jìn)行日常管理。
Fig.9 Life record page圖9 生活記錄頁面
圖10 為預(yù)約頁面。頁面可添加活動(dòng)、疫苗、就診等預(yù)約信息。其中,標(biāo)題、地點(diǎn)等使用weui 框架和input 輸入框控件;活動(dòng)時(shí)間使用picker 組件,加入日期和時(shí)間選擇器,可隨意設(shè)置時(shí)間記錄預(yù)約信息。
圖11 為寵物檔案頁面。頁面包含圖片上傳功能,使用picker 組件選擇寵物類型、出生日期等。生日和名字使用weui 框架和input 輸入框組件。此外,頁面下方添加switch 組件選擇寵物性別及否絕育。
圖12 為導(dǎo)航頁面。頁面通過調(diào)用wx.navigateTo 接口設(shè)置了騰訊地圖和電子圍欄兩個(gè)入口。當(dāng)用戶點(diǎn)擊騰訊地圖時(shí),即可跳轉(zhuǎn)頁面搜尋寵物位置。該模塊調(diào)用了騰訊位置服務(wù)路線規(guī)劃插件,使用唯一的APPID 申請(qǐng)key,在app.json 文件中寫入定位授權(quán)、插件包代碼,在js 文件中寫入key、終點(diǎn)經(jīng)緯度等信息,如圖13所示。
Fig.10 Appointment page圖10 預(yù)約頁面
Fig.11 Pet profile page圖11 寵物檔案頁面
Fig.12 Navigation page圖12 導(dǎo)航頁面
Fig.13 Tencent map page圖13 騰訊地圖頁面
如圖14 所示,圍欄使用polygons 組件,用戶可繪制多邊形圍欄。頁面調(diào)用map 組件,并且頁面下方添加button組件生成圍欄、刪除圍欄并反饋寵物是否在圍欄內(nèi)。若寵物未在圍欄區(qū)域內(nèi),系統(tǒng)將自動(dòng)預(yù)警,提醒寵物飼養(yǎng)者。
鉛垂線內(nèi)點(diǎn)法原理如圖15 所示。基于判別點(diǎn)向外引垂線,計(jì)算其與多邊形交點(diǎn)的個(gè)數(shù),若交點(diǎn)個(gè)數(shù)為奇數(shù),則該點(diǎn)在多邊形內(nèi);若為偶數(shù),則在多邊形外[17]。
為判斷寵物是否在電子圍欄內(nèi),將寵物作為一個(gè)點(diǎn)P,將問題轉(zhuǎn)化為點(diǎn)P和多邊形之間的位置關(guān)系,如圖16 所示。具體算法流程如圖17所示。
Fig.14 Electronic fence jump page圖14 電子圍欄跳轉(zhuǎn)頁面
Fig.15 Plumb line interior point method圖15 鉛垂線內(nèi)點(diǎn)法
Fig.16 Judge whether the P point is within the polygon圖16 判斷P點(diǎn)是否在多邊形內(nèi)
Fig.17 Plumb line interior point method flow chart圖17 鉛垂線內(nèi)點(diǎn)法流程
本文根據(jù)當(dāng)前寵物飼養(yǎng)的實(shí)際需求,基于GPS 與微信小程序設(shè)計(jì)了一款智能寵物管理系統(tǒng)。該系統(tǒng)不僅提供了生活喂養(yǎng)、添加寵物檔案、導(dǎo)航、GPS 定位等功能,還可利用地圖繪制polygons 多邊形電子圍欄,防止寵物走失。
實(shí)踐測(cè)試表明,系統(tǒng)開發(fā)成本低、維護(hù)效率高、用戶體驗(yàn)好,能滿足飼養(yǎng)者對(duì)寵物管理的基本需求,可幫助飼養(yǎng)者更科學(xué)、合理的飼養(yǎng)寵物,具有一定實(shí)際應(yīng)用價(jià)值。然而,現(xiàn)階段系統(tǒng)硬件部分電子器件體積和重量偏大,對(duì)小型寵物而言過于笨重,未來將進(jìn)一步對(duì)硬件設(shè)計(jì)、軟件監(jiān)控功能進(jìn)行優(yōu)化,以提升系統(tǒng)的通用性。