Tabla de contenido:

Tráfico inteligente: 9 pasos
Tráfico inteligente: 9 pasos

Video: Tráfico inteligente: 9 pasos

Video: Tráfico inteligente: 9 pasos
Video: Los secretos de la rotonda. Lógica de rotonda. 2024, Noviembre
Anonim
Tráfico inteligente
Tráfico inteligente

Resumen

Smart Traffic es una solución de IoT basada en un controlador con sensor de señal bluetooth que cambia la sincronización de los semáforos tras identificar la señal emitida por un vehículo prioritario (militar, bomberos o ambulancia), permitiendo que el vehículo se mueva rápidamente.

Sumário

O Smart Traffic (Tráfego Inteligente) consiste em uma solução IoT baseada em um controlador com sensor de sinal bluetooth que após identificar o sinal emitido por um veículo com prioridade (militar, bombeiros ou ambulância), altera a temporização dos semáforos possibilitando o deslocamento rápido do veículo.

Descrição

Este proyecto, cada vehículo con prioridad de deslocamento estará equipado con un dispositivo Bluetooth Low Energy (BLE), como un Beacon Bluetooth o un dispositivo Android con suporte BLE. Neste projeto implementamos um aplicativo em Android que deverá equipar como viaturas, posibilitando que o condutor ative o modo emergência indicando una needidade de preferência no deslocamento.

Como controlador utilizamos una placa DragonBoard 410C con Windows IoT o, opcionalmente, una placa Raspberry Pi 3. O projeto foi testado com a duas opções. Ambas possuem rádio Bluetooth e portas GPIO que possibilitam ligar os semáforos, representados neste projeto por Leds coloridos. Una placa controladora é responsável, então, por captar o sinal Bluetooth emitido pela viatura em emergência e alterar a temporização do semáforo.

Desenvolvedores

Paso 1: Visão Geral

Visão Geral
Visão Geral

O cenário definido para este projeto trata-se de uma via A de mão única que é cortada por outras duas vias, B e C, também de mão única, conforme imagem acima. Quando uma viatura se desloca em emergência pela via A, o tráfego precisa ser liberado nesta via, fechando os semáforos para as vias B e C até que a viatura tenha finalizado seu deslocamento por A.

Paso 2: Diagrama De Blocos

Diagrama De Blocos
Diagrama De Blocos

Componentes

  • Placa DragonBoard 410C (ou Raspberry PI 3) ejecutando Windows IoT
  • 4 leds vermelhos
  • 4 Led's verdes
  • 8 Resistores de 1000 Ohm
  • Dispositivo Android versión 6.1 con bluetooth 4.0
  • Protoboard e fios para facilitar el montaje

Paso 3: Funcionamento Detalhado

Funcionamento Detalhado
Funcionamento Detalhado
Funcionamento Detalhado
Funcionamento Detalhado

O projeto é constituído básicamente de Aplicativo Android, Do Aplicativo UWP (que ejecutado na DragonBoard, ou Raspberry) e da ligação física do semáforo (Leds).

Aplicativo UWP

O aplicativo UWP contém a lógica dos semáforos, ao ser iniciado, uma thread irá controlar a temporização do semáforo em seu modo padrão de operação. Este mesmo aplicativo é responsável por receptor o sinal bluetooth enviado al dispositivo Android que deverá equipar os veículos de emergência. O Evento, ao detectar um determinado sinal de bluetooth emitido pelo aplicativo, cancela o modo de operação normal e dispara uma nova thread com a temporização adequada para atender ao veículo de emergência. Os Leds são controlados pelas portas GPIO da placa, sendo utilizados os seguintes pinos:

  • DragonBoard:

    • GPIO 36; // Verde
    • GPIO 13; // Vermelho
    • GPIO 115; // Vermelho
    • GPIO 25; // Verde
    • GPIO 35; // Verde
    • GPIO 28; // Vermelho
    • GPIO 25; // Vermelho
    • GPIO 34; // Verde
  • Frambuesa PI 3:

    • GPIO 27; // Verde
    • GPIO 21; // Vermelho
    • GPIO 20; // Vermelho
    • GPIO 18; // Verde
    • GPIO 17; // Verde
    • GPIO 26; // Vermelho
    • GPIO 19; // Vermelho
    • GPIO 22; // Verde

A leitura do sinal Bluetooth é feita utilizando una biblioteca Nativa do Windows UWP Windows. Devices. Bluetooth. Advertisement, que é responsável por receber y tratar publicidad de dispositivos Bluetooth Low Energy (BLE). Utilizando esta especificação Bluetooth no es necesario parear dispositivos (funcionamento conforme Beacons).

Quando o sinal Bluetooth é detectado, as lâmpadas verdes referentes à via "A" piscam 3 veceses e são mantidas acesas. Depois de um tempo pré-determinado, caso o sinal Bluetooth continue sendo detectado, será possible ver as lâmpadas verdes da via "A" piscarem 3 veceses novamente e manterem-se acesas, indicando que o veículo em emergência ainda não conseguiu passar pela via e que por isto, o modo de operação especial será mantido por mais um tempo.

Quando detectamos um sinal Bluetooth, conhecemos, dentre outros detalhes, a intensidade daquele sinal. Com isto, definimos uma intensidade mínima que faz com que o modo de operação especial seja acionado. Esta intensidade esta relacionada, dentre outros fatores de interferência, com a distância entre o emissor e o receptor do sinal.

Trata-se de um aplicativo foreground, como uma interface que muestra um log com os emissores Bluetooth que estão próximos e se o semáforo está operando um modo normal ou especial.

Aplicativo Android

O aplicativo Android é respondavel por emitir o sinal Bluetooth, quando indicado pelo usuário que o veículo esta em modo emergência. Para isto utiliza una biblioteca AltBeacon (vide referências), funcionando como um beacon Bluetooth. O aplicativo é simples, apresentando um botão principal, que quando acionado inicia o broadcast Bluetooth e ao ser acionado novamente encerra a propagação de sinal, e uma configuração que permite escolher a frequência de emissão de sinal (poucas ou muitas emissões por segundo).

Quando um sinal emitido por este aplicativo é detectado pela placa, o modo de operação especial para atender ao veículo equipado con este aplicativo deve ser iniciado.

Paso 4: Aplicativo Android

Aplicativo Android
Aplicativo Android
Aplicativo Android
Aplicativo Android

Telas de operação do Aplicativo Android.

Paso 5: Aplicativo Windows IoT

Aplicativo Windows IoT
Aplicativo Windows IoT
Aplicativo Windows IoT
Aplicativo Windows IoT

Telas de Monitoramento do Aplicativo UWP.

Paso 6: Montagem E Execução

Montagem E Execução
Montagem E Execução
Montagem E Execução
Montagem E Execução

Para montar e ejecutar o projeto, temos 3 etapas a serem seguidas. O primeiro passo é realizó una ligação física dos Leds nas portas GPIO da placa escolhida (Raspberry ou DragonBoard), seguindo o diagrama disponibilizado y observando una numeração das portas GPIO indicadas nos passos anteriores.

Após a montaje físico, e assumindo que una placa já esteja ejecutando o Windows 10 IoT Core (Instalação Windows IoT), es necesario fazer o implementar el aplicativo UWP sin hardware. O Código fuente está disponible en GitHub e o enlace pode ser encontrado en este documento. Fizemos o deploy diretamente através do Visual Studio 2017, que se utilizó para el desenvolvimento del proyecto. Una vez que o aplicativo já tiver instalado en placa, es posible gerenciá-lo (iniciar, parar, excluir) através del Portal de dispositivos de Windows.

É importante verificar que o Bluetooth esteja activo en la placa para el funcionamiento del proyecto. Esta ativação pode ser verificada através do Windows Device Portal, em Conectividade -> Bluetooth. No es necesario parear nenhum dispositivo, ele apenas precisa estar ligado.

Conforme dito, o aplicativo é do tipo Primer plano, posuindo uma interfaz de monitoramento, que permite visualizar los veículos de emergência próximos e o estado del semáforo. Apesar de não ser necesario, para visualizar esta pantalla puede conectar una placa a una tela atravesada por el puerto HDMI o utilizar Windows IoT Remote Client.

Tendo feito a ligação dos Leds e o aplicativo UWP en ejecución en Windows IoT o semáforo já estará funcionado y será posible visualizar una alternancia de luzes em modo normal. Neste ponto o aplicativo já estará esperando o sinal Bluetooth ser emitido pelas viaturas através do aplicativo Android.

Finalmente, será necesario realizar una instalación del aplicativo Android, cujo código fuente también esta disponible en GitHub con enlace en este documento, sendo necesario que dispositivo Android esteja equipado con Bluetooth versión 4.0. Em nossos testes utilizamos Android 7.0. O aplicativo foi desenvolvido no Android Studio 2.3 e ítem como pre-requisito de utilización de Bluetooth, que deve estar ativo no aparelho. O deploy pode ser feito directamente através de Android Studio o gerando o apk para ser distribuido.

O aplicativo apresenta um botão principal que ativa e desativa a emissão de sinal Bluetooth, indicando se o veículo esta ou não em modo emergência. Nas configurações do aplicativo é possível alterar a frequência de emissão do sinal, já que ele fica em modo broadcast.

Quando a emissão é iniciada e detectda pelo aplicativo UWP, é possível visualizar que duas das luzes verdes piscam 3 veceses, indicando que o modo de operação especial para principiantes. O semáforo só irá voltar ao funcionamento normal se não estiver detectando mais nenhum sinal bluetooth das viaturas.

Paso 7: Código Fonte

IoT de Windows

O código fuente del aplicativo desenvolvido en Windows IoT para la ejecución en DragonBoard 410C o en Raspberry Pi 3 está disponible sin la siguiente información:

github.com/pedrohorita/SmartTraffic-IoT-AS…

Androide

O código fonte do aplicativo Android desenvolvido para ativar o modo de emergência nos veículos com prioridade enviando o sinal Bluetooth está disponível no seguinte endereço:

github.com/arthur-mourao/SmartTrafficTrans…

Paso 8: Vídeo de demostración

En la demostración de los teléfonos inteligentes utilizados con la aplicación Android que simula los veículos con prioridad en el tráfico, enquanto o controlador detecta una aproximación al veículo.

A detecção do veículo com prioridade é indicada através do flash do sinal verde.

Após a detecção, o controlador altera a temporização dos semáforos para dar passm para o veículo com prioridade.

No exemplo em questão, simulamos uma ambulância com paciente se deslocando para um hospital.

Paso 9: Referências Bibliográficas

  • https://www.bluetooth.com/develop-with-bluetooth/d…
  • https://blog.bluetooth.com/proximity-and-rssi
  • https://developer.radiusnetworks.com/2014/12/04/fun…
  • https://github.com/andijakl/universal-beacon

Recomendado: