基于物联网的树莓派交通灯控制系统
摘要
交通拥堵是一个严重的问题。在现有系统中,信号配时是固定的,且与交通密度无关。较长的红灯延迟会导致交通拥堵。本文实现了一种基于物联网的交通控制系统,其中信号配时根据车辆计数进行更新。该系统包含Wi-Fi收发模块,可将当前系统的车辆数量传输至下一个交通信号灯。根据前一个信号的交通密度,控制下一个信号的信号配时。该系统基于树莓派和Arduino。交通视频的图像处理在MATLAB中通过Simulink支持完成。整个车辆计数由树莓派执行。
关键词 —车辆计数;交通灯控制;图像处理;树莓派;物联网
I. 引言
物联网(IoT)是一个重要的研究领域,它通过互联网连接实现物理对象之间的高效通信。物联网是物理对象之间的互联,这些对象包括汽车、建筑物、其他车辆、厨房电器以及其他带有电子设备、软件、传感器和执行器的嵌入式设备,使这些对象能够在无需人与人或人机交互的情况下通过网络发送和接收数据。物联网设备是一种独立的互联网连接设备,可以从远程位置进行远程控制。基于物联网的系统已应用于多个领域,如管理糖尿病治疗、构建智能家居、辅助残障人士、提高采矿作业安全性等。为了将物联网用于智能关联应用,通常将其与普适计算[1]结合使用。
交通拥堵日益加剧,我们必须面对诸多问题。造成交通拥堵的主要原因包括车辆数量大、基础设施不足以及发展布局不合理。交通拥堵的特点是行程时间延长、速度变慢和车辆排队增加。当交通需求较高时,车辆之间的相互影响会降低交通流的速度,这也导致一定程度的交通拥堵[2]。传统系统基于定时器导致了时间浪费、严重交通堵塞等局限性,即使道路上没有车辆,信号灯仍然因信号定时器的固定配时而显示红色。
控制系统架构
在此架构中,摄像头安装在信号灯顶部,用于采集特定一侧的交通视频,以便分析该侧的交通状况并获取车辆数量。根据该数量将确定该侧的密度,并给出相应的信号,如图1所示。
在所提出的系统中,以下是设计目标:
- 区分道路图像中车辆的存在与缺失。
- 如果道路为空,则向交通灯发出转为红色信号。
- 即使道路上仍有车辆存在,若绿灯最长持续时间已到,则向交通灯发出转为红色信号。
本文的组织结构如下:第二节阐述了基于物联网的交通控制系统的动机,以及所使用的方法论信息。第三节描述了系统的工作原理。第四节讨论了软件设计、硬件组件及其实现。第五节介绍了所提出系统的实验结果。第六节给出了所提出工作的结论。
II. 动机
世界上几乎所有城市地区都使用交通信号灯来控制道路上的交通。已经开发出不同类型的交通信号灯控制系统,包括车辆感应式信号灯和固定式交通信号灯。但这些系统的交通灯配时是固定的,切换模式也是预先设定好的,与各车道的实际交通状况无关,且无法根据实时数据进行调整。它们未考虑一天中交通密度的非均匀变化模式。即使在某一特定时间段内路线一的汽车数量明显多于路线二,绿灯分配时间和模式对所有路线仍然保持不变。这些设备缺乏智能技术,因此在提升道路网络性能和缓解交通拥堵水平方面作用有限。所提出的系统通过检测交通密度并据此决定交通高峰期绿灯信号的持续时间,从而避免在交通信号灯处产生不必要的等待时间。
III. 所提方案
A. 所提方案的框图
在现有系统中,每个信号的“时间”已经预先分配。根据分配的时间,各个车道的信号灯进行工作。假设有两条车道L1和L2,当L1车道的所有车辆已通过,而另一条L2车道的车辆仍处于等待状态时,由于信号灯仍为红色,车辆无法通行。这类系统是静态的,无法应对全天不同的简单交通状况。在这种系统中存在不必要的等待时间。我们提出一种基于车辆密度动态调整信号配时的交通信号控制系统。该系统包含ESP8266串行WiFi无线收发模块,可将车辆计数数据发送到下一个信号灯,并根据该数据更新其信号配时。该系统基于树莓派和Arduino。摄像头采集视频,视频被发送至个人计算机和树莓派进行图像处理和车辆计数。系统还包括用于控制信号配时的Arduino微控制器,该微控制器连接至信号灯LED灯已连接。系统在MATLAB和Simulink中实现。
控制交通灯的步骤1:
- 摄像头:持续录制交通视频。
- 读取图像:读取交通图像的帧。
- 灰度图像转换:将彩色图像转换为灰度图像。该方法基于不同的颜色变换,根据图像中的R、G、B值计算灰度值,并将图像转换为灰度图像。
- 图像二值化:将灰度图像转换为黑白图像。
- 斑点分析:在Simulink中对二值图像执行斑点分析以获取车辆数量。在斑点分析中,我们找出物体面积,去除图像中的小物体,将图像转换为逻辑图像,并对物体进行标记以实现车辆计数。
- 交通信号控制:根据车辆数量调整信号配时,并点亮相应的LED灯。
控制交通灯2的步骤:
- 初始化系统
- 通过AT指令配置ESP8266模块以支持多接入点
- 将Wi-Fi模块连接到Wi-Fi网络
- 在Wi-Fi模块上启动UDP本地端口
- 建立与树莓派的UDP连接
- 等待数据
- 根据从树莓派接收到的数据更改交通灯信号2
B. 软件设计
1. Arduino IDE
Arduino软件(IDE)是一款开源编译器,我们可以在其中编写代码并将其上传到开发板。它可在Mac OS X、Linux和Windows上运行。该软件基于其他开源软件,其开发环境使用Java编写。Arduino编译器支持C语言和C++,许多库是用C++编写的。Arduino环境会对编写的代码进行一些小的转换,以确保代码正确,然后将其传递给AVR-GCC编译器,该编译器将代码转换为与Arduino兼容的语言。
2. MATLAB与Simulink支持
MATLAB是一种高性能语言,其基本数据元素是无需指定维度的数组。矩阵和向量公式使我们能够解决许多技术计算问题。它将编程可视化与计算相结合,提供了一个易于使用的环境,使我们能够以数学形式表达问题和解决方案。MATLAB工具箱涵盖了控制系统等多个领域,仿真、信号处理、神经网络、小波、模糊逻辑以及许多其他技术。Simulink由MathWorks开发,是一个用于对多领域动态系统进行仿真、建模和分析的图形化编程环境。
IV. 硬件实现
1. 树莓派
树莓派基于博通片上系统(SoC),该系统包含片上ARM兼容中央处理器(CPU)和片上GPU(图形处理器)。树莓派的CPU速度范围从700 MHz到1.2 GHz。大多数主板具有HDMI复合视频输出、3.5毫米音频接口以及一个或四个USB插槽。其板载内存范围从256 MB到1 GB RAM。在树莓派中,操作系统存储在SD卡中。通过多个GPIO引脚提供低层输出,支持I2C等常用协议。Pi 3和Pi Zero W具备板载蓝牙和Wi-Fi 802.11n。
2. Arduino Uno
Arduino Uno 微控制器板基于 ATmega328P,该芯片具有14个数字输入/输出引脚,其中6个为模拟输入引脚,6个可用作PWM输出,以及USB连接、电源接口、16 MHz石英晶体、复位按钮和ICSP接口。它可以通过USB线缆实现与个人计算机的串行通信数据传输。该开发板可通过交流转直流适配器或电池供电以启动运行。
3. Wi-Fi模块 – ESP8266
ESP8266 Wi-Fi模块是一个集成了TCP/IP协议栈的片上系统,可使任何微控制器接入Wi-Fi网络。ESP8266模块已预先烧录AT指令集固件。它既可以独立运行应用程序,也可以将所有Wi-Fi网络功能从另一个应用处理器卸载。该模块具备存储能力和强大的板载处理能力,可通过其通用I/O引脚与传感器及其他特定应用设备集成。
V. 实现结果
A. 目标检测
输入图像中检测到的车辆如图5所示。该图为二值图像,其中白色为物体,黑色为背景。
B. 车辆计数结果
在二值图像上应用斑点检测算法后,我们得到道路上的车辆数量。图7如下所示为车辆数量。
C. 通过无线网络发送数据的结果
图8如下显示了通过UDP传输到Arduino的Wi-Fi模块接收到的数据的状态。
VI. 结论
本文讨论了一种基于物联网的交通控制系统,其中信号配时根据道路上的车辆密度进行更新。所提出的系统使用树莓派和Arduino实现。MATLAB Simulink支持包使得系统实现更加简便。密度测量由树莓派完成。所提出的系统表现出良好性能,有助于减少交通拥堵。结果展示了实时的车辆计数。该系统适用于实时车辆管理。
27

被折叠的 条评论
为什么被折叠?



