基于GPS与微信小程序的智能宠物管理系统设计

2023-03-08 10:57宋育斌孔维宾方忠庆
软件导刊 2023年2期
关键词:围栏页面宠物

平 欣,宋育斌,孔维宾,方忠庆,陈 希

(1.盐城工学院 信息工程学院;2.盐城市光纤传感及应用工程技术研究中心,江苏 盐城 224051)

0 引言

随着社会经济高速发展,人民生活质量逐步提高,许多家庭饲养猫、狗等宠物。据统计,2021 年全国城镇宠物饲养人数达到6844 万人[1],相较于2020 年增长8.7%;消费市场规模则达到2490 亿元,相较于2020 年猛增20.6%。研究表明,良好的饲养行为可有效促进老年人积极参与体力活动,缓解老年人抑郁症状[2]。

由于生活节奏加快,人们缺乏精力照顾宠物,造成宠物走失现象大量增加[3]。为有效加强宠物管理,保障公共卫生安全,促进宠物产业和谐发展[4],不少学者提出利用通信网络技术实现智能化宠物管理。例如,庄帅[5]采用三层架构和DAO、MySQL 等技术设计宠物管理系统,主要实现宠物饲养者和宠物商店之间的业务。叶军等[6]以用户体验为中心,设计一种多功能宠物管理系统。该系统运用Arduino 单片机实现多用户控制,但主要偏向于宠物监控功能。王亚文等[7]在社区层面基于SSM 框架设计宠物信息管理系统。

综上所述,本文针对饲养宠物中的管理问题,设计一款智能宠物管理系统。该系统提供生活喂养、添加宠物档案、导航电子围栏、GPS 定位等功能,以便于用户在微信小程序端查看宠物当前位置信息,并利用polygons 多边形围栏为宠物划警戒区域。

1 系统设计

1.1 系统架构

基于GPS 与微信小程序的智能宠物管理系统支持记录宠物日常生活饮食,能提醒用户及时预约宠物疫苗,设置电子围栏防止宠物意外走丢。该系统既提升了宠物的生活质量,又便于饲养者合理安排宠物日常作息,系统整体结构如图1所示。

由图1 可见,系统分为硬件、软件两部分。其中,硬件部分由STM32、GPS 定位模块及NB-IoT 模块组成,通过GPS 收集宠物位置信息;软件部分由微信小程序实现,包括首页、生活记录、预约、宠物档案、导航模块,导航模块主要与服务器数据进行通信以定位宠物位置,并包含电子围栏、腾讯地图等功能。

Fig.1 Overall system structure图1 系统整体结构

具体而言,系统使用MySQL 数据库存储位置信息及用户登录信息,Navicat 作为数据库连接工具,其可视化界面可创建、组织、访问与共享信息[8-10]。

基于GPS 定位芯片实时获取STM32 的位置信息,利用NB-IoT 模块访问网络,服务器、MySQL 数据库使用Socket进行通信,并将获取的STM32 位置信息发送至小程序端[11-12]。

1.2 系统概述

宠物管理系统流程如图2 所示。当用户登录宠物管理系统小程序后,填写账号、密码等信息进行验证,若验证失败会弹出提示,用户可进行下一步操作;若用户验证成功则进入主界面。主界面包含首页、导航等6 个页面模块,用户可根据自身需求选择不同模块。

Fig.2 Flow chart of pet management system图2 宠物管理系统流程

2 相关技术

2.1 硬件配置

智能宠物管理系统硬件部分由GPS、NB-loT 和STM32模块组成。其中,GPS 定位模块的型号为ATGM336H-5N-31,具有高灵敏度、低功耗、低成本等优势,适用于车载导航、手持定位、可穿戴设备;数据传输模块型号为WHNB73-BA,具有体积小、功耗低等优势,适用于宠物穿戴设备,并且WH-NB73-BA 可利用NB-loT 网络传输数据,支持多频段。物联网平台能帮助开发者实现设备接入与连接,快速完成产品开发部署。

此外,智能宠物管理系统还利用了云平台技术与用户设备进行连接。例如,将系统与微信关联,用户可通过小程序利用手机远程查看设备的工作情况与示警详情。

2.2 MINA框架

MINA(Multipurpose Infrastructure for Network Applications)框架如图3 所示。该框架在降低系统开发难度的同时,提升了运行速度,并且开发团队提供大量API,开发者可根据自身需求直接调用API来提升开发速度[13]。

Fig.3 MINA frame图3 MINA框架

由图3 所示,MINA 框架由视图层和逻辑层组成。其中,视图层由页面Page 组成,每个Page 文件下均包含WXML、WXSS 文件,WXML 是一套由微信官方团队封装的标签语言,为开发者提供大量包装好的组件,WXSS 是一套基于CSS语言封装的样式描述语言,具有CSS大部分特性;逻辑层是小程序的逻辑、服务处理中心,视图层页面需要的数据、页面交互处理逻辑均在逻辑层实现,该层使用JS 语言进行逻辑处理、数据请求及调用API 接口,数据在逻辑层处理后发送至视图层,触发视图层页面渲染,并接收来自视图层的事件反馈[14-15]。

2.3 数据交互

移动终端利用微信小程序提供的接口与后端服务器进行数据交互,由于小程序与系统后台服务间通过微信服务器相连接,因此数据安全性有所保障。具体的数据交互流程如图4所示[16]。

Fig.4 Data interaction flow chart图4 数据交互流程

由图4 可见,小程序首先通过wx.request 接口向微信服务器发送https请求;然后由微信服务器发送数据至系统服务器;最后数据库得到指令写入数据[16]。在小程序接收返回消息时,服务器会先读取数据库数据,然后将数据输出至微信服务器。为保证传输的稳定性和便捷性,会选择以JSON 的格式将数据返回。

3 数据库设计

预约信息、生活记录、宠物档案及经纬度信息均通过MySQL 数据库进行保存。如表1 所示,系统设计多张表保存不同类型的数据。其中,预约信息表包含预约名称、标题、地点、时间及备注字段。如表2 所示,经纬度信息表保存用户运动轨迹、当前位置、经纬度信息等信息。如表3所示,宠物档案表记录宠物生日、类别、名称等信息。如表4 所示,宠物生活记录表记录宠物每天的喂食、换水情况等信息。

Table 1 Reservation information表1 预约信息

Table 2 Longitude and latitude information表2 经纬度信息

Table 3 Pet profile information表3 宠物档案信息

Table 4 Pet life record information表4 宠物生活记录信息

4 系统功能实现

4.1 登录

图5 为用户登录页面,包含图标、输入框及登录按钮组件。用户可输入手机号和密码进行登录,或选择页面下方微信、微博、QQ 等第三方登录方式。

Fig.5 Login interface图5 登录界面

4.2 首页

图6 为首页界面。页面顶部运用swiper 滑块视图容器轮播3 张图片,支持indicatorDots 浮点点击更换图片。页面中间部分为宠物商店、疫苗社区、游乐场等入口。通过调用wx.navigateTo 接口在每个图片中设置超链接,一旦点击图片触发事件即可跳转至其他页面,如图7、图8 所示。首页下半部分为热点资讯区域,用户可根据自身需求进行查看。

Fig.6 Home page图6 首页页面

Fig.7 Pet store page图7 宠物商店页面

Fig.8 Vaccine community page图8 疫苗社区页面

4.3 生活记录

图9 为生活记录页面。页面包含switch 滑块、提交和重置按钮button 组件,以便于用户设置行程安排,记录宠物日常生活习性,对宠物进行日常管理。

Fig.9 Life record page图9 生活记录页面

4.4 预约

图10 为预约页面。页面可添加活动、疫苗、就诊等预约信息。其中,标题、地点等使用weui 框架和input 输入框控件;活动时间使用picker 组件,加入日期和时间选择器,可随意设置时间记录预约信息。

4.5 宠物档案

图11 为宠物档案页面。页面包含图片上传功能,使用picker 组件选择宠物类型、出生日期等。生日和名字使用weui 框架和input 输入框组件。此外,页面下方添加switch 组件选择宠物性别及否绝育。

4.6 导航

图12 为导航页面。页面通过调用wx.navigateTo 接口设置了腾讯地图和电子围栏两个入口。当用户点击腾讯地图时,即可跳转页面搜寻宠物位置。该模块调用了腾讯位置服务路线规划插件,使用唯一的APPID 申请key,在app.json 文件中写入定位授权、插件包代码,在js 文件中写入key、终点经纬度等信息,如图13所示。

Fig.10 Appointment page图10 预约页面

Fig.11 Pet profile page图11 宠物档案页面

Fig.12 Navigation page图12 导航页面

Fig.13 Tencent map page图13 腾讯地图页面

如图14 所示,围栏使用polygons 组件,用户可绘制多边形围栏。页面调用map 组件,并且页面下方添加button组件生成围栏、删除围栏并反馈宠物是否在围栏内。若宠物未在围栏区域内,系统将自动预警,提醒宠物饲养者。

4.7 电子围栏算法

铅垂线内点法原理如图15 所示。基于判别点向外引垂线,计算其与多边形交点的个数,若交点个数为奇数,则该点在多边形内;若为偶数,则在多边形外[17]。

为判断宠物是否在电子围栏内,将宠物作为一个点P,将问题转化为点P和多边形之间的位置关系,如图16 所示。具体算法流程如图17所示。

Fig.14 Electronic fence jump page图14 电子围栏跳转页面

Fig.15 Plumb line interior point method图15 铅垂线内点法

Fig.16 Judge whether the P point is within the polygon图16 判断P点是否在多边形内

Fig.17 Plumb line interior point method flow chart图17 铅垂线内点法流程

5 结语

本文根据当前宠物饲养的实际需求,基于GPS 与微信小程序设计了一款智能宠物管理系统。该系统不仅提供了生活喂养、添加宠物档案、导航、GPS 定位等功能,还可利用地图绘制polygons 多边形电子围栏,防止宠物走失。

实践测试表明,系统开发成本低、维护效率高、用户体验好,能满足饲养者对宠物管理的基本需求,可帮助饲养者更科学、合理的饲养宠物,具有一定实际应用价值。然而,现阶段系统硬件部分电子器件体积和重量偏大,对小型宠物而言过于笨重,未来将进一步对硬件设计、软件监控功能进行优化,以提升系统的通用性。

猜你喜欢
围栏页面宠物
刷新生活的页面
TBS围栏灭鼠技术
电子围栏系统在水厂中的应用
抬起脚来
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术