基于安卓平台的智能停车系统

2018-12-06 09:27王孜俞晓锋赵玉美王效灵
物联网技术 2018年8期
关键词:物联网

王孜 俞晓锋 赵玉美 王效灵

摘 要:基于数字中国的物联网概念,文中设计了基于安卓平台的智能停车系统。为缓解大中城市停车难的问题,依托全向轮技术设计了一种全新的采用红外测距传感器避障的全向移动机器人。基于Bmob云构建了安卓平台,实现了传感器到管理端的蓝牙数据无线传输以及通过用户手机终端远程与管理端进行信息交互。本系统的用户可在手机APP上随时搜索附近的停车场;发送命令远程调配机器人停车;在手机APP上在线缴费。该系统结合全向移动机器人和安卓平台,通过手机满足用户快速停车的需求,实现了停车系统的智能化、互联网化。

关键词:物联网;安卓平台;全向轮;Bmob云;智能停车

中图分类号:TP319 文献标识码:A 文章编号:2095-1302(2018)08-00-04

0 引 言

随着家庭车辆拥有量的快速上涨,“停车难”已经成为很多城市的通病,困扰着人们的出行。当前阶段,城市中大多数停车场均为传统模式,车主需要刷卡进出场、自行倒车入位,取车时需要走到停车处,找到自己的车辆后再将车子驶出车库。而停车更是一件对驾驶人员停车技术、安全意识要求较高的事情。同时考虑到车辆双向通行的现状,对停车场空间要求也较高。可以看出,传统停车模式占地空间大、效率低,已远远不能满足大中型城市中人们的停车需求[1]。

本项目针对传统停车模式的缺点,结合最新的物联网概念,开发了基于安卓平台的用户端APP、管理端APP,研发并封装了全向移动机器人,这三者通过蓝牙、Bmob云结合,成为一个完整的停车系统,使得用户操作流程更加人性化、管理者故障檢测更加轻松、管理者系统调配更加合理。

1 设计方案

基于安卓平台的智能停车系统包括全向移动机器人、安卓平台APP、Bmob云服务器、停车台四个主体部分,其组成如图1所示。

(1)全向移动机器人的组成包括锂电池、直流电机、全向轮、Arduino主控板、红外测距传感器、蓝牙通信模块、L298N电机驱动模块、M0300舵机、升降平台;

(2)安卓平台APP包括管理端APP、用户端APP。

基于安卓平台的智能停车系统的总体结构如图2所示。

系统主要实现如下功能:

(1)自动避障:通过红外测距传感器检测数据,并通过Arduino板、蓝牙通信模块传送至管理端,当距离小于设定的安全距离时,机器人停止运动,实现自动避障。

(2)控制全向移动机器人:管理端根据用户的停车需求,将管理端APP与机器人的蓝牙连接,操作APP控制4个全向轮的运动及升降平台的抬升和下降。

(3)智能停取车:用户通过用户端APP发送“开始停车”命令,通过Bmob云服务器将该命令传输至管理端,使其迅速调配、控制机器人停车;取车时,发送“结束停车”命令通知管理端控制全向移动机器人取车。

(4)找停车场:用户可以使用手机APP的“找停车场”按

键,开启内置的百度地图功能,迅速找到附近停车场。

(5)线上缴费:采用计时器记录停车时间,再通过换算转化为停车费用展示给用户,实现在线快速缴费。

2 系统各部分工作原理

2.1 全向移动机器人

全向移动机器人的组成包括全向轮、Arduino主控板、红外测距传感器、蓝牙通信模块等部件。红外测距传感器将检测到的距离信息传输给主控板。主控板一方面将数据通过蓝牙模块发送到管理端,另一方面通过L298N电机驱动模块控制全向轮运动。

2.1.1 红外测距传感器

红外测距传感器为三线制,其主要功能为距离检测。红外测距传感器体积小,响应时间短,功耗较低,在无反光板和反射率低的情况下能测量较远的距离,其很高的频率响应适合恶劣的工业环境,可实时测量距离。

其输出电压与实际距离的关系表达式经过测算、拟合如下:

2.1.2 Arduino主控板

Arduino是一款便捷灵活、方便上手的开源电子原型平台。本系统采用的Arduino主控板以ATmega328 MCU控制器为基础,具备14路数字输入/输出引脚(其中6路可用于PWM输出)、6路模拟输入、1个16 MHz的陶瓷谐振器、1个USB接口、

1个电源插座、1个ICSP接头和1个复位按钮[2]。

(1)Arduino数据上传

ATmega328内置的UART通过数字口0(RX)和1(TX)与外部实现串口通信,将数据传送到蓝牙通信模块中。管理端通过蓝牙发送指令给主控板,使其控制机器人运动。

(2)Arduino阈值控制

ATmega16U2可以访问数字口实现USB上的虚拟串口,核心程序代码烧录在主控板中,可通过蓝牙获取管理端的指令阈值并接受传感器检测的距离信息。通过对设定的阈值和实际检测到的距离数值进行比较,判断是否控制L298N电机驱动模块使全向轮停止运动,由此实现自动避障。

2.1.3 全向轮

本系统采用全向轮代替一般车轮实现机器人的全向运动,它是一种结构简单、适用范围广,可以在较差路况上运动的车轮。全向轮实物如图3所示。

采用全方位运动车轮可以有效解决一般车轮由于不能左右侧滑而带来的非完全约束问题。它可以向任意一个方向作直线运动而不需要提前作旋转运动,并且当其沿着直线运动到目标点的过程中还可以调整自身旋转角度与姿态,实现最终所需角度[3]。

本系统设计的全向移动机器人共采用4个全向轮,且相互之间的连线可构成一个正方形。机器人俯视图如图4所示。

2.1.4 蓝牙通信模块

蓝牙通信模块的主要功能是实现远程通信,具有实时性强、可远程控制、覆盖范围广、抗干扰能力强等优点。本系统采用HC-05蓝牙通信模块,该模块是主从一体的蓝牙串口模块。当蓝牙设备之间配对连接成功后,可以忽视蓝牙内部的通信协议,直接将蓝牙当做串口使用。

本系统的蓝牙通信模块主要实现与管理端进行数据交互的功能。在每轮数据交互中,管理端发送一个代表运动方向的字符给蓝牙,蓝牙将该字符传输给Arduino主控板,主控板更新字符并与程序预设的代表不同运动方向的字符进行比较,启动L298N电机驱动模块控制全向轮运动,由此实现管理端控制机器人全向移动。若在数据交互中没有管理端的运动命令,则机器人不再运动。

全向移动机器人的各部件连接方式如图5所示。

2.2 Bmob云服务器

安卓平台的开发以及云端数据的存储均需服务器的支持,開发者首先需搭建好公网服务器,本文系统选用Bmob云服务器。Bmob云服务器是一款为移动应用提供后端集成功能的云平台,具有网络数据下载、储存功能以及信息通知功能[4]。Bmob云服务器数据交互示意图如图6所示,Bmob云服务器停车指令传递流程如图7所示。

本文系统的实现使得用户可在手机APP端查看附近停车场的情况,还可以通过手机APP与管理端实现信息交互,调配机器人智能停车或在线缴费。因此服务器端需要完成如下三个方面的设计:

(1)连接用户端APP;

(2)连接管理端;

(3)在数据库中存储用户个人登录信息、用户停车信息、安全距离阈值等状态信息。

2.3 安卓平台APP

安卓是一种基于Linux的自由及开放源代码的操作系统,本文系统的所有程序开发均在Android Studio上进行,主要面向智能手机。本文系统中的安卓平台APP分为管理端和用户端两部分:

(1)管理端用于获取用户停车信息,控制全向移动机器人,实现系统控制与用户管理;

(2)用户端用于登录账号、停车场搜索、发送停取车指令、缴费等,同时与管理者对接,进行数据交互[5]。

2.3.1 管理端

本系统的管理端通过蓝牙与机器人对接,负责控制其全向的移动、旋转和平台升降。在机器人遇到障碍物时,电机会停止运转进行保护,系统会通过弹窗形式提醒管理者,达到安全作业的目标。

同时,用户信息会通过Bmob云服务器上传至管理端,便于信息的管理、操控、反馈。

2.3.2 用户端

本文系统的用户端APP名称为“易停车”,具有寻找停车场、停车缴费、当前订单查询三大主要功能[6-7]。

(1)“找停车场”功能

主要调用百度地图实现此功能,具体步骤如下:

① 下载百度地图移动版API(Android)开发包;

② 申请API Key;

③ 创建一个Android工程;

④ 在布局文件中添加地图控件。

(2)“停取车”功能

在平台停车后,用户输入平台号,再通过手机APP发送“开始停车”命令。该命令先传输至Bmob云,再由云端传输至管理者端,使其迅速控制机器人停车。取车时,发送“结束停车”命令通知管理者控制机器人取车。

(3)“缴停车费”功能

系统采用计时器记录停车时间,再通过换算转化为停车费用展示给用户,达到在线快速缴费的目标。部分代码如下:

……

public class Pay extends MainActivity{

TextView parkmoney;

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_pay);

Intent intent=getIntent();

String time = intent.getStringExtra("extra_time");

parkmoney=(TextView)findViewById(R.id.money);

parkmoney.setText(String.valueOf(time));

}

}

同时,为了加强用户端与管理端的沟通,本系统将用户登录信息、订单信息、停车信息上传至管理端,实现实时信息交互功能,优化用户体验,使停车过程变得快速、便利、智能。其启动页、登录界面、主界面如图8所示。

2.4 停车台

停车台用于放置所停车辆。每个停车台对应一个停车台号,用户先将车辆停于外部的停车台上,再通过用户端APP发送停车台号与停车指令给管理端,管理端控制机器人将停车台整体抬起,进入内部停车场进行停车操作,到达指定停车位后将停车台整体放下,然后机器人可以离开继续执行停车任务;待用户发送取车指令后,再找到相应位置,将停车台整体抬起,送至外部。停车台的俯视图略大于机器人。

3 系统的整体操作流程

首先,登录用户端APP,之后点击“找停车场”按键,打开内置地图找到附近的停车场。

接下来点击“停取车”按键,输入停车台号,点击“开始停

车”按键(此时开始计费),此命令通过Bmob云服务器传输至管理端,管理端将收到对应停车台的停车请求。管理端通过与蓝牙通信模块的连接,可发送代表运动方向的字符给蓝牙,蓝牙将字符传输至Arduino主控板,主控板更新字符并与程序预设的代表不同运动方向的字符进行比较,启动L298N电机驱动模块控制直流电机带动全向轮,操作全向移动机器人驶入停车台下;之后发送代表抬升的字符给蓝牙,蓝牙将字符传输给主控板,主控板更新字符并与程序预设的代表升降的字符进行比较,启动舵机控制升降平台,使其抬升停车台;管理端控制机器人驶入内部停车场,到达停车位后将下放平台,放置停车台至地面。

用户取车时,点击“结束停车”按键(此时结束计费),此命令通过Bmob云服务器传输至管理端APP,管理端收到取车请求后,控制机器人将车辆移至用户等待位置。

最后用户点击“支付”按鍵在线缴纳停车费方可取车离开停车场。

4 安卓用户端APP效果图

安卓用户端APP使用界面如图9所示。用户可通过APP搜索附近停车场、发送命令远程调配机器人停车、在线缴

费等。

5 结 语

本文设计实现的智能停车系统结合全向轮技术和物联网概念,基于安卓平台开发,使得用户操作流程更加人性化、管理者故障检测更加轻松、管理者系统调配更加合理。

该系统不仅为人们的生活提供了便利,更有效缓解了城市停车空间不足的问题。全向移动停车机器人在经过工业级设计投产后,可以迅速满足一个智能停车场的车辆停放需求,实现真正意义上的智能化停车[8]。在可持续发展方面,该系统在进行停取车作业时汽车均处在熄火状态,能够真正实现零排放。

因此,该系统在停车模式的智能化、互联网化、环保化等方向均具有良好的应用价值和前景。

参考文献

[1]云贺.城市"停车难"如何破局[J].财经国家周刊,2017(9).

[2]李国豪,翁柏涛,杨晓冰,等.基于Arduino的AGV小车设计[J].中国科技信息,2018(5):82.

[3]许松清,吴海彬,杨兴裕.两轮驱动移动机器人的运动学研究[J].电子机械工程,2005,21(6):31-34.

[4]周冉,高玉竹.Bmob云平台在Android APP开发中的应用[J].微型机与应用,2015,34(1):26-28.

[5]刘学.移动智能终端停车系统APP用户体验研究与设计[D].天津:天津科技大学,2015.

[6]宋超.手机停车APP系统的设计与实现[D].长春:吉林大学,2016.

[7]陈飞,罗文广.基于Android的智能交互APP设计[J].广西科技大学学报,2017,28(2):29-34.

[8]邹丹,马向莉.全向轮智能移动平台前景展望[J].军民两用技术与产品,2012(2):56-58.

猜你喜欢
物联网
基于无线组网的智慧公交站点信息系统研究与实践
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者