• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 休闲生活 > 正文

    基于安卓的幼儿园监控系统设计与实现

    时间:2021-04-06 07:54:49 来源:达达文档网 本文已影响 达达文档网手机站

    当今幼儿园校车事件频发,并且家长对于校车在行驶过程中的动态一无所知,因此需要一种技术能够帮助家长对孩子所处的位置进行实时的检测。基于GPRS, GPS等技术的基于安卓的幼儿园监控系统可以实现家长使用安卓手机上的客户端能实时了解孩子的各方面的信息,解决家长无法实时了解孩子在途中的安全状况,同时,该系统也给家长提供孩子在学校的生活状况和学校的新动态等各方面的信息。监控系统装置通过GPS获取孩子所在位置信息,并通过GPRS模块发送至远程服务器上,家长可以通过android客户端查看上位机处理软件解析后存入数据库的GPS数据以及孩子的个人信息和事件信息。该系统弥补了市场上利用视频监控技术,人脸识别技术和智能卡技术只能在一定范围内监控的缺点,该系统能够全程的检测孩子位置,监控具有灵活性。

    【关键词】GPRS技术 GPS技术 Android 校车监控

    1 引言

    当今社会,对于家庭来说,孩子便成了家庭的核心。基于安卓的幼儿园监控系统可以很好的实现孩子实时位置监控,家长通过智能手机登陆手机客户端便能查询到孩子在幼儿园的状况以及实时的位置信息。后台管理系统让幼儿园更好地实现了公开化教育,有利于校园的管理。随着移动业务的快速发展,网络技术的不断提高,为本系统提供了强大的技术基础,成熟的GPS、GPRS技术,为孩子的位置信息的传送带来有力的保障。本文通过对系统结构及所用技术的阐述实现上位机程序、后台管理程序以及安卓手机客户端程序。

    2 系统总体结构

    2.1 系统结构框图

    基于安卓的幼儿园监控管理系统使用GPRS技术把获取到的GPS信息发送到服务器处理,家长通过登陆安卓上的客户端来了解孩子的状况,该系统具体设计框图如图2-1所示。

    该系统包含了由GPS、单片机模块、GPRS模块构成的校车监控模块、服务器端的上位机程序、后台管理程序以及手机端的安卓客户端程序。

    校车监控模块硬件放置于校车上,当校车启动后,监控模块电源接通,模块进行初始化,即注册GSM网络,之后连接上GPRS模块,注册GPRS网络,与此同时GPS模块进行初始化定位,查询地球周围卫星,并进行准确定位,获得的定位数据平均每3秒一次通过GPRS模块发送至服务器端口。服务器端的数据接收工具从规定的端口读取移动网络传来的数据,并对GPS数据进行解析和纠错处理,再将数据存入数据库校车ID所对应的表中。PC网站可访问数据表中的数据,并显示在网页上,家长可以通过电脑访问在校管理员录入的学生信息,并查询到孩子所在的校车及其位置信息。家长也可以通过手机客户端利用家长自己注册的手机号码登陆系统,查看对应孩子相应的信息以及在校所发生的事件。由此,该系统在软硬件的配合下完成了一套完整的监控管理系统。

    2.2 系统功能模块

    基于安卓的幼儿园监控管理系统由GPS、MCU、GPRS硬件模块与服务器端、安卓客户端软件模块两部分构成。硬件模块主要实现远程定位与定位数据的发送功能,软件模块实现定位信息处理与信息显示功能。系统硬件模块如图2-2所示。

    2.2.1 GPS模块

    发送定位信号,接收GPS卫星定位,将GPS定位信息[1]传送给MCU进行处理。此处选用的监控模块是瑞士生产的ublox NEO 5Q,其定位精度高,更新速度快,满足本系统设计的要求,极限速度可达500m/s,远高于车的行驶速度,在定位时,车速将不影响定位。

    2.2.2 MCU处理模块

    此处使用的微控制单元为STC12C5A60S2负责处理接收过来的GPS数据,将经纬度解析出来,传递给GPRS,同时还有初始化GPRS模块的功能。该模块采用高速率的处理芯片,其强抗干扰能力,强抗静电能力可以防止模块在校车上被手机信号或强磁场干扰。

    2.2.3 GPRS模块

    采用多频模块,支持移动和联通运营商,负责将经过处理的GPS数据传送到服务器端。使用该模块时需要自备一张SIM卡,等待MCU进行初始化,即注册运营商和注册网络。此处选用的是台湾SIMCOM公司生产的SIM300。

    2.2.4 服务器端

    包括GPRS数据接收器,前台管理系统,网站三部分。采用C#,ASP.NET,SQL程序编写,本系统通过数据接收器接收经纬度并存入数据库,前台管理系统与网站读取数据库数据,并显示在前端,管理系统与网站通过读写数据库的形式存储数据。

    2.2.5 安卓客户端

    利用java程序编写,通过联网的方式与服务器进行交互,达到实时同步的效果,地图采用百度地图API接口能够同步的显示校车所在的地理位置。该客户端也能够查看学生的信息及事件信息。

    3 系统软件设计与实现

    3.1 上位机设计

    上位机使用C# 编程语言。该软件不停地监控指定端口上发送过来的数据,并分析数据,把分析后的数据存入数据库中。

    3.1.1 GPS数据分析

    设计该软件需要对GPS的数据类型进行分析,GPS上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:“$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x”。

    每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,,,A*60。

    3.1.2 代码实现过程分析

    (1)根据以上分析,代码部分定义如下:

    if (ch == "C") /// 如果第五个字符是C,($GPRMC)

    { if (status == "A") { } } /// 如果数据有效,则分析已经定位

    (2)对GPS数据进行解析,实现功能: 把GPS模块的GPRMC信息解析为可识别的数据。

    a.从GPS接收数据GPRMC中分离纬度信息

    GPS->latitude_Degree = (int)GPS->latitude / 100; /// 分离纬度

    lati_cent_tmp = (GPS->latitude - GPS->latitude_Degree * 100);

    GPS->latitude_Cent = (int)lati_cent_tmp;

    lati_second_tmp = (lati_cent_tmp - GPS->latitude_Cent) * 60;

    GPS->latitude_Second = (int)lati_second_tmp;

    b.同理可 从GPS接收数据GPRMC中分离经度信息

    (3)将分析出来的GPS数据再次重组。为了让服务器能识别接收到的GPS数据,我们把接收的数据进行重组并进行以下规定,使用"@"作为数据的分隔符。部分代码如下:

    Int_To_Str(GPS.latitude_Degree,info1); //纬度

    strcat(position2,"car1001@"); //此处car1001是校车的编号

    strcat(position2,info1);

    strcat(position2,"@");

    例如:$GPRMC,034300.00,A,3100.44647,N,12123.66838,E,0.201,,210314,,,D*70中分析出可识别的31@00@26@121@23@39@数据。

    3.2 上位機实现

    上位机可修改IP地址以及端口,具有灵活性,能防止接收上位机的默认端口在已被使用的情况下而导致端口被占用的错误发生。上位机在启动后一般很少暂停或关闭,因此设计了上位机能最小化到系统托盘,减少占用任务栏窗口。

    (1)还原GPS数据。上位机使用C#编程语言。通过该语句把接收到的数据分离出,并存放到G字符串数组中。

    string[] G = GPS.Split(new char[] { "@" });

    (2)经过实践发现,本GPS接收到的位置信息与实际的坐标存在误差,经过大量数据的统计分析得出纬度和经度的修正值。

    - 0.001655144 纬度修正值 + 0.005411744 经度修正值

    上位机软件设计如图3-1所示。

    3.3 后台管理程序设计与实现

    管理程序使用C#编程语言。管理程序登陆设立分等级登陆,不同的人员具备不同权限,保护数据的真实性和完整性。管理程序具备添加、删除、修改学生信息,实时监看各孩子和校车的动态路线的众多功能。

    管理程序只有学校的相关部门人员使用,各级别的管理人员拥有不同的权限,同时操作的模块界面也不一样,例如某老师登陆后只能管理他们班的学生,这样防止其学生的信息被多人修改而导致信息错乱。学校可设立相关的部门来专门管理老师的信息,以及各类信息的管理。这种设计可有效防止信息的泄露,如果某环节出问题能方便追踪责任人。管理程序有如下模块:

    3.3.1 快速选择模块

    管理程序有快速选择模块,利用树状分支的形式,方便管理人员快速找到所需的模块,如图3-2所示。

    3.3.2 部门人员管理模块

    管理者的注册页面如图3-3所示,该模块是用来管理具备管理权限的人员的注册、注销、删除和修改。不同等级管理员对孩子的管理范围也不一样,一共设立了2个等级,普通管理员和普通用户。

    3.3.3 查找功能的多模块性

    使用同一个查找模块能对不同的界面进行检索,既方便管理人员的使用,又减少了代码量。其查找界面如图3-4所示。

    3.3.4 注册学生的模块

    注册的学生,在所有必填的信息不空情况下才能注册,保证信息的完整性和必要性。学生拥有2个可选的监护人的信息。2个监护人都能登陆安卓的客户端来看自己的孩子的信息。

    3.3.5 修改信息模块

    学生刚注册时提供了些基本的信息,而后还有其它的信息需要修改,本模块能增加或修改其它信息,让信息更加完善。

    3.3.6 添加和查看孩子的事件

    该模块能够添加孩子的事件,该事件模块能够记录孩子的情况和孩子的生活动向,及时地让家长了解孩子的新事件。查看事件如图3-5所示。

    3.3.7查看校车的状态

    该模块反映出校车当前的位置和状态,状态是否在线,”1”表示校车在工作期间,”0”表示校车处于未工作期间。校车的0与1状态如图3-6、3-7所示。

    3.3.8 查看校车的具体位置。

    该模块反映出校车所在的具体位置信息,可以供管理员以及老师查看,并能够实时的跟踪校车的位置,显示具体的校车线路,并显示在百度地图上。

    3.4 基于安卓系统的客户端设计与实现

    安卓客户端采用java编程,做了一定的界面美化处理,并在服务器端采用服务器处理程序,更加节省了软件客户端的流量。程序主要由登陆界面、学生信息、位置查看、事件查看、设置页面构成,登陆之后可以直观地看到孩子的个人信息以及在校的事件信息,更加方便了家长对于孩子的信息的管理和查看。

    基于安卓的幼儿园监控管理系统的软件客户端主要为家长服务,家长登陆到客户端,可以查看到孩子的基本信息和扩展信息以及GPS在线状态,同时也能查看到孩子在幼儿园所发生的事件。软件主要采用的是json解析方式,listview显示方式,以及扩展列表显示方式,增加了软件的可用性并提高了软件的稳定性。同时将界面的按钮做了小小的处理,增加了界面的美感。

    3.4.1 学生信息模块

    方便家长查看学生的信息,登陆之后可以查看到基本信息和扩展信息的选项卡,点击基本信息和扩展信息可以查看全部的信息,该信息为最初注册时所填的信息。其界面效果图如图3-8、图3-9所示。代码实现片段:

    list.add(new BasicNameValuePair("action", "getbtn"));

    list.add(new BasicNameValuePair("Username", userString));

    String result= NetUtils.postRequest(url, list);

    Customer[] cusarray= JSONHelper.parseArray(result, Customer.class);// 利用JSONHelper类的parseArray方法获得服务器传递过来的数据解析成数组值,再对数组的数据进行分类。

    3.4.2 位置查看

    位置查看模块主要由百度地图API提供接口,JSON的数据解析功能构成,将GPS传递至数据库的数据信息,传递至手机端,由手机端的java虚拟机通过百度地图API的请求反地理地址编码,将经纬度转换为标准的街道地址,并显示在手机界面上供家长查看,如果不在线将显示不在线。其结果如图3-10所示。代码实现片段:

    mBaiduMap.addOverlay(new MarkerOptions().position(result.getLocation()) .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_marka)));

    mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(result.getLocation()));

    addr.setText(result.getAddress());//調用接口的BaiduMap类的addOverlay方法实现标记,利用setMapStatus方法实现地图的显示,利用result的getAddress方法实现街道地址的获取,并用setText方法显示在手机软件界面上。

    3.4.3事件查看模块

    事件查看模块如图3-11所示。主要由ArrayList列表显示,为了能够让家长更加直观地看到孩子在学校所发生的事件,其标签包括了时间、地点与事件三部分。该模块也是运用了JSON数据解析的方法,通过JSON的数据格式:{name:minijoy,password:minijoy} 传递到手机端,手机解析并赋值给TextView。同时利用手机屏幕像素获取类WindowManager获取手机的高和宽,以使得软件适应于各种尺寸的手机。代码实现片段:

    SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.incindent,

    new String[]{"title","info","img"},

    new int[]{R.id.time,R.id.didian,R.id.inc});

    listview.setAdapter(adapter);// 利用RelativeLayout类进行编码布局,形成简单的列表显示于界面

    RelativeLayout layoutRight=(Relative Layout) inflater.inflate(R.layout.button, null);// 利用listview的setAdapter方法设置列表,将列表放在容器中,显示出来。

    4 总结

    基于C#、asp.net、IIS、Java等软件技术,单片机、GPS、GPRS等硬件技术的基于安卓的幼儿园监控系统可以帮助家长对孩子动态而又灵活的位置信息以及幼儿园所发生的各种事件了如指掌。

    通过与市场上的产品相比较,本产品在硬件方面:安装方便,功能强大,集多种传感器于一体。在软件方面:系统功能稳定,消耗流量小,可进行实时定位,显示真实的地理位置信息,便于家长查看。在技术方面:要求涉及的技术面广,多种技术融为一体,界面设计较美观。除此之外,系统本身具有一定优势:第一,避免为每个孩子添加一套监控设备带了的高成本;第二,防止小孩子容易丢失设备而带来的信息泄露;第三,降低服务器因处理大量人员信息的压力。

    该系统功能强大,易于操作,安装简单,便于在实际的幼儿园中进行使用,推广性较强,是真正意义上的实时位置监控系统。

    参考文献

    [1]付军伟,朱一群,周玲.基于GPS与GSM技术的幼儿园监控系统设计[J].科技探索,2014.

    [2]林城.Android 2.3应用开发实战[M].机械工业出版社,2011.

    [3]刘平.Android手机访问服务器的一种数据交互方法[J].西安财经学院 网络与现在教育技术中心,2010.

    [4]韩超.Android经典应用程序开发[M].人力资源出版社,2011.

    [5]Andrew Troelsen著.朱晔.译.C#与.NET 4高级程序设计[M].人民邮电出版社,2011.

    [6]马伟 著.ASP.NET 4权威指南[M].机械工业出版社,2011.

    [7](英)Robin Dewson著.董明.译.SQL Server 2008基础教程[M].人民邮电出版社,2009.

    [8]徐人凤.曾建华.SQL Server 2000数据库及应用[M].高等教育出版社,2004.

    作者单位

    上海电机学院 上海市 200240

    相关热词搜索: 监控系统 幼儿园 设计

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网