智能停车系统设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 实习背景 (2)
1.1实习目的 (2)
1.2实习时间2
1.3 实习内容概要 (2)
2 实习内容 (2)
2.1 实习过程 (2)
第一周项目概要设计:硬件 (3)
第二周:串口是什么? (3)
2.2 实习内容5
2.1.1无线传感器网络概述 (5)
2.1.2 停车位传感器的硬件设计技术 (6)
2.1.3停车场管理系统构成 (7)
2.1.4泊车引导系统 (8)
3.1.1车位检测电路方案论证 (10)
3.1.2 停车位检测器的设计 (11)
3.1.3 超声波检测车位状态的原理及实现 (11)
2.3主要成果16
3 实习心得 (17)
1 实习背景
1.1实习目的
使学生在学习专业技术基础和主要专业课程的基础上,学习和掌握自动化及通信工程领域内嵌入式系统技术及的基本知识和方法,培养学生综合运用所学的自动化及通信工程各专业方向的基础理论、基本技能和专业知识分析问题和解决工程设计问题的能力,培养学生调查研究,查阅技术文献、资料、手册,进行程序设计、电路图纸绘制及编写技术文件的基本能力。
1.2 实习时间
2019年9月2日至9月20日。
1.3 实习内容概要
结合中国城市特点,以传感器网络为支撑,设计城市停车诱导系统。该系统能实时提供停车场停车信息、道路车位使用信息,引导驾驶员查找空车位,为驾驶员节省时间,减少因缺乏停车信息而引起的车位难找的情况。大大缓解了城市交通拥堵状况,减少了道路占用,降低了车辆尾气排放和噪声,提高停车场、路测车位的使用效率。同时,采用集约化系统化的车位管理、收费管理,也可有效改变停车场收费管理混乱的状况。
2 实习内容
2.1 实习过程
本课题提出了一种新的停车位监控方案:在所有的车位上布置基于ZigBee 标准和超声波检测的节点模块,在停车场的出入口等关键位置和所使用的停车卡上布置基于ZigBee标准的节点模块,组建网状拓扑结构的无线传感器网络,检测各车位的占用或空闲状态以及车辆的停车情况。
本系统的主控计算机通过RS-232串口与无线传感器网络的协调器节点相连
接,计算机的主控程序调用ReadFile,WriteFile等标准文件操作读写串口。同时,协调器提供串口终端程序,实现计算机与协调器的通信。主控计算机与无线传感器网络无缝连接,无线传感器网络所采集的数据由计算机的主控中心管理系统处理。
第一周项目概要设计:硬件
1. ARM开发板(显示界面)
2. zigbee 无线传输数据的2个zigbee模块:1个协调器, 1个终端
协调器 + 终端(超声波的传感器测距离) = 2.4G频段:zigbee 无线网络
类似于:(无线路由器) + 手机 = 互联网网络
3. 超声波传感器:用来测距
软件: zigbee开发的软件
IAR 开发工具
第二周:串口是什么?
串口是一种通信的接口。
比如: USB接口,并口,串口
UART:通用异步收发器
TXD: 发送信号线
RXD:接收信号线
GND : 地
串口发送数据。
无线发送数据:
zigbee 无线网络: 1个协调器最多可以连接65000个多终端。
需要2个开发板:
1个zigbee 开发板:下载一个协调器(类似于WIFI路由器)的程序
1个zigbee 开发板:下载一个终端 (手机,IPAD,笔记本 )的程序
终端 -------- 协调器:联网
ZIGBEE模块:
每个车位都配有1个终端,
功能:采集距离值,温度值发给协调器: "No1: car , 30"
协调器收到了这个温度,有车/没车 ----->目的?
协调器--------PC(电脑):串口助手看到:温度,车。 ----->目的?协调器 ------->串口发送数据----->ARM开发板(主控板)目的?
ARM主控板:分析数据,分析字符串: "No1: car , 30"
----> 1. 改变相应的车位的图片
2. 记录车进入车位的时间。
3. 计算车离开的时候,停车的时间,根据这个时间,计算费用。
4. 引导车主,开往空闲的车位。
LCD 上显示,以上的内容。
ARM开发板: ============ 协调器:(USB串口连接 ARM开发板)
ARM开发板:(Linux系统读串口目的,读到车来/车走信息)
怎么读串口?
对于 windows 来说:电脑多了 COM21, windows 用串口助手在读串口
在linux系统中:一切的设备都是以文件的形式存在的。
在linux中读串口:读 /dev/ttyUSB0 文件,就是读串口。
在linux中编写程序: seri.c 用来读串口的程序 + lcd.c = 停车场的程序
1. 打开串口: open_port(fd, 1);
2. 设置波特率,数据位,停止位...: set_opt(fd,9600,8,'N',1)
3. 读串口: read(fd, buff, 20); 把串口中的数据读到 buff中int main(void)
{
int fd;
int nread,i;
char buff[20]={0}; //数组,用来保存串口的数据: car coming / car going
// LCD 初始化函数
//fd 代表已经打开的: /dev/ttyUSB0 设备
if((fd=open_port(fd,1))<0){
perror("open_port error");
return;
}
if((i=set_opt(fd,9600,8,'N',1))<0){
perror("set_opt error");
return;
}
printf("fd=%d\n",fd);
while(1)
{ //读串口,读的内容放到 buff中,最多读20个字节
// nread 成功读到了多少个字节
nread = read(fd, buff, 20);
printf("nread=%d,%s\n",nread,buff);
判断串口的数据的内容:
如果是车来: if( strncmp(buff, "car coming", 10 )==0)
换图片,开始计时
如果是车走: if( strncmp(buff, "car going", 9 )==0)
换图片,停止计时,计费
显示时间,费用在 LCD上。
sleep(2);