此项目为本人本科毕业设计项目,非常简单的一个停车收费系统,我的重点放在了Qt开发上位机软件上,简单记录一下。

利用ARM Cortex-A9芯片作为车道控制设备中央处理器,基于Linux系统开发下位机程序,搭建服务器,驱动摄像头,采集传输车牌视频信息。利用Qt开发平台自主开发一款配套下位机系统的上位机管理软件,实现视频接收、车牌识别、计费管理、记录查询等相关操作。

一、系统需求模型

二、系统总体设计

三、硬件设计

四、软件设计

五、软件实现

1、登录模块

        本系统的用户名和密码由系统进行分配注册,输入已注册的用户名和对于的密码,点击“登录”按钮,后台会在管理员数据库表中查找相应用户名,对比其密码,密码一致即可成功登录,进入操作界面,密码及用户名错误或不存在则提示登录失败,界面阻塞不可进入。

2、数据管理及服务器连接界面

        在登录系统成功后,为完成接收下位机监控视频的功能,我们需要连接下位机TCP服务器,网络管理在数据管理界面的右下部分。下位机服务器正常运行后,输入下位机对应的服务器的IP和端口号,点击“网络连接”按钮,没有问题即可连接成功。若服务器未运行,点击按钮则不会有反应,若服务器运行异常,则登录失败。

在“数据管理”模块可以对车辆用户进行增删改查的基本数据库管理操作。车辆用户用来记录车辆用户的个人信息及账户余额,每一个第一次入库的车辆必须先在此登记信息,进行账户充值,方可入库停车。所有的入库用户信息在此列表显示。

3、监控计费主界面

        在服务器成功连接之后,回到“监控计费”界面,我们可以看到入口和出口的监控视频显示区域显示“监控未打开”字样,我们点击“打开监控”即可接收相应监控的视频画面。

4、记录查询

        在“记录查询”页面可以查看车辆出入库的记录,通过数据库记录了所有出入库车辆的车牌号、出入库状态、出入库时间及停车时长,分页逐条显示。可以点击相应按钮跳转页面,也可删除选择项及清空数据库。

为了方便记录备份及查看,我们可以点击“导出记录”按钮将当前页面数据以Excel文件的方式导出,点击保存即可。

5、使用帮助

        随便写一些装逼。

6、用户管理

        切换用户、查看个人信息及关闭系统等操作。

7、车牌识别

车牌识别功能主要调用百度智能云的API,登录百度智能云官网,我们可以看到如图4.2.8所示的相关百度智能云服务。在本设计中我们可以选择图像识别,创建应用,从而获取相应的API密匙。

在上位机客户端软件编写中,我们就需要用到从百度智能云获取的车牌识别API密匙,Qt中调用百度API进行车牌识别的代码如下,封装了一个百度车牌识别的类进行实现,通过公有函数getCharNumber()返回识别的车牌号,在其他文件中需要的地方进行调用获取。

baiduAPI::baiduAPI(QWidget *parent) :QWidget(parent)
{AK="8IK1ddUmBy*************";//百度智能云获取的密匙SK="ubEfVro4XX*************";requestUrl="https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";renewal_token(); //更新token值manager = new QNetworkAccessManager();connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
}
void baiduAPI::networkPost()
{//设置urlQUrl url(requestUrl+"?access_token="+accessToken);QNetworkRequest request(url);//设置http header
request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));//设置http bodyQString name = "./car1.jpg";QImage image(name);QByteArray ba;QBuffer buffer(&ba);buffer.open(QIODevice::WriteOnly);image.save(&buffer, "jpg");QByteArray header = "image=";QByteArray postData = header+ba.toBase64().toPercentEncoding();//post方式发送manager->post(request,postData);
}
QString baiduAPI::getCarNumber()
{return  carnumber;
}

六、使用测试

1、启动服务器

        在Linux系统中运行服务器代码,如如5.1.1所示,摄像头初始成功,服务器初始化成功,等待客户端连接。

2、客户端连接

3、入库测试

在上位机软件中打开入口的摄像头,接收视频画面,视频显示正常点击车牌识别按钮车牌识别正常,入库时间及车位数量等都计算无误。

4、出库测试

在上位机软件中打开出口的摄像头,接收视频画面,视频显示正常点击车牌识别按钮车牌识别正常,出库时间、收费计算及车位数量等都计算无误,闸门打开正常。

5、记录查询

在经过入库及出库测试后,在上位机的记录查询界面可以看到刚才的出入库记录,车牌号及出入库时间等相关信息均无误。

七、环境配置

下位机选择了FS4412开发板,FS4412的主频可以达到1.4~1.6GHz,处理器采用Exynos4412, 该处理器是三星比较新的一款ARM Cortex-A9四核CPU,采用广受欢迎的ARM MPCore技术兼容[10]。ARM的成本低,效率高,最主要的是它能够运行Linux操作系统,方便对ARM的开发,能够编写TCP服务器程序完成网络通信。

下位机程序开发环境为VMware Workstation Pro,虚拟机为Ubuntu12.04,采用vim 编辑器及gcc4.6.4调试器。另外ARM需移植Linux操作系统,Linux系统内核为Linux3.14。

上位机软件开发采用Qt开发,它是跨平台的C++图形用户界面应用程序开发框架,其可以跨平台开发使用就是选择它的主要原因。版本:Qt 5.9.1,Qt Creator4.3.1,构建套件(Kit)为Qt5.9.1 MinGW_32,编译器支持C/C++编译,常用gdb调试器。如下图Qt中的编译器配置界面,采用MinGW 5.3.0 32位编译器。

八、最后

关于上位机,如果没有ARM开发板,当然直接运用电脑自带摄像头,在linux下运行服务器代码也可完全达到运行效果,用ARM是在实用上,作为毕业设计装逼就行了。

服务器实现流程如下,非常简单

对于AMR开发板,只需移植linux操作系统,运行服务器代码即可,摄像头驱动都已经写好了的。

需要上位机软件运行及服务器客户端源代码参考的可点击链接下载:

https://download.csdn.net/download/qq_41632571/19860567?spm=1001.2014.3001.5503

https://download.csdn.net/download/qq_41632571/19860620?spm=1001.2014.3001.5503

ARM + Linux + QT 智能停车收费系统相关推荐

  1. ETC电子不停车收费系统(附项目总文件下载)

    ETC系统(附项目总文件下载) 编写ETC系统(电子不停车收费系统),设计客户端,要求实现车辆进出站即记录,提供费用计算.通行服务.全自动化实时监控等功能. 以下是当初我们组制作的简单ETC系统项目( ...

  2. 电子不停车收费系统(ETC)专题(1)——系统概述

    我国道路交通普遍较为拥堵已经在国人的脑海中留下了深刻的印象,每当车辆通过收费站时都要停下来缴费,既耽误了司机和乘客的时间,又消耗了交通管理部门的人力.物力和财力,更重要的时候,加剧了交通拥挤.因此,上 ...

  3. 电子不停车收费系统(ETC)专题(5)——最新动态

    第十四届智能交通世界大会于2007年10月9-13日在北京召开,大会主题是"智能交通-创造美好生活".在展会上,从各个论坛到各个展台,新技术.新应用层出不穷,其中高速公路联网收费系 ...

  4. 电子不停车收费系统(ETC)专题(2)——国内现状

    我国从90年代中后期引入该系统,并形成了第一次试点建设热潮.当时在江苏.广东.北京.福建等地有小规模试点应用,但是总体应用效果不好,大部分系统没能开通或成功运营.这一阶段的ETC系统建设多是以技术为驱 ...

  5. ARM Linux QT虚拟键盘的系列问题

    最近在做Linux系统的虚拟键盘功能,其中遇到很多问题,在此一一记录. 使用的系统平台为ARM Ubuntu18.04的系统,安装的QT版本为5.9.5,使用指令安装QT,安装后该版本QT默认不带虚拟 ...

  6. java计算机毕业设计临时停车收费系统源代码+数据库+系统+lw文档

    java计算机毕业设计临时停车收费系统源代码+数据库+系统+lw文档 java计算机毕业设计临时停车收费系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  7. java计算机毕业设计临时停车收费系统源码+系统+mysql数据库+lw文档

    java计算机毕业设计临时停车收费系统源码+系统+mysql数据库+lw文档 java计算机毕业设计临时停车收费系统源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  8. java毕业设计临时停车收费系统源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计临时停车收费系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计临时停车收费系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

  9. 全球及中国电子不停车收费系统(ETC)行业竞争模式及十四五建设现状分析报告2021-2027年

    全球及中国电子不停车收费系统(ETC)行业竞争模式及十四五建设现状分析报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订 ...

最新文章

  1. 3 v4 中心节点固定_死磕以太坊源码分析之p2p节点发现
  2. 【重复制造精讲】4、计划初识
  3. Python selenium对js元素进行增删改查操作
  4. Verilog 补码加法溢出判断及处理
  5. Oracle to_char() to_date() to_number()函数
  6. 【前端笔试题】文本居中的几种小技巧
  7. 工作68:子路由跳转
  8. (C/C++学习)15.C语言字符串和字符数组
  9. LibcarePlus用户态程序热补丁
  10. CVPR2017精彩论文解读:用于生物医学图像分析的精细调节卷积神经网络
  11. sql 教程_SQL
  12. Go实现 爬虫v0.2
  13. spring Beans初始化及配置
  14. BP神经网络预测模型+粒子群算法优化的BP神经网络(PSO-BP)预测模型,基于Matlab
  15. 第7章 EL表达式和JSTL
  16. lldp协议代码阅读_软件实现LLDP协议HaneWin LLDP Service
  17. 鸿蒙石之鉴老猴死了怎么办,智取芭蕉扇那个剧情选分支1过不了怎么办
  18. 如何设置IE禁用代理服务器
  19. Atitit 学科与知识领域分类门类分类法 目录 1. 学位学科门类是授予学位的学科类别。国际上大体有两种划分方法: 1 2. 三大类法 文理科 医学 1 3. 五大门类 2 4. 13门类 2 5
  20. 使用压缩包安装mysql

热门文章

  1. [渝粤教育] 中国地质大学 机械电气安全技术 复习题
  2. android webView不能加载本地html文件问题
  3. Nmap网络扫描器实验
  4. python爬虫入门案例day11:街舞
  5. N卡出现 HW Power Brake Slowdown 的临时解决方案
  6. 关于笔记本休眠与睡眠的区别?
  7. 《运维管理平台OpsManage》
  8. 计算机入门带进阶的目标及誓言
  9. cesium开发系列:SimplePolylineGeometry绘制不同颜色的多段线
  10. VSCode: 快速生成 html 骨架和在浏览器中打开