编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

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

wxchong 2024-08-25 16:37:31 开源技术 10 ℃ 0 评论


一、功能要求

基于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



官方的使用说明:
安装文字识别 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 -ljsoncp

2.调用文字识别的API 接口

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.添加头文件



(三)文字转语音

详细操作可进群免费领取资料:扫码进群领资料

(四)摄像头拍摄

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

完整资料可进群免费领取。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表