Sistema de Vigilância de Trânsito usando MATLAB e Arduino

Nos tempos atuais, o aumento do tráfego está aumentando os grandes problemas das cidades em desenvolvimento. As estradas principais estão repletas de tráfego de veículos em todas as estradas ou semáforos (pontos de interseção). Deparamo-nos com o problema comum de engarrafamentos em quase todos os entroncamentos, o que é ainda crítico se você for para grandes cidades. Muito tempo, energia além do precioso combustível são desperdiçados só por causa desses engarrafamentos nas estradas.

Para resolver este problema, câmeras de trânsito são usadas em pontos de interseção de trânsito. Câmeras de trânsito capturam a imagem dos veículos no trânsito e enviam para o MATLAB então comece com matlab. Aqui neste projeto, o Sistema de Vigilância de Tráfego é demonstrado como o tráfego pode ser controlado nos pontos de interseção de tráfego a partir da Sala de Controle de Tráfego. Este é um sistema muito eficaz para Vigilância de Trânsito.

Abaixo estão alguns instantâneos que descrevem o funcionamento do sistema de vigilância de tráfego baseado em Arduino.

Imagem mostrando o funcionamento do sistema de vigilância de tráfego baseado em Arduino e Matlab

Figura 1: Imagem mostrando o funcionamento do sistema de vigilância de tráfego baseado em Arduino e Matlab

Protótipo de sistema de vigilância de tráfego baseado em Arduino e Matlab

Figura 2: Protótipo de sistema de vigilância de tráfego baseado em Arduino e Matlab

Imagem mostrando caixas de fósforos usadas como carros no modelo do protótipo

Figura 3: Imagem mostrando caixas de fósforos usadas como carros no modelo do protótipo

Imagem do código Matlab usado no sistema de vigilância de tráfego

Figura 4: Imagem do código Matlab usado no sistema de vigilância de tráfego

Imagem da fotografia capturada do tráfego no Matlab

Figura 5: Imagem da fotografia capturada do tráfego no Matlab

Imagem de imagem filtrada de tráfego no Matlab

Figura 6: Imagem de imagem filtrada de tráfego no Matlab

Imagem do relatório de trânsito enviado para o número de celular cadastrado como SMS

Figura 7: Imagem do relatório de trânsito enviado para o número de celular cadastrado como SMS

Descrição

O funcionamento deste Sistema de Vigilância de Tráfego é fácil e bastante simples. O primeiro leitor precisa saber como começar com arduino . Existem dois Arduino UNO placas que são utilizadas para controlar todas as operações. GPS e GSM tecnologias também são utilizadas no projeto. Aqui GPS é usado com arduino para obter coordenadas de um engarrafamento e GSM é usado com Arduino por enviar essas coordenadas para a Sala de Controle de Tráfego. Mas além do GPS e do GSM existem mais duas coisas importantes que são utilizadas no Projeto de Vigilância de Tráfego: Câmeras e MATLAB.

Diagrama de blocos do sistema de vigilância de tráfego baseado em Arduino e Matlab

Figura 8: Diagrama de blocos do sistema de vigilância de tráfego baseado em Arduino e Matlab

Diagrama de blocos sem LCD

O MATLAB envia comandos às câmeras para captura das imagens do trânsito, onde posteriormente o MATLAB identifica ou conta o número total de veículos no cruzamento de trânsito ou na estrada. Se o número total de veículos na estrada ultrapassar os limites em uma determinada situação, o MATLAB envia sinais para o Arduino UNO (A).

Arduino UNO (A) envia interrupção para o segundo Arduino UNO (B). Agora o segundo Arduino UNO (B) pega as coordenadas do Engarrafamento e envia essas coordenadas para a Sala de Controle de Tráfego usando o módulo GSM. Aqui você pode usar um LCD para mostrar o status do tráfego, como engarrafamento ou sem trânsito.

Diagrama de blocos do sistema de vigilância de tráfego baseado em Arduino e Matlab

Figura 9: Diagrama de blocos do sistema de vigilância de tráfego baseado em Arduino e Matlab

Diagrama de blocos com LCD

Diagrama de circuito e explicação de programação

Descrição do Circuito

O circuito deste sistema também é bastante simples. Você pode conectar todo o sistema usando um fio jumper. A câmera do laptop é usada como câmera de trânsito para fins de monitoramento e as caixas de fósforos são usadas no lugar dos veículos. MATLAB também é utilizado em Laptop para processar o funcionamento do projeto. O Arduino está conectado diretamente ao laptop usando USB. O pino número 8 do Arduino UNO (A) está diretamente conectado ao pino número 8 do Arduino UNO (B). Um módulo GPS e um módulo GSM estão conectados ao Arduino UNO (B). Também é possível conectar um display de cristal líquido (LCD) 16×2 ao Arduino UNO (B) para exibir o status do tráfego.

Consulte a guia do diagrama de circuito para sem LCD e com LCD

Programa

Existem três programas para este sistema, o primeiro é o programa Arduino MATLAB para processamento de imagens e contagem de veículos. O arquivo do pacote de suporte Arduino MATLAB deve ser instalado em seu computador (consulte o artigo anterior sobre interface GUI com Arduino). O segundo programa também é o pacote de suporte Arduino MATLAB (veja o artigo anterior sobre interface GUI com Arduino) para Arduino UNO (A). O terceiro programa é para Arduino UNO (B) que assume o controle de GPS, GSM e LCD.

Captura de tela do código Arduino usado para inicialização do sistema de vigilância de tráfego

Figura 10: Captura de tela do código Arduino usado para inicialização do sistema de vigilância de tráfego

Captura de tela do código Matlab usado no sistema de vigilância de tráfego

Figura 11: Captura de tela do código Matlab usado no sistema de vigilância de tráfego

Componentes usados

1. Duas placas Arduino UNO

2. Módulo GSM

3. Módulo GPS

4. Portátil

5. Tela de cristal líquido 16X2 (opcional)

6. Fonte de alimentação

7. Conectando Fios

Código-fonte do projeto

###

//#include
//LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

char str(70);
char *test="$GPGGA";      
char logitude(10);
char latitude(10);

int In=8;
//int LED=8;

int i,j,k;
int temp;
//int Ctrl+z=26;    //for sending msg

void setup 
{
//  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(In, INPUT);
//  pinMode(LED, OUTPUT);
//  lcd.setCursor(0,0);
//  lcd.print("     trafic    ");
//  lcd.setCursor(0,1);
//  lcd.print("   survilience ");
//  delay(4000);
}

void loop 
{
  
  while(digitalRead(In) != 1);
  if (temp==1)
  {
    for(i=18;i<27;i++)          //extract latitude from string
    {
      latitude(j)=str(i);
      j++;
    }
   
    for(i=30;i<39;i++)          //extract longitude from string
    {
      logitude(k)=str(i);
      k++;
    }
   
   // lcd.setCursor(0,0);        //display latitude and longitude on 16X2 lcd display 
   // lcd.print("Lat(N)");
   // lcd.print((unsigned)latitude);
   // lcd.setCursor(0,1);
   // lcd.print("Lon(E)");
   // lcd.print((unsigned)logitude);
   // delay(100);
   // digitalWrite(LED, HIGH);
    Serial.println("AT+CMGF=1");    //select text mode
    delay(10);
    Serial.println("AT+CMGS="9610126059"");  // enter receipent number
    Serial.println("Trafic Jam ");
    Serial.print("Latitude(N): ");             //enter latitude in msg
    Serial.println(latitude); 
    Serial.print("Longitude(E): ");            //enter Longitude in Msg
    Serial.println(logitude); 
                    //enter latitude value in msg
                    //enter longitude value in msg
    Serial.println("Thanks");  
    Serial.write(26);                      //send msg  Ctrl+z=26
    temp=0;
    i=0;
    j=0;
    k=0;
    delay(4000);                        // next reading within 20 seconds
   // digitalWrite(LED, LOW);
}
}

void serialEvent 
{
  while (Serial.available )            //Serial incomming data from GPS
  {
    char inChar = (char)Serial.read ;
     str(i)= inChar;                    //store incomming data from GPS to temparary string str 
     i++;
     if (i < 7)                      
     {
      if(str(i-1) != test(i-1))         //check for right string
      {
        i=0;
      }
     }
    if(i >=60)
    {
     temp=1;
    }
  }
}


###

Diagramas de circuito

Diagrama de Circuito-Arduino-Matlab-Based-Traffic-Surveillance-System
Diagrama de circuito-Arduino-Matlab-Based-Traffic-Surveillance-System_0

Vídeo do projeto

https://www.youtube.com/watch?v=M-WCH1v76tg

返回博客

发表评论

请注意,评论必须在发布之前获得批准。