刘勇军, 杨 勇, 程 磊, 谢星宇
(1 黄淮学院 智能制造学院, 河南 驻马店 463000; 2 黄淮学院 机械与能源工程学院, 河南 驻马店 463000)
在国内,每逢夏天就容易发生幼儿遗落校车造成死亡的事故。虽然国家出台了校车安全管理条例[1],规定了校车的安全技术条件和随车教师的配备,但由于管理的松懈和人员的疏忽,此类事故却仍有间歇性发生概率可能。利用技术来预防事故的发生是解决这一问题的最好途径。
研究人员对这一问题进行了广泛的探究,取得了可观的成果,但也存在一定的不足。金建设等人[2]提出了幼儿遗落校车时给老师和家长发送短信的构想并付诸实施,但报警短信不易被及时阅读,致使不能及时展开施救。周盖等人[3]、马暄炜等人[4]又陆续提出了利用Android平台对校车进行管理,该方案主要是从校车使用方的角度考虑,可以实时查看校车的位置和查询校车的历史运行轨迹,但该方案没有研发学生遗落的报警功能,也并未阐明相应APP的开发过程。随后,文献[5-10]又就此课题纷纷提出了利用RFID射频技术来识别学生的上下车,家长可以利用APP查看学生的状态和校车的位置,该方案要求幼儿学生必须携带射频IC卡,且不能在有危险发生时即刻报警,同时家长也不可能每天都能打开APP去查看校车的实时位置。张杨杨等[11]则研究了利用Android平台和百度地图结合的定位服务,该方案需要第三方服务器,设计过程复杂。
由于幼儿遗落校车是小概率事件,从技术角度讲,发生事故时能及时报警并发送校车的位置信息才是亟待解决的关键问题。让家长、幼儿园管理人员等实时查看校车的位置和幼儿的状态的想法并不现实,人为的疏忽仍然会造成事故的发生。
考虑到现在信息的海量性,如果仅以短信报警,报警信息很可能会被众多信息淹没而导致错失忽略。因此,本文利用APP Inventor软件开发幼儿遗落校车预警系统APP,配合校车上的遗落检测模块、GPS定位模块和GSM通信模块,当出现幼儿单独滞留校车即将发生危险事故时,在安装有APP的手机上将强制发出声音、振动、图片、文本等多重形式的报警,并在地图上显示校车的当前位置,为营救争取时间,降低事故致死的概率,提升幼儿乘坐校车的安全性。
手机通常会接收到很多短信,幼儿遗落校车报警系统需要分析接收的短信是否包含特定的字符,只有包含特定字符的短信才被认为是有幼儿遗落在校车上,需要激活报警系统。为了便于说明,本文设计的报警短信的样式为“危险,经度000.0000,纬度00.0000”,实际使用时,报警短信的格式可以设计为较为复杂的、包含特殊字符的长字符串,以防止误报警。
设计中,在界面Screen1上添加一个短信收发器组件,命名为ShortMessage,该组件为隐式组件。
手机每次收到短信时,触发短信接收事件,在短信接收处理程序中首先分析短信中是否包含“危险”字样,如果包含,利用APP Inventor软件中的文本截取指令“segment text”提取短信中的经、纬度信息,并存储在变量中,如图1所示。
图1 收到短信时的处理程序
“segment text”指令可以从一个字符串的指定位置开始截取指定长度的字符串,运行后可如图2所示。
图2 提取经纬度子程序
短信报警信息发送到幼儿家长和幼儿园老师的手机上时,由于短信是群发的,故而只要家长、老师中任何一位发现了报警信息即可及时处理。为了进一步增强报警信息及时传送至家长和老师处的提示效果,在接收到报警短信后,启动APP上的声音、振动、文本、图片报警,以确保安装有幼儿遗落校车报警APP的机主第一时间就能获知报警信息。
设计时,在界面Screen1上添加一个标签LabelTitle,在标签下添加一个图像PictureAlarm,在图像上添加一个画布CanvasAlarm,在图像的下方添加一个标签LabelAlarm,在LabelAlarm的下方添加一个按钮ButtonClear,分别添加隐式组件计时器Timer1、音效VoiceAlarm、对话框Dialog1、微数据库DataBase。
当收到包含有特定字符串的报警短信后,启动计时器、驱动手机振动、弹出报警对话框、发出报警警示音,则如图1、图3所示。在启动计时器的同时,驱动图像PictureAlarm和文本LabelAlarm闪烁,如图4所示。在报警的同时,将经纬度信息保存到数据库中,详情如图5所示。
图3 对话框报警
图4 计时器计时时间到的触发程序
设计声音、振动、图片、文本等多个报警组件的组合以增加手机用户获知报警信息的概率。手机用户在获知报警信息后,可以按下ButtonClear按钮,以清除报警,即如图6所示。
图5 保存经纬度信息至数据库
图6 清除报警程序
虽然已有规定禁止校车从事载运学生之外的其它业务,但考虑到部分校车是由专业校车服务公司运营的,也有部分校车是改装的。因此,校车将学生运送至目的地后并非都会停放在幼儿学校内。而在幼儿园老师和家长获取报警信息后,最迫切急需的信息就是校车目前停在哪里,为营救指明方位。
设计中,在界面Screen1的最下端添加一个按钮ButtonBusLocation,按钮的显示文本修改为“查看校车当前位置”。新建一个界面Screen2,在Screen2的顶端添加一个标签Label1,在标签的下方添加一个水平滚动布局HorizontalScroller1,在水平滚动布局上添加一个竖直滚动布局VerticalScroller1,于其上再添加一个图片PictureBusMap,设置图片的像素为600*600,用于显示地图图片。在Screen2的下方添加一个按钮ButtonReturn,用于返回主界面。而后添加一个隐式组件Web客户端WebClient,用于与高德地图API进行通信。
为了快捷、简便地显示地图并在地图上标明校车的位置,本文选择高德地图的静态地图显示功能。首先,开发者将在高德地图网站上注册,申请一个密匙key,用于身份识别。然后向高德地图开发平台发送一个包含经、纬度和key的网址,即可返回一个静态地图图片。
当“查看校车当前位置”按钮被点击时,就打开Screen2,并将数据库中的经、纬度信息传送到Screen2中,具体如图7所示。
图7 点击“查看校车当前位置”的事件
Fig.7Programwhenthe‘currentlocationoftheschoolbus’buttonisclicked
当Screen2初始化时,从数据库读取前8位作为经度信息、读取从第9位开始的7位数据作为纬度信息,分别保存在变量BusLongitude和BusLatitude中,并将校车当前的经纬信息显示在地图上方的标签Label1中,同时调用校车位置地图显示子程序“BusLocation”,界面效果如图8所示。
图8 界面2初始化的处理
校车位置地图显示子程序“BusLocation”如图9所示,该子程序的主要功能是利用APP Inventor软件中的拼凑字符串指令,将高德地图开发平台网址、经纬度、图片大小、标示符大小、标示符颜色、标识符字符、标示经纬度、key等组合为一个网址,利用Web客户端WebClient发送给高德地图API,高德地图API会返回一个图片,并显示在手机上。
图9 地图显示子程序
幼儿遗落校车报警APP的运行结果如图10所示。在APP启动时,进入主界面,如图10(a)所示。如果没有报警短信,主界面中的图片是静止的,图片下方的文本信息不显示。当接收到报警短信时,主界面中的图片闪烁、图片下方的文本闪烁,在主界面上会弹出一个报警对话框(图中未做显示),按下报警对话框中的“确定”后,方可进行其它操作。当按下“清除报警”按钮时,报警消除,图片和文本停止闪烁。
按下“查看校车当前位置”按钮,APP进入地图显示界面,如图10(b)所示。在界面的最上方显示当前经纬度信息,界面的主体部分显示一张600*600的图片,图片中标示出校车当前的位置,可以通过左/右、上/下滑动以浏览校车附近的地理信息。按下图片最下方的“返回”按钮,APP返回到主界面。
(a)主界面 (b)地图显示界面
针对幼儿遗落校车事故备受关注的问题,利用APP Inventor软件开发了幼儿遗落校车报警APP。APP可以进行短信分析,在接收到报警短信时触发声音、振动、图片、文本报警,并可用地图显示校车的位置,为营救提供便利。本文设计的APP可以安装在幼儿家长、幼儿园老师等相关人员的手机上,有效配合组装在校车的报警短信发送装置,可以大幅降低幼儿遗落校车造成死亡事故的发生率,提升幼儿乘坐校车的安全性。