En los tiempos actuales, el aumento del tráfico está agravando los principales problemas de las ciudades en desarrollo. Las carreteras principales están llenas de tráfico de vehículos en cada vía o semáforo (punto de intersección). Nos encontramos con el problema común de los atascos en casi todos los cruces, lo que es incluso crítico si vas a las grandes ciudades. Se desperdicia mucho tiempo, energía y combustible precioso simplemente debido a estos atascos en las carreteras.
Para solucionar este problema, se utilizan cámaras de tráfico en los puntos de intersección de tráfico. Las cámaras de tráfico capturan imágenes de vehículos en el tráfico y las envían a MATLAB, así que comience con matlab . Aquí, en este proyecto, se demuestra el sistema de vigilancia del tráfico cómo se puede controlar el tráfico en los puntos de intersección desde la sala de control de tráfico. Se trata de un sistema muy eficaz para la Vigilancia del Tráfico.
A continuación se muestran algunas instantáneas que muestran el funcionamiento del sistema de vigilancia de tráfico basado en Arduino.
Figura 1: Imagen que muestra el funcionamiento del sistema de vigilancia de tráfico basado en Arduino y Matlab
Figura 2: Prototipo de sistema de vigilancia de tráfico basado en Arduino y Matlab
Figura 3: Imagen que muestra cajas de cerillas utilizadas como automóviles en el modelo prototipo
Figura 4: Imagen del código Matlab utilizado en el sistema de vigilancia de tráfico
Figura 5: Imagen de fotografía capturada del tráfico en Matlab
Figura 6: Imagen filtrada del tráfico en Matlab
Figura 7: Imagen del reporte de tráfico enviado al número de celular registrado como SMS
Descripción
El funcionamiento de este Sistema de Vigilancia de Tráfico es fácil y bastante sencillo. El primer lector necesita saber cómo empezar con Arduino . Hay dos placas Arduino UNO que se utilizan para controlar todas las operaciones. En el proyecto también se utilizan tecnologías GPS y GSM. Aquí se usa GPS con Arduino para obtener coordenadas de un atasco y GSM con Arduino para enviar estas coordenadas a la Sala de Control de Tráfico. Pero además de GPS y GSM hay dos cosas más importantes que se utilizan en el Proyecto de Vigilancia del Tráfico: Cámaras y MATLAB.
Figura 8: Diagrama de bloques del sistema de vigilancia de tráfico basado en Arduino y Matlab
Diagrama de bloques sin LCD
MATLAB envía comandos a cámaras para capturar imágenes de tráfico, donde posteriormente MATLAB identifica o cuenta el número total de vehículos en la intersección de tráfico o en la carretera. Si el número total de vehículos en la carretera excede los límites en una situación determinada, MATLAB envía señales al Arduino UNO (A).
Arduino UNO (A) envía una interrupción al segundo Arduino UNO (B). Ahora el segundo Arduino UNO (B) toma las coordenadas del atasco y envía estas coordenadas a la sala de control de tráfico mediante el módulo GSM. Aquí puede utilizar una pantalla LCD para mostrar el estado del tráfico, como atasco o falta de tráfico.
Figura 9: Diagrama de bloques del sistema de vigilancia de tráfico basado en Arduino y Matlab
Diagrama de bloques con LCD
Diagrama de circuito y explicación de programación.
Descripción del circuito
El circuito de este sistema también es bastante sencillo. Puede conectar todo el sistema mediante un cable de puente. La cámara de una computadora portátil se utiliza como cámara de tráfico con fines de seguimiento y se utilizan cajas de cerillas en lugar de vehículos. MATLAB también se utiliza en Laptop para procesar el funcionamiento del proyecto. El Arduino se conecta directamente a la computadora portátil mediante USB. El pin número 8 de Arduino UNO (A) está conectado directamente al pin número 8 de Arduino UNO (B). Un módulo GPS y un módulo GSM están conectados al Arduino UNO (B). También puede conectar una pantalla de cristal líquido (LCD) de 16 × 2 al Arduino UNO (B) para mostrar el estado del tráfico.
Consulte la guía del diagrama de circuito para sin LCD y con LCD
Programa
Existen tres programas para este sistema, el primero es el programa Arduino MATLAB para procesamiento de imágenes y conteo de vehículos. El archivo del paquete de soporte Arduino MATLAB debe estar instalado en su computadora (consulte el artículo anterior sobre la interfaz GUI con Arduino). El segundo programa es también el paquete de soporte Arduino MATLAB (consulte el artículo anterior sobre la interfaz GUI con Arduino) para Arduino UNO (A). El tercer programa es para Arduino UNO (B) que toma el control de GPS, GSM y LCD.
Figura 10: Captura de pantalla del código Arduino utilizado para inicializar el sistema de vigilancia de tráfico
Figura 11: Captura de pantalla del código Matlab utilizado en el sistema de vigilancia de tráfico
Componentes utilizados
1. Dos placas Arduino UNO
2. Módulo GSM
3. Módulo GPS
4. Portátil
5. Pantalla de cristal líquido 16X2 (opcional)
6. Fuente de alimentación
7. Cables de conexión
Código fuente del proyecto
###
//#incluir//Cristal líquido lcd(7, 6, 5, 4, 3, 2); cadena de caracteres (70); char *prueba="$GPGGA"; longitud de caracteres (10); latitud de caracteres (10); intEn=8; //intLED=8; int i,j,k; temperatura interna; //intCtrl+z=26; //para enviar mensaje configuración vacía { // lcd.begin(16,2); Serie.begin(9600); pinMode(Entrada, ENTRADA); // pinMode(LED, SALIDA); // lcd.setCursor(0,0); // lcd.print(" tráfico "); // lcd.setCursor(0,1); // lcd.print("supervivencia"); // retraso(4000); } bucle vacío { mientras(digitalRead(En) != 1); si (temperatura==1) { for(i=18;i<27;i++) //extraer latitud de la cadena { latitud(j)=cadena(i); j++; } for(i=30;i<39;i++) //extraer longitud de la cadena { longitud(k)=str(i); k++; } // lcd.setCursor(0,0); //muestra latitud y longitud en una pantalla LCD de 16X2 // lcd.print("Lat(N)"); // lcd.print((unsigned)latitud); // lcd.setCursor(0,1); // lcd.print("Lon(E)"); // lcd.print((unsigned)logitud); // retraso(100); // escritura digital(LED, ALTA); Serial.println("AT+CMGF=1"); //selecciona el modo texto retraso(10); Serial.println("AT+CMGS="9610126059""); //ingresa el número de recibo Serial.println("Atasco de tráfico "); Serial.print("Latitud(N): "); //ingresa latitud en mensaje Serial.println(latitud); Serial.print("Longitud(E): "); //ingresa longitud en mensaje Serial.println(logitud); //ingresa el valor de latitud en el mensaje //ingresa el valor de longitud en el mensaje Serial.println("Gracias"); Serie.write(26); //enviar mensaje Ctrl+z=26 temperatura=0; yo=0; j=0; k=0; retraso(4000); // próxima lectura dentro de 20 segundos // escritura digital(LED, BAJO); } } evento serial nulo { while (Serial.available) //Datos seriales entrantes desde GPS { char inChar = (char)Serial.read; str(i)= enChar; //almacena los datos entrantes del GPS en una cadena temporal yo ++; si (yo < 7) { if(str(i-1) != test(i-1)) //comprueba la cadena correcta { yo=0; } } si(yo >=60) { temperatura=1; } } } ###
Diagramas de circuito
Diagrama-de-circuito-sistema-de-vigilancia-de-tráfico-basado-Arduino-Matlab | |
Diagrama de circuito-Sistema-de-vigilancia-de-tráfico-basado-Arduino-Matlab_0 |