Linux项目设计:基于ARM平台的停车场管理系统制作教程

哔哩哔哩项目演示视频:https://www.bilibili.com/video/BV1vf4y1r7sD
在这里插入图片描述

资料链接:https://download.csdn.net/download/mbs520/15085916

一、功能要求

基于ARM53的停车场管理系统

(制作好的作品与功能要求略有区别,增加了一些功能)

项目实现:
1:使用RFID打卡作为入场和出场识别。
(刷第一次查询数据库是否该卡号,没有就是进场,有就是出场)
进场:记录进场的时间,卡号,进场的车辆照片
出场:计费,显示当时进场的车辆照片,从数据库中删除该车辆的信息

2:使用数据库进行车位管理。
(可以人为修改车辆在数据库中的信息)

3:监控出入口视频。 (循环录制1分钟的视频,保存到本地)

4:实现语音播报车辆信息与消费信息。(车场就播报车辆的卡信息,出场就播报消费金额)

5:添加图像识别功能,根据拍照获取车牌号

项目具体需求:
1: 创建一个数据库, 内置你需要的所有信息, 如车牌信息、RFID卡信息、卡类、进场时间、车辆照片名等

2: 在默认状态下,视频监控是处于打开状态的,并循环录制,1分钟视频,保存到本地。

当检测到有RFID卡,关闭视频流,判断当前数据库中是否有该卡的入场信息:

1)如果已有该卡的入场信息,表示现在是出场;则直接计算出当前时间和入场时间差值,在屏幕上显示该车辆照片,显示车辆信息和应收费金额

2)如果没有该卡的入场信息,则在数据库中增加该车辆信息,并记录当前时间且拍照。

3)在检测到RFID卡3秒后, 系统会恢复打开视频流

4:当车辆刷卡进场是,语音提示卡号,并说明卡的类别(临时卡,或包月卡),出场提示:费用与月卡剩余天数

5:管理功能,负责把卡的类别进行修改,与数据库中的数据进行修改。

6: 自行扩展: 添加一些自主功能。

二、项目笔记

一开始遇到的问题

(一)网络问题:Ubuntu同时与开发板、WiFi连接

1、打开Ubuntu ,上面的菜单栏,点击 编辑->虚拟网络设置
首先还原默认设置
在这里插入图片描述
2、WMnet0桥接模式
在这里插入图片描述

原理:让这个网络桥接到这个网口
在这里插入图片描述

3、点击 虚拟机->设置->添加->网络适配器
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4、开启终端
ifconfig 记住自己的网卡名字
在这里插入图片描述
5、编辑网卡

sudo vi /etc/network/interfaces

编辑一下信息:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto ens33
iface ens33 inet dhcp

auto ens38
iface ens38 inet static
address 192.168.22.128
netmask 255.255.255.0
gateway 192.168.22.1
dns-nameservers 223.5.5.5
 

在这里插入图片描述

6、重启网卡

sudo /etc/init.d/networking restart

7、测试
在这里插入图片描述

问题:
有网友反馈说配置后不能重启网络,可以试试下面解决方法:
在这里插入图片描述

1、 cd /etc/NetworkManager/system-connections 然后 ls

在这里插入图片描述
2、sudo vi ens33
把网卡名字修改过来
在这里插入图片描述
把第二网口名字也改过来

sudo mv 有线连接\ 2 ens38
ls

在这里插入图片描述

sudo vi ens38

在这里插入图片描述

(二)图片文字识别

百度图像识别API 接口的使用

百度的文字识别API 接口 : https://cloud.baidu.com/p
roduct/ocr/general
下载文字识别的SDK ,注意下载的是C++ SDK
在这里插入图片描述

点击使用说明: https://ai.baidu.com/ai-doc/OCR/skib
izxzo

官方的使用说明:
安装文字识别 C++ SDK
文字识别 C++ SDK目录结构
最低支持 C++ 11+
直接使用开发包步骤如下:
1.在官方网站下载C++ SDK压缩包。
2.将下载的aip-cpp-sdk-version.zip解压, 其中文件为
包含实现代码的头文件。
3.安装依赖库libcurl(需要支持https) openssl

jsoncpp(>1.6.2版本,0.x版本将不被支持)。
 ├── base │ 
 ├── base.h // 请求客户端基类
  │ ├── base64.h // base64加密相关类 
  │ ├── http.h // http请求封装类 
  │ └── utils.h // 工具类 
  └── ocr.h // 文 字识别 交互类

4.编译工程时添加 C++11 支持 (gcc/clang 添加编译参数
-std=c++11), 添加第三方库链接参数 lcurl, lcrypto,
ljsoncpp。

g++ main.cpp -o main -std=c++11 -lcurl -lcrypto -ljsoncpp

5.在源码中include ocr.h ,引入压缩包中的头文件以使
用aip命名空间下的类和方法。
环境库的安装方式:
使用步骤
1.新建一个客户端

//安装依赖库 
sudo apt-get install libcurl4-openssl-dev  -> libcurl 
sudo apt-get install libjsoncpp-dev -> jsoncpp 
//(需要修改JSON 文件的路径)
/usr/include/json/json.h 
//(编译时提示找到不 JSON都是这个问题)
sudo apt-get install libssl-dev -》 openssl
#include "ocr.h" // 设置APPID/AK/SK 
std::string app_id = "你的 App ID"; 
std::string api_key = "你的 Api key";
std::string secret_key = "你的 Secret Key";
aip::Ocr client(app_id, api_key, secret_key);

所有的 APPID/AK/SK 在自己个人中心控制台查看。
在这里插入图片描述

例子如下:

#include "ocr.h" // 设置APPID/AK/SK
std::string app_id = "23603269";
std::string api_key = "oi9p6xAUZiKCctGTET0ZXU7n"; 
std::string secret_key = "0tfYXzYGABWfruRrOG2dp66pNQ79s0SG";
aip::Ocr client(app_id, api_key, secret_key);

编译的时候提示如下错误:
在这里插入图片描述

编译的时候添加第三方库文件:

lcurl, lcrypto, ljsoncpp。 -std=c++11
g++ main.cpp -o main -std=c++11 -lcurl -lcrypto -ljsoncpp

2.调用文字识别的API 接口 https://ai.baidu.com/ai-do
c/OCR/rkibizy1d

高精度版

Json::Value result; std::string image;
aip::get_file_content("/assets/sample.jpg", &image); // 调用通用文字识别(含位置高精度版)
result = client.accurate(image, aip::null); // 如果有可选参数
std::map<std::string, std::string> options; 
options["recognize_granularity"] = "big"; 
options["detect_direction"] = "true"; 
options["vertexes_location"] = "true"; 
options["probability"] = "true"; // 带参数调用通用文字识别(含位置高精度版)
result = client.accurate(image, options); 


在QT 中使用 百度文字识
别API
注意:在windos 的QT 是没有办法用的,因为windos
没有 lcurl, lcrypto, ljsoncpp 这些库。
1.把百度的SDK 放到 QT 工程文件中
在这里插入图片描述

2.把 #include “ocr.h” 头文件添加到 QT 工程中
在这里插入图片描述

3.添加第三方库文件
在这里插入图片描述

4.添加头文件
在这里插入图片描述

(三)文字转语音

参考我的博客:https://blog.csdn.net/mbs520/article/details/113179224

(四)摄像头拍摄

FFMPEG 工具的使用
在这里插入图片描述

1.把 ffmpeg 工具下载到开发板的 /bin 目录

2.修改 ffmpeg 的权限
chmod 777 /bin/ffmpeg

常用命令:

ffmpeg -f v4l2 -s 640X480 -r 1 -t 1 -i /dev/video7 -f image2 pic-%03d.jpeg 

参数说明:

-f 指定视频的格式
-s 指定视频的大小
-r 指定帧率 -t 指定时间 -i 指定输入设备 -f 指定格式

//录制10S 的视频
ffmpeg -f v4l2 -s 640x480 -t 10 -i /dev/video7 out.avi 
//覆盖录制
ffmpeg -y -f v4l2 -s 640x480 -t 10 -i /dev/video7 out.avi

化作尘其它开源项目:

单片机项目:

基于stm32c8t6的坡道行驶巡线小车(2020年TI杯大学生电子设计竞赛 C题)https://blog.csdn.net/mbs520/article/details/115438122

基于STM32F4的音乐播放器
https://blog.csdn.net/mbs520/article/details/111313042

基于STM32F4的电子阅读器(首创)
https://blog.csdn.net/mbs520/article/details/110817173

基于51单片机WiFi视频小车(首创)
https://blog.csdn.net/mbs520/article/details/109843972

基于51单片机蓝牙小车
https://blog.csdn.net/mbs520/article/details/109775964
基于MSP430 坡道行驶电动小车(2020年TI杯大学生电子设计竞赛 C题)
https://blog.csdn.net/mbs520/article/details/109090072

基于stm32f4的智能门锁系统
https://blog.csdn.net/mbs520/article/details/106987758

基于51单片机超声波测距小车
https://blog.csdn.net/mbs520/article/details/106599219

基于51单片机定时宠物喂食系统
https://blog.csdn.net/mbs520/article/details/108292187

Linux项目:

基于QT5 Linux平台 停车场管理系统
https://blog.csdn.net/mbs520/article/details/113481824

基于QT5 Linux平台 车载系统
https://blog.csdn.net/mbs520/article/details/112873809

基于Linux系统 媒体播放器
https://blog.csdn.net/mbs520/article/details/107880118

基于Linux系统 语音识别、人机对话
https://blog.csdn.net/mbs520/article/details/113179224

基于Linux系统小钢琴程序(暂无博客)
https://download.csdn.net/download/mbs520/12798287

基于Linux系统 QQ通讯录管理系统(暂无博客)

对于智能家居的设计选题,您提到了三个主要内容:视频采集及网络传输、无线传感及控制系统,以及客户端的视频接收及显示。下面是一些可能的设计方案和实现思路: 1. 视频采集及网络传输: - 使用ARM平台上的摄像头模块,通过摄像头采集视频信号。 - 使用合适的编码算法对视频进行压缩,以便在网络上传输。 - 使用网络协议(如TCP/IP)将压缩后的视频数据传输到目标设备或服务器。 - 在目标设备或服务器上,使用相应的解码算法将接收到的视频数据解码并显示。 2. 无线传感及控制系统: - 使用ZIGBEE无线模块实现传感器节点的无线通信。 - 在各个传感器节点上安装合适的传感器(如温度、湿度、光照等),以获取环境信息。 - 将传感器数据通过ZIGBEE无线模块发送到中央控制节点或服务器。 - 在中央控制节点或服务器上,处理接收到的传感器数据,并根据需要控制智能家居设备(如灯光、窗帘、空调等)。 3. 客户端视频接收及显示: - 使用QT开发客户端应用程序,以实现视频接收和显示的功能。 - 在客户端应用程序中,使用相应的网络协议(如TCP/IP)接收视频数据。 - 使用合适的解码算法将接收到的视频数据解码,并显示在客户端界面上。 需要注意的是,以上只是一些基本的设计思路,具体的实现方式和技术选型还需要根据实际情况进行调整和细化。同时,还需要考虑安全性、稳定性、用户友好性等因素,以确保智能家居系统的高效运行和用户满意度。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

化作尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值