APP下载

基于WiFi的共享车位设计

2018-11-26杨皓予李智强段海龙

电脑知识与技术 2018年24期

杨皓予 李智强 段海龙

摘要:随着无线通信技术的发展,基于WiFi无线通信的物联网设备的研究开始受到关注。该文针对现如今共享经济发展势头良好和停车场车位供需关系紧张的社会现象,进行了基于WiFi的共享车位设计。该文分析了Android操作系统和WiFi无线通信技术的应用优势,对基于NodeMcu Lua WIFI模块的智能车位锁硬件方面做了详细设计,在所采用的通信协议和开发平台上进行了基于Android操作系统的应用程序设计,建立了LabView服务器模型。在车位锁硬件方面实现了无线控制和低功耗控制的功能,实现了在移动客户端对停车场车位进行预约、使用、结算等功能。该设计具有使用方便和应用广泛等优势,能够很好地缓解停车位供需关系紧张的现象。

关键词:WiFi;Android;LabView服务器;共享车位

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)24-0032-04

1 引言

现如今,我国公民的汽车保有量呈井喷式增长。因此所导致的停车场车位供需关系紧张、私停乱放和人工管理效率低下的现象日益突出。针对这些现象,国内的一些机构开始了对智能车位锁的研究。据了解,市面上的智能车位锁大部分是利用蓝牙或红外遥控器控制解锁,由于这些无线通信技术自身的局限性,它们无法给用户提供最佳的使用体验。这也导致了购物商场、住宅小区、旅游景区等场所的停车场无法实现一体化、智能化管理。本文设计的基于WiFi的共享车位能够将城市里的公共停车位全部纳入系统,通过云端提供管理与服务,为用户智能推选出合适的车位以减少不必要的行驶。该系统通过互联网电子现金结算,方便高效。整个系统只需少数工程技术人员进行软硬件维护,很大程度上节省人力物力,提高了停车场车位管理效率。

2 系统设计

2.1 通信方式与操作系统

本设计选择Android和WiFi无线通信技术作为系统开发的技术核心。Android是一个由操作系统、中介架构层及应用程序所产生出来的软件堆栈架[1]。由下而上,其核心为嵌入式Linux 2.6操作系统,向上搭配Google为Android开发的库,Android运行时再配合应用程序架构,来开发各种不同的应用程序 [2]。WIFI(Wireless Fidelity)技术即IEEE802.11协议,无线接入和高速传输是WIFI的主要技术优点,其中IEEE802.11b最高速度为11Mbps,IEEE802.11a与IEEE802.11g的最高速度为54Mbps[3]。WiFi技术能在数百英尺内给予所接入无线电信号以强大的支持[4]。WiFi无线通信技术具有覆盖范围广、无须布线、传输速度快的优点,这些优点可以满足本设计的要求。

2.2 系统总体设计

本文设计出一种基于WiFi的共享车位。系统包括Android应用程序、LabView服务器和车位锁三个部分。通过操作Android应用程序将命令信息通过无线网络发送出去,LabView服务器接收并处理该信息后给车位锁硬件发出动作命令的信息,车位区的车位锁接收到服务器发来的指令并运行处理器上的程序以控制车位锁机械结构的开关动作。同时,车位锁的无线模块将控制记录等数据通过无线网络返回到LabView服务器中进行储存。

基于WiFi的共享车位的系统整体架构图如图1所示。移动客户端即基于Android操作系统开发的应用程序。系统服务器模块由前面板和程序框图组成。车位锁端由主控模块和以限位开关为主的机械结构模块组成。LabView服務器接收到移动客户端发来的操作请求,对请求信号进行处理后把命令信号发送至车位锁端,车位锁端的处理器对服务器发来的数据信息进行匹配检测,从而执行相应的控制命令以控制车位锁动作。在系统工作示意图中红色代表已经被使用的车位,绿色代表可以使用的车位。

2.3 车位锁硬件部分设计

车位锁硬件部分实现控制车位锁机械结构动作的功能。其主控模块主要由电机驱动模块、NodeMcu Lua WIF模块和稳压模块三部分组成。

2.3.1 电机驱动模块

本设计选择的电机驱动模块其内置芯片L298N是由意法半导体公司研发制造的一款双全桥大电流(2A×2)电机驱动芯片。L298N可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。ENA,ENB接控制使能端,控制电机的停转[6]。电路原理图如图2所示。

2.3.2 NodeMcu Lua WIFI模块

本设计选择的NodeMcu Lua WIFI模块是基于乐鑫ESP8266无线通信模块的超低功耗的UART-WiFi模块。其硬件接口丰富,可支持UART、IIC、PWM、GPIO和ADC等接口[5]。模块核心处理器 ESP8266在较小尺寸封装中集成了Tensilica L106超低功耗32位微型 MCU,带有16位精简模式,主频支持80MHz和160MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的IEEE802.11 b/g/n协议,完整的TCP/IP协议栈。为了能够让ESP8266无线通信模块连接WIFI无线路由器,这里需要利用Lua脚本语言编写WIFI路由连接程序,主要包括WIFI工作模式设置,station模式下的ssid和password设置,以及通过开启定时器进行station模式下路由AP连接[7],如果连接WIFI路由成功,则通过无线路由器的DHCP功能获取客户端IP地址[8]。

2.3.3 稳压模块

本设计选择的LM2596S-ADJ可调降压稳压模块采用TO-263封装方式。其电源电压最大40V最小4.5V。输出电压最大37V最小1.23V。输出电流最大3A频率150kHz。以上参数完全符合本设计对于稳压模块的硬件要求。

2.3.4 主控模块总体设计

主控模块的主要组成部分是:NodeMcu Lua WIFI模块、电机驱动模块、继电器模块、直流减速电机模块、稳压模块、限位开关模块。根据每个组成部分所选用元件的封装和使用方法设计了主控模块的电路。电源通过外部接线接入该电路的电源端口,由于直流减速电机工作所需电压直接使用电源提供的6V电压,经过稳压电路降压后的5V电压主要给CPU和其他元件供电。当CPU接收到开锁命令,NodeMcu Lua的D1引脚输出高电平触发继电器引脚导通,车位锁机械结构开始动作。当限位开关动作,NodeMcu Lua的D5引脚输入低电平触发继电器动作,车位锁机械结构停止动作。当NodeMcu Lua的D2引脚输出高电平D3引脚输出低电平时电机驱动模块OUTA引脚输出高电平D3引脚输出低电平,电机正转。反之电机反转。主控模块电路原理图如图3所示。

3 系统软件设计

3.1 Android应用程序的设计

本设计中基于Android操作系統的应用程序是利用androidstudio开发的。该APP的部分操作界面截图和基本功能导图分别如图4、5所示。

APP初始化需要用到的主要控件有:Button,EditText,TextView,ImageView。电子地图则使用百度地图sdk提供的一些服务进行二次开发。首先初始化地图,在Activity的生命周期里实现地图生命周期管理,用MapStatusUpdate来缩放地图,LocationClient来定位以及定位监听BaiduMap.setTrafficEnabled(true)打开交通图,Marker来添加覆盖物,根据覆盖物的LatLng经纬度来显示pop的位置以及监听。DrivingRoutePlanOption根据两个地方的经纬度绘画出行车路径,车位计时用Timer定时处理,信息传递通过Socket的TCP协议请求服务器完成发送接收,然后用子线程请求服务器,再用Handler处理更新UI。

APP使用流程:进入APP后弹出注册和登录信息框,用户输入注册信息后便可登录。在APP的主界面中输入目的地后即检索出相应停车场的车位信息。在目标停车场选择空余车位后即完成预约(计费开始)。停车结束后用户只需点击结束按钮并完成支付即可离开。

3.2 上位机服务器的设计

本设计中的LabView服务器部分是由NI(National Instruments)公司的LabView软件所开发。该服务器的前面板和程序框图截图分别如图6、7所示。

程序初始化后,管理员输入主机IP和端口号创建TCP侦听,其中创建局部变量“#of Connections”。下一步进行状态检查(不按停止按钮):判断被打包的数据信息按名称解绑后是否为空,若为空则重新执行状态检查结构,若不为空则执行“发送数据”。即忽略超时错误,只要有客户端连接进来就发送数据。将侦听到的远程IP和端口创建为数组,通过数组显示控件在前面板显示出来。即只要有新的客户端建立了连接就进入“发送数据阶段”整个过程运行在FOR循环之中,当有客户端数据传来的时候,数据被依次按序号保存在全局变量“data”中。保存在全局变量中的数据会在子VI中进行处理如下处理:首先根据自己规定的标志位字节(截图中所用的是“1”)分割字符串,在标志位之前的数据若是“ds”代表数据是车位锁发来的,在标志位之前的数据若是“csj”代表数据是手机发来的。在标志位之后的数据会全部保存在图中所示路径中的.txt文件中,方便管理员查看。经过子函数的处理,程序会把APP发来的东西截取出来,然后通过上图函数依次发送给所连接的车位锁当中。由于设计车位锁软件时在固件中已经写好了指令,所以只有对应的车位锁才能够对相应的数据进行识别并作出操作。

3.3 车位锁软件设计

本设计中的车位锁软件部分执行流程图如图8所示。

首先进入初始化函数,进行相关初始化操作连接到服务器上,连接成功后唤醒主控芯片并通过串口打印服务器信息,如服务器IP和端口信息,此时处理器处于工作状态。当车位锁的处理器NodeMcuLua的WiFi接口接收到来自服务器端发送过来的数据信息,并对数据进行匹配操作。当检测到该信息是开锁命令,NodeMcuLua的D2、D3端口输出相应电平到继电器模块,继电器动作致使电机驱动电路动作,实现车位锁的开启。当检测到该信息是关锁命令,NodeMcuLua的D1、D5端口切换为预先设置的IO模式,在此过程中限位开关扫描检测机械臂位置信息,待到车位锁完全关闭后返回相应电平,NodeMcuLua处理器输出相应电平到继电器模块,继电器动作致使电机驱动电路停止动作,实现车位锁的关闭。

4 系统性能测试与分析

经过多次联合调试,完成了基于WiFi的共享车位设计。当在APP上注册账号并登录后,选择提前设定的三个模拟停车位,预约成功后点击开锁,车位锁开启。当结束按钮按下时,弹出计费信息,确认无误并支付后车位锁关闭。通过软件和硬件的结合,可以很好地实现预先设计的功能。

5 结论

现如今,市场上的智能车位锁非常多,但是能通过手机客户端提供商业租赁、车位查找等一体化服务的便很少。该项目在原有传统车位锁的基础上,将物联网思想运用到车位管理系统上来,并进行了本质上的创新。随着Android系统的发展和普及,每台安卓智能移动设备都可以从软件商城下载该APP,并且可以免费注册账号。用户只要根据自己所在的城市、街道,所要停车的单位名称等信息就可以轻松地找到车位。在整个过程中,用户甚至都不需要下车就可以轻松地从城市里万千停车场中找到一个满意的车位,最后放心停车。这一设计投入市场后会在很大程度上缓解停车位供需关系紧张的社会现象,为市民生活提供方便。本文在WiFi无线通信技术支持的基础上,实现了共享车位的研制。

参考文献:

[1] 高红旭.基于Android操作系统的应用研究[D].西安电子科技大学,2011.

[2] 马宁.嵌入式移动开发[J].程序员,2005(06):12-13.

[3] 唐思敏.WIFI技术及其应用研究[J].福建电脑,2009,25(10):59+82.

[4] 盛仲飙.WIFI无线网络技术及安全性研究[J].电子设计工程,2012,20(16):1-3.

[5] 王浩,王东.基于NodeMCU固件平台的RGB三色灯远程控制设计与实现[J].软件工程,2017,20(05):47-50.

[6] 张天鹏,徐磊.L298N控制直流电机正反转[J].工业设计,2011(03):98-99.

[7] 姜仲,刘丹.Zig Bee技术与实训教程[M].北京:清华大学出版社,2014:137-140.

[8] 王浩,浦灵敏.物联网技术应用开发[M].北京:中国水利水电出版社,2015:113-115.

【通联编辑:代影】