Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
智能小区车位管理系统 郑振耀
发布于 2020-04-19 20:47:27 浏览:8670
订阅该版
整个作品是实现一个基于STM32的一个车位管理系统,它实现了以下功能:智能控制栏杆、烟雾警报、实时车位状态信息显示、推荐停车位、停车计时、进出车辆检测计数、车牌识别、上位机的实时显示时间、上位机记录车辆进出时间。 测试的视频见附件中的百度云链接。 上位机是使用LabVIEW软件进行设计编辑的,它用来进行无线传输信息并进行处理显示。其设计后的上位机界面如下: ![0.png](/uploads/202004/19/151430cmmmjwa7a0zvjvl5.png) 硬件的连接实物图如下: ![1.png](/uploads/202004/19/151810pm2rx2xfwmwkbzhv.png) 硬件有:6个红外蔽障模块、2个SG90舵机、2个OV7725摄像头、1个烟雾传感器模块、1个TFT液晶屏、1个ESP8266、1块STM32f103ZET6最小系统模块。 作品的软件设计使用RTT系统,线程之间通讯采用了:信号量、消息队列、事件集;本作品也使用了二个软件定时器,一个用于检测模块的状态,另一个是用于更新车位信息。 作品的程序流程如下图: ![3.png](/uploads/202004/19/193436wnc5ddq6q009uvn0.png) 如图可得,系统所需的线程通讯方式以及软件定时器,因此我定义了以下几种线程通讯方式和软件定时器的控制指针: 在Parking_detection_processing.c中定义: ```c static rt_mq_t button_mq = RT_NULL;//消息队列的控制块 ``` 在Task.c中定义: ```c static rt_timer_t Inspection_ProcessSoftTimer = RT_NULL;//软件定时器控制块指针 static rt_thread_t message_thread;//定义线程控制块指针 ``` 在config.h中定义: ```c EXT rt_sem_t exit_recv_sem;//定义出口信号量控制块指针 EXT rt_sem_t entr_recv_sem;//定义入口信号量控制块指针 EXT rt_event_t Inspection_event;//定义事件控制块指针 EXT rt_timer_t In_ProcessSoftTimer;//软件定时器控制块指针 ``` 从图中还可以知道作品的程序中要创建6个线程,我定义了以下6个线程入口函数: ```c static void IWDG_thread_entry (void *parameter);//看门狗线程入口函数 static void Event_thread_entry (void *parameter);//切换成车位信息显示的线程入口函数 static void exit_thread_entry (void *parameter);// 有车要驶出的线程入口函数 static void entr_thread_entry (void *parameter);// 有车要驶入的线程入口函数 static void WIFI_thread_entry (void *parameter);//连接WIFI、本地服务器的线程入口函数 void button_thread_entry(void *parameter)//用户消息处理入口函数 ``` 由于红外蔽障模块和烟雾传感器模块的使用与按键方式一样,因此这里采纳了何老师的按键消抖方法。 综上所述,我要创建的线程、及线程通讯方式以及软件定时器的具体情况就一目了然了。其中连接WIFI、本地服务器的线程入口函数采用有限次循环模式,其余线程入口函数采用无限循环模式。具体的代码见附件源码。 在此,我讲一下为什么其中在调用车位检测以及车位信息更新函数的定时器需要暂停? 这是因为车位检测以及车位信息更新函数中滞留车辆数目与累计使用车位(含已被推荐)进行比较,如果滞留车辆数目小于累计使用车位(含已被推荐)时会进行推荐车位的标记清除掉一部分使得两者相等。由于有车要驶入的线程入口函数中要推荐停车位时(推荐停车位是在车牌识别结束后显示给车主看),而滞留车辆数目还未增加(滞留车辆数目增加是在舵机升起后增加),此时调用车位检测以及车位信息更新函数就会把之前推荐车位的标记清除了,因此需要合理对该定时器短暂的暂停。这个目的是为了防止有车辆不按照推荐停车位停放,而导致车位浪费。 使用RTT系统的心得: 相对于裸机的代码编辑的逻辑相对要简单,而且相对裸机要清晰明了。 在移植过程中出现的问题有以下几点: 1.线程创建时给予的栈大小不够,导致系统崩溃 2.LCD_Init 放在sysinit中调用,导致系统卡死。因为LCD_Init()初始化函数中包含rt_thread_mdelay()函数,而在rt_thread_mdelay()函数中包含系统调度,所以如果将LCD_Init 放在sysinit中调用。而sysinit是在board.c中调用,此时操作系统调度器未启用,而使用rt_thread_mdelay()函数,导致卡死。 上位机源码:链接:[https://pan.baidu.com/s/12s1BxUXLDcQQeA45v25Rgw](https://pan.baidu.com/s/12s1BxUXLDcQQeA45v25Rgw) 提取码:ar18 [智能小区车位管理系统.zip](/uploads/202004/19/195507k8si3pxvxxzefyzl.zip) [存放智能小区车位管理系统测试视频的百度网盘资料.txt](/uploads/202004/19/200204ygproe0ezor6ezeo.txt)
查看更多
27
个回答
默认排序
按发布时间排序
。。。
2020-04-21
这家伙很懒,什么也没写!
展示视频百度云链接:链接:https://pan.baidu.com/s/1T9ZNCSvuDvkiS1RrHP7z4A 提取码:1js1
pjdu
2020-04-21
这家伙很懒,什么也没写!
看着不错,权限不够
XQQ
2020-04-21
这家伙很懒,什么也没写!
厉害了
。。。
2020-04-21
这家伙很懒,什么也没写!
源码链接:链接:https://pan.baidu.com/s/1LyTWCIXDkDXwKiEYx0e_9Q 提取码:zv07
RT-Thread小喇叭
2020-04-21
这家伙很懒,什么也没写!
>看着不错,权限不够 --- 权限已修改
pjdu
2020-04-22
这家伙很懒,什么也没写!
>权限已修改 --- 谢谢!
等风来
2020-05-01
这家伙很懒,什么也没写!
能分享一下上位机吗?
RT-Thread小喇叭
2020-05-01
这家伙很懒,什么也没写!
>能分享一下上位机吗? --- LabVIEW写的 分享源码,得你下载LabVIEW,等作者给你回复一下
等风来
2020-05-01
这家伙很懒,什么也没写!
我有labview
等风来
2020-05-01
这家伙很懒,什么也没写!
>LabVIEW写的 分享源码,得你下载LabVIEW,等作者给你回复一下 --- 谢谢哈,能分享一下吗
撰写答案
登录
注册新账号
关注者
0
被浏览
8.7k
关于作者
。。。
这家伙很懒,什么也没写!
提问
1
回答
12
被采纳
0
关注TA
发私信
相关问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部