Você está na página 1de 46

CARLOS ALEXANDRE PACHOLOK

JHONATAN ZEZAK RODRIGUES

Controle de Trfego do Transporte Coletivo

Relatrio apresentado disciplina de


Projeto Final II, Curso de graduao em
Eng. Eltrica, Setor de Cincias Exatas e
Tecnolgicas,

Pontifcia

Universidade

Catlica do Paran.

Orientador : Prof. Mardson Freitas


de Amorim

CURITIBA
DEZEMBRO / 2007

Controle de trfego do transporte coletivo

PLANO DE PROJETO

Equipe:
CARLOS ALEXANDRE PACHOLOK
JHONATAN ZEZAK RODRIGUES

Orientador:
____________________________
Prof. Mardson Freitas de Amorim

Pontifcia Universidade Catlica do Paran


Projeto Final II
Engenharia Eltrica
Professor Responsvel: James Alexandre Baraniuk

CURITIBA
DEZEMBRO / 2007

INDICE

RESUMO: .................................................................................................................................... 1
INTRODUO: ............................................................................................................................ 2
GPS.................................................................................................................................... 5
GSM/GPRS....................................................................................................................... 5
Micro-controlador ............................................................................................................. 5
Servidor ............................................................................................................................. 5
Mdulo GPS...................................................................................................................... 7
Mdulo Receptor GPS Trimble...................................................................................... 8
Funcionamento do Mdulo GPS ................................................................................... 9
Mdulo GPRS................................................................................................................. 10
MDULO MVEL ..................................................................................................................... 12
GPS.................................................................................................................................. 12
GPRS............................................................................................................................... 13
PIC Micro Controlador (Software)............................................................................ 14
SERVIDOR ................................................................................................................................. 17
Introduo Terica ao C++ Builder ............................................................................. 17
Introduo Terica ao Banco de Dados e Tabelas .................................................. 17
DRIVER OBDC .............................................................................................................. 19
FERRAMENTAS DE CONEXO C++ BUILDER COM O MySQL ........................ 19
MODELAGEM DE BANCO DE DADOS .................................................................... 22
SERVIDOR DE CONTROLE DE TRAFEGO DO TRANSPORTE COLETIVO.... 25
CONSULTAS DO SISTEMA ........................................................................................ 30
CLCULO DO TEMPO ESTIMADO DO PRXIMO NIBUS................................ 33
ALGORITMO DO CLCULO DO TEMPO ESTIMADO........................................... 35
ARMAZENANDO DADOS NO SERVIDOR:.................................................................................. 40
CONCLUSO: ............................................................................................................................ 42

RESUMO:
Objetivando uma melhora do transporte coletivo, identificando a localizao do nibus,
velocidade e tempo estimado de chegada at prxima estao, este projeto final desenvolveu um
prottipo de um sistema de controle e trfego do transporte coletivo. So utilizados dispositivos de
localizao via satlite GPS integrados com o sistema de comunicao atravs do sistema mvel
celular com a tecnologia GSM/GPRS, com comunicao em tempo real que so integrados a um
micro-controlador. O veculo, assim como cada estao, se comunicar com o servidor na central de
controle e operao para o envio e recepo dos dados.
No hardware so utilizados os mdulos GPS e GSM/GPRS da PUCPR. Para o controle desses
dispositivos utilizado um micro controlador da famlia PIC adquirido a partir de recursos dos
prprios desenvolvedores do projeto.
J o quesito software, utilizada a linguagem C/C++ tanto na implementao do servidor
central, quanto na programao da placa com o micro controlador.

INTRODUO:
As grandes cidades sofrem cada vez mais com os congestionamentos que ultrapassam o
horrio de rush. O problema antigo e cada vez est em piores condies, gerando grande stress na
populao. O sistema de transporte pblico visa atender toda a populao no translado casatrabalho, ou casa-escola, enfim, na locomoo dos habitantes. Todavia, o sistema de transporte
pblico coletivo no possui muitos adeptos e, sempre que possvel, o usurio utiliza-se de transporte
prprio devido superlotao e horrio indeterminado ou com muito atraso.
O projeto se destina s empresas de nibus que almejam melhorar e modernizar o sistema
de transporte. Neste caso a URBS da cidade de Curitiba seria o possvel cliente. O projeto viabiliza o
rastreamento, controle de horrios de partida e chegada dos nibus, assim como a velocidade do
mesmo, melhorando assim o sistema de transporte coletivo e facilitando a vida do usurio.
O Sistema de Controle e trfego do transporte coletivo via GPS um sistema inovador e
avanado de coleta de informaes de operaes da frota do transporte coletivo utilizando mdulos
com tecnologia GPS e transmisso desses dados atravs de mdulos celulares GSM/GPRS.
GPS a sigla inglesa de Global Positioning System e significa Sistema de Posicionamento
Global, um sistema que fornece a posio geogrfica de qualquer ponto da terra atravs de
coordenadas geogrficas emitidas pelos sistemas de satlites.
Os sinais emitidos pelos satlites so recebidos pelo mdulo GPS sendo possvel determinar
com preciso o local e horrio em que se encontra um determinado nibus, alm da velocidade
desenvolvida naquele momento, a direo e a distncia percorrida por ele.
Depois de efetuada a leitura da posio geogrfica e outros dados decorrentes do mdulo
GPS, as informaes sero enviadas por um mdulo celular GSM/GPRS ao um servidor central que
processar as informaes e re-enviar aos terminais de passageiros.
A sigla GRPS vem do ingls General Packet Radio Service, que significa servio global de
transmisso de dados por pacotes. Seu funcionamento se baseia no envio e recepo de informaes
em uma rede telefnica celular GSM. Essas informaes so divididas em pacotes, que percorrem
diversos caminhos at o destino final. Na qual so reagrupados e lidos de forma correta.
O software utilizar recursos grficos indicando as posies e o itinerrio realizado por todos
os nibus, velocidade atual, tempo esperado at a prxima estao.

DETALHAMENTO DO PROBLEMA:
Na Curitiba, que possui um sistema de transporte exemplar, invejado, premiado e copiado
por muitos lugares e um grande nmero de usurios satisfeitos (89% segundo a URBS) este sistema
organizado pela URBS (Companhia de Urbanizao de Curitiba). nibus bi-articulados trafegam em
vias exclusivas e terminais de nibus e estaes tubo permitem aos passageiros trocarem de linha
pagando apenas uma passagem. Ainda assim, a populao foge do servio mesmo fora dos horrios
de pico e reclamam da impreciso dos horrios. A alegao que de nibus precisam sair 30 minutos
antes ou at mais, pois no sabem que horas o nibus passar. Teoricamente, os nibus possuem um
horrio pr-estabelecido, mas esse horrio funciona somente em paradas finais e, fora disso, em
intervalos de horrios. Os nibus bi-articulados em dia de semana passam de cinco em cinco
minutos, sbados de dez em dez minutos e domingos e feriados de quinze em quinze. Contudo, o
usurio quer saber quando passar o prximo. Ou ainda, h casos em que o usurio est no terminal
e tem duas opes, uma que demora mais e outra menos. O questionamento : a que demora mais
j est no terminal e a que demora menos chega h um minuto, em dois ou somente daqui quinze
minutos?
Com o intuito de melhorar esse servio, o projeto prope localizar e identificar a hora
estimada da chegada do prximo nibus. O sistema identificar a localizao do nibus, sua
velocidade e estimar o horrio de chegada na prxima estao tubo ou terminal. Esse sistema ter
um apelo muito forte ao usurio do transporte coletivo e servir de incentivo s campanhas de uso
do transporte publico. Para os proprietrios dos veculos poder ser utilizado como segurana pelo
servio de rastreamento e para URBS uma otimizao dos veculos, horrios de pico com mais nibus
e melhor intercalados.
Solues parecidas existem em alguns lugares do Brasil. Contudo, em So Paulo (capital), por
exemplo, o sistema que deveria informar o horrio de chegada do prximo nibus est sempre fora
do ar. Uma soluo barata aplicada em alguns lugares a utilizao de rdio freqncia, onde em
cada parada avisa a prxima da que o nibus est chegando. Porm, esta soluo possui, como
principal falha, casos em que o nibus tenha de parar devido a acidentes ou congestionamento o
tempo de chegada no se aplicar. Outro problema da soluo por rdio freqncia a distncia
alcanada. Por GPRS possvel informar a localizao do nibus a qualquer terminal ou estao tubo
alvo que esteja dentro da rea de cobertura da rede de celulares, o que atualmente nas grandes
cidades no um problema e faz com que a abrangncia seja praticamente total.
O projeto prope um sistema que, alm de fornecer a facilidade de o passageiro saber o
horrio de chegada do seu nibus, fornece facilidades aos proprietrios dos veculos, com o sistema
de GPS integrado ao GPRS e ao micro-controlador. Assim, possvel adicionar servios de acordo
com as especificaes do proprietrio. Por exemplo, informaes de distncia percorrida,
informaes da bomba de combustvel, velocidade mdia, temperatura do motor, boto de pnico
3

para cobradores em caso de pnico. Para a URBS, que gerencia o sistema, algumas das possveis
informaes so: informao do nmero de passageiros que entraram no nibus ou na estao tubo,
boto de pnico para as estaes tubo, certificao do nmero de nibus trafegando na rota, alm
das informaes que so de comum interesse da URBS e proprietrios de nibus. Com a
implementao do sistema um maior nmero de cidados utilizar o sistema, gerando maior lucro
operadora.
Atravs do rastreamento via GPS, os semforos podero ser programados com antecedncia
a fim de liberar a passagem dos nibus. Se aplicado, o sincronismo entre nibus e semforos,
diminuiria muito o tempo da viajem e, com isso, ganhando passageiros.

TRABALHO A SER DESENVOLVIDO:


O projeto foi dividido em quatro mdulos abaixo relacionados:
Mdulo GPS;
Mdulo GSM/GPRS;
Micro-controlador;
Servidor.

Figura 1 Diagrama dos mdulos funcionais

GPS
Nesse primeiro mdulo funcional sero verificados quais so os dados enviados, tempo de
verificao e envio para serial. Posteriormente, o mdulo ser colocado para enviar os dados obtidos
dos satlites para uma interface de alto nvel para o usurio (LabView). Na verso final ser feito com
que o GPS envie as informaes para o mdulo GPRS atravs de pacotes de dados at o servidor.

GSM/GPRS
Nessa segunda etapa, ser verificado o funcionamento do mdulo e suas caractersticas,
enviando dados de teste na rede GPRS. Ser verificado como so seus comandos e dados enviados
atravs da porta serial, tempo de envio e etc. Aps esses perodos de testes, o mdulo GPRS ser
configurado para receber os dados do GPS e envi-los atravs de pacotes IP para o servidor.

Micro-controlador
O terceiro mdulo consiste no software e no hardware do micro-controlador. O software o
cdigo em linguagem C dos procedimentos que o micro-controlador ter que efetuar para
interfacear os dados coletados do GPS e envi-los atravs do modem GPRS. J no hardware, ser
confeccionada uma placa para alojar o micro-controlador.

Servidor
5

No quarto e ltimo mdulo funcional, o receptor funcionar como um servidor de bancos de


dados que receber os dados enviados do modem GPRS, depois de processados, re-encaminhando
para o terminal, na qual ter outro mdulo GSM/GPRS integrado com display.
No software, implementado em linguagem C/C++, far o recebimento e processamento das
informaes enviadas pelos nibus, consultando seu trajeto atual, velocidade, sincronismo de relgio
e calculo aproximado do tempo at prxima estao.

TECNOLOGIAS QUE SERO UTILIZADAS:

Mdulo GPS
O sistema de GPS fornece uma precisa capacidade de fornecer coordenadas geogrficas de
um determinado ponto na terra, velocidade e altitude atravs da navegao tridimensional.
Desde os primrdios os homens utilizavam os corpos celestes para a navegao e
orientao. A navegao astronmica possui alguns inconvenientes, como a no presena dos astros
a qualquer hora (dias nublados, por exemplo) e em qualquer ponto, a pessoa deve ter a capacidade
para fazer essa leitura, contudo, tem a vantagem de estar ali, e poder utilizar sem pedir autorizao a
ningum.
Sistemas de navegao por ondas de rdios tambm apresentam limitaes, como as
ondas de rdio de alta freqncia proporcionam navegao precisa, mas so influenciadas pelo
relevo. J as ondas de baixa freqncia so pobres em preciso e os equipamentos no so de fcil
acesso para qualquer usurio.
Pesquisas realizadas na dcada de 70 e 80, pela Fora Area dos Estados unidos levaram
ao sistema de navegao por satlites, GPS, cujos principais objetivos foram a radio navegao em
trs dimenses com alta preciso de posio, navegao em tempo real, imunidade a interferncias,
cobertura global e inoperabilidade, rpida obteno dos dados transmitidos pelos satlites.
O funcionamento bsico de do sistema GPS se baseia no principio de triangularizao,
segundo o qual o observador conhece a posio de um conjunto de satlites em relao a um
referencial inercial e sua posio em relao a este conjunto, obtendo sua prpria posio no sistema
de referncia.
O GPS dividido em trs segmentos principais:
segmento espacial, constitudo pelos satlites;
segmento de controle, constitudo pelas estaes terrestres que controlam o
desempenho e o funcionamento do sistema;
segmento usurio, constitudo pelos usurios do sistema.
A mensagem transmitida por cada satlite ao usurio contm:
parmetros para correo do relgio do satlite;
efemrides do satlite;
almanaque e "sade" de todos os satlites;
dados para correo da propagao ionosfrica;
parmetros para correes orbitais;
cdigo de identificao.
A mensagem referente dos satlites pode chegar de forma incorreta. Essas principais fontes
de erro podem ser:
7

erro devido geometria dos satlites com relao ao observador;


desvios dos relgios dos satlites;
atraso de propagao e processamento dos sinais pelos
pelos circuitos dos satlites;
erros devido a trajetrias mltiplas dos sinais;
efeitos da atmosfera sobre a velocidade e a trajetria de propagao dos sinais
transmitidos;
erros devidos resoluo e rudo do receptor do usurio;
erro na determinao da
d posio dos satlites.
Na comunicao com os receptores de GPS so
so utilizados dois sinais, chamados de L1 e L2. L1
tem a freqncia de 1575.42 MHz e utilizado por GPS para uso civil. No passado o governo dos
Estados Unidos agregava um rudo ao sinal para
para diminuir a exatido das localizaes. Contudo em
maio de 2000 essa caracterstica foi eliminada, melhorando a exatido dos GPS civis.

Mdulo Receptor GPS Trimble


Os mdulos de GPS so bastante sensveis. Porm, devido extrema atenuao dos sinais,
eles
es necessitam de um amplificador de RF e de uma antena externa especfica.
O microprocessador realiza uma srie de filtros digitais alm de outras tcnicas para extrair a
informao dos satlites que chegam com rudos e com grande atenuao.
Dessas informaes
es extrada a localizao, entre muitas informaes disponveis, e
repassado ao mundo externo atravs da etapa de interfaceamento.

Figura 2 - GPS Utilizado

Figura 3 - Diagrama de blocos Mdulo GPS Trimble

Funcionamento do Mdulo GPS


Ao ser inicializado, o GPS provavelmente no ter nenhuma informao vlida. Por isso ele
deve executar as seguintes funes:
Receber o sinal de conjunto de pontos da rbita prevista + a diferena de clock ou
almanaque;
Receber sinal dos satlites;
Decodificar as informaes;
Transformar as informaes em localizao, altitude, velocidade, e sincronismo de
relgio;
Repassar essas informaes ao mundo exterior;
Repetir a partir do passo 2.

Para efetuar a localizao, o sistema


sistema GPS necessita de, no mnimo, quatro satlites por um
motivo simples: os sinais percorrem cerca de 300 metros em um micro segundo. A estabilidade dos
cristais usados nos receptores de GPS est casa de micro segundos, o que torna muito elevado o erro
de posio devido diferena dos relgios. Contudo, ao utilizar um quarto satlite, os receptores do
GPS se sincronizam com os relgios atmicos dos satlites. Dessa maneira a estabilidade fica em
torno dos nano segundos, diminuindo consideravelmente o erro.
er
A recepo do almanaque pode ser bem demorada. Dependendo da situao de recepo,
podem ser necessrios vrios minutos. Durante esse tempo o mdulo de GPS no capaz de realizar
uma medida de localizao.
9

Mdulo GPRS
A rede de telefonia celular GSM atual teve suas taxas de transferncia de dados
aumentada devido tecnologia GPRS. Ela permite o transporte de dados por pacotes por comutao
de pacotes, oferecendo assim, elevadas taxas de transferncias que as tecnologias anteriores que
utilizavam comutao
mutao por circuito. A informao dividida em pacotes relacionados entre si antes de
ser transmitida e remontada no destinatrio.
A comutao por pacotes estabelecida de forma diferente que a comutao por
circuito, pois, a mesma no estabelecida do
do ponto de origem da transferncia de dados ao destino.
Na comutao por circuito todos os recursos da rede so dedicados por toda a durao da chamada.
Com a tecnologia GPRS o servio este sempre ativo, e os recursos da rede s so utilizados quando o
usurio
rio for enviar ou receber dados. Pelo fato de estarem sempre conectados e a disponibilidade
imediata uma caracterstica muito importante para aplicaes crticas como autorizao remota.
Com esse
sse uso eficiente de recursos, um grande nmero de usurios G
GPRS pode
potencialmente compartilhar a mesma largura de banda e serem servidos de uma nica clula. O
nmero atual de usurios suportados depende da aplicao em uso e de quanta informao que est
sendo transferida. Dada a eficincia do GPRS, h menor necessidade
necessidade de investir em recursos que
sero somente utilizados em horrios de pico. Portanto, GPRS permite que as operadoras maximizem
o uso de seus recursos de rede de uma forma dinmica e flexvel.
A rede GPRS permite uma funcionalidade completa com a int
internet mvel por ter
interoperabilidade entre a internet convencional e rede GPRS. Qualquer servio utilizado na internet
est disponvel tambm atravs da rede mvel celular com GPRS. A navegao na web atravs da
rede GPRS fcil pelo fato dos protocolos em uso serem os mesmos. As redes GPRS podem ser
encaradas como sub-redes
redes da Internet e os telefones GPRS-compatveis
GPRS compatveis podem ser vistos como ns
mveis dessa rede. Isso significa que cada terminal GPRS pode potencialmente ter seu prprio
endereo IP e ser enderevel
nderevel por isso.

Figura 4 - Mdulo GPRS Utilizado

10

PROCEDIMENTOS DE TESTES E VALIDAO DO PROJETO:


O projeto ser desenvolvido em etapas e principais mdulos. Cada mdulo ser testado
separadamente e, finalmente, todos integrados.
Para o teste do funcionamento do mdulo GPS ser utilizado, como referncia, o
software Google Earth e um aparelho GPS convencional do mercado. Primeiramente, o GPS est
ligado a uma interface em software de instrumentao virtual da National Instruments, o Labview.
Esta interface foi criada para facilitar a leitura dos dados oriundos do GPS. Como o sistema ser
utilizado em veculos, sero feitos alguns testes em carro de passeio em locomoo e os valores lidos
sero armazenados pelo Labview. Este o objetivo maior desta interface.
Outro passo o teste do mdulo GPRS, onde sero feitos testes de funcionamento e
controle do aparelho. Testes de funcionamento, envio de comandos, mensagens SMS, envio e
recebimento de pacotes TCP/IP.
Antes de concluir os testes com o GPRS, o software para o micro-controlador ser
desenvolvido e testado juntamente com o GPRS. Tambm testes de comunicao entre dois mdulos
GPRS, envio de dados de um para o outro e vice versa. Aps concluso desses testes e comprovado o
funcionamento, entrar o GPS em funcionamento novamente.
O GPS envia dados para micro-controlador que envia para o GPRS. Este envia para outro
mdulo GPRS e traduzido em micro-controlador ou um computador convencional.
Com os trs mdulos interagindo, ser feito outro ou outros testes em campo. O kit ser
testado em movimento, com um carro em movimento, e os dados sero armazenados e anotaes
sero feitas, como por exemplo, a velocidade do carro, trajeto verificado pelo Google Earth e GPS
comercial. Outro kit com os trs mdulos ficar em laboratrio simulando uma central que recebe os
dados do carro e processa localizao e tempo estimado para retorno, sendo que o caminho j foi
pr-estabelecido. Este teste validar o projeto, entretanto, um teste final almejado um teste real
em nibus da rede de transportes urbanos da cidade de Curitiba.
O teste realizado com o carro o parmetro de sucesso do projeto. O teste consiste em
definir uma rota, estabelecer um tempo para o percurso. Na segunda volta, sero criados improvisos
e testando assim a capacidade do sistema de atualizar e estimar um novo horrio de chegada.

11

MDULO MVEL
O mdulo mvel composto de trs equipamentos. GPS Micro Controlador
GPRS. Eles interagem da seguinte maneira:

Figura 5 - Funcionamento Mdulo Mvel

GPS
O GPS recebe o sinal dos satlites e a cada meio segundo transmite pela porta
serial (taxa de 4800bps) as informaes. Esse modelo da Trimble est configurado para
transmitir trs mensagens:
$GPZDA,122342.44,10,12,2007,,*6F
$GPGGA,122342.00,2526.9955,S,04914.9689,W,1,03,2.12,00872,M,-000,M,,*40
$GPVTG,000.0,T,015.8,M,000.0,N,000.0,K,A*2F
Essas mensagens seguem o protocolo NMEA 0183 [8] e sempre seguem a mesma
ordem de informaes. Esse protocolo garante que as mensagens so entregues sempre na
mesma ordem e sempre com uma vrgula entre cada informao. A vrgula um parmetro
importante, pois quando o equipamento no consegue captar as informaes do satlite
somente as vrgulas so transmitidas. Com isso, o software implementado no PIC (Micro
controlador) conta as vrgulas para buscar as informaes teis ao projeto. Informaes
como altitude, nmero de satlites foram descartadas.

12

GPRS
O GPRS o link entre o mdulo mvel e o servidor, a interface de sada de dados.
A configurao do mdulo feita quando o veculo entra para a rota, ou seja, quando ele sai
da garagem (no caso de nibus) e se encaminha para a linha que ele far. A configurao
consiste em habilitar as mensagens de status do comando. Com isso, depois de cada
comando configurado o mdulo transmite uma mensagem de OK quando comando recebido
com sucesso e ERROR quando o comando recebido no foi interpretado corretamente ou
h falha na configurao. Quando o mdulo iniciado ele faz algumas rotinas de testes e
transmite mensagens se os testes forem bem sucedidos, logo, o primeiro teste do software
verificar se a rotina de testes do mdulo foi bem sucedida (checar porta serial, checar sinal,
e outras). Todas as mensagens so enviadas pela porta serial do mdulo. A taxa de
comunicao de 115200bps, bastante alta para uma porta serial.
!"# $

%&'%()%*
($+ !%*),*
+,-+,-*)$*
./)'0$

,!1 %*
#$.%!)$

!8$

%&'%()%*
(,-2$-+%*)$*
./)'0$

(,-2$-+%*
$34

-.

,!1 %*
2(/5 .$-*
#$.%!)$-

#$!6 &'(%78$*
$34

+,(. !%*$*
2($&(%.%*,*
%#,!),*0,)*
1,(.,09$

,!#,((%*
($+ !%

6.

Figura 6 - Fluxograma da Configurao do Mdulo GPRS

Devido alta velocidade da porta serial algumas mudanas ocorreram no software


para que as mensagens de status fossem recebidas e interpretadas corretamente pelo PIC.
13

A principal mudana do software consiste em habilitar a interrupo da porta serial do


software, isso garante que nenhum dado ser perdido, mas sim, armazenado em uma
varivel.

PIC Micro Controlador (Software)


O PIC a interface que gerencia e comanda o GPS e o GPRS. Inicialmente o cristal
(clock) era de 4MHz, contudo, devido alta taxa de comunicao pela porta serial (RS232)
com o mdulo GPRS (115200bps) o clock foi alterado para um cristal de 20MHz. Essa
alterao no cristal fez com que o PIC 16F877A executasse as linhas de comando cinco
vezes mais rpido. A idia do software bastante simples, abaixo ela exemplificada:

Figura 7 - Fluxograma do Software do PIC

O mdulo mvel possui uma operao bastante simples para que no dependa do
operador (motorista). Com isso, o software precisa gerenciar os erros durante a
configurao do GPRS e os demais que podem ocorrer na recepo dos dados do GPS.
Nessa filosofia o prottipo ficou com o boto de reincio (reset) e de permanncia de
rota. O boto de reset deve ser pressionado sempre que houver algum erro, nesse caso um
LED vermelho se acender. Caso no haja erro algum o LED verde permanecer aceso e
um LED amarelo fica piscando para informar que o programa no est travado. Quando o
14

veculo estiver saindo de linha e voltando para a garagem uma chave dever ser mudada de
posio. Nessa transio da chave, o software inicia o processo de encerramento de socket
com o servidor. Esse um fator importante, pois atravs do socket que o servidor verifica
se o nibus est operante ou no. Para informar que o socket foi encerrado e o mdulo
mvel
vel pode ser desligado todos os LED acendem e permanecem acesos.
Testes confirmaram o uso do mdulo mvel em baterias de 12V. Para sintetizar o
uso, uma placa fonte foi criada e pode ser observada abaixo. Testes em baterias de
automveis ainda sero feitas
feitas e necessitaro de um circuito mais preciso e com filtros. A
placa fonte possui os LED de indicao e trs reguladores de tenso. Um para cada
equipamento, ou seja, o GPS, PIC e GPRS.

Figura 8 - Placa HexKIT 16F877 e Placa de LEDs


LEDs e Alimentao

Como o GPRS e GPS utilizam interface serial de comunicao, foi necessrio criar
outra sada serial para o PIC. O PIC possui uma serial implementada em seu hardware.
Logo, a sada encontrada foi utilizar um software que gerencia outra por
porta serial. O software
utilizado foi baseado no software publicado no livro Microcontroladores PIC - Programao
em C [9]. No livro h o programa pronto para a velocidade de 9600bps, no prottipo a
velocidade usada de 4800bps (taxa do GPS), logo, alteraes
alteraes foram feitas para o perfeito
funcionamento.
A mudana do cristal do PIC trouxe mudanas ao software de gerenciamento do
mdulo mvel. Primeiramente, o software que gerenciaria as informaes oriundas do GPS
armazenaria 200Bytes na memria EEPROM do PIC e depois varreria essa memria em
busca das informaes teis. Em testes essa lgica era bastante funcional, mas quando
ligado ao GPS muitos dados eram perdidos e problemas no software que trata serial
15

apareceram. A mudana do cristal deixou as operaes do PIC cinco vezes mais rpida com
isso uma nova lgica no programa que trata os dados do GPS pode ser implementada. O
gerenciamento dos dados ficou dinmico, ou seja, a partir que um Byte era recebido ele j
era tratado. Essa lgica s pode ser implementada devido velocidade do clock e
alteraes no software que gerencia a serial que comunica com o GPS. A transmisso bit a
bit foi verificada e alguns parmetros alterados para que o PIC tivesse tempo hbil de
checar os dados recebidos pelo GPS e tomar as decises necessrias.
O PIC est programado a ler os dados do GPS e transmitir o pacote de informaes
a cada quinze segundos aproximadamente. Para viabilizar o projeto financeiramente, as
informaes no necessrias ou de redundncia foram retiradas, assim, criou-se um
protocolo de comunicao e envio de dados cuja mensagem no possui mais que cinqenta
bytes.

16

SERVIDOR
Introduo Terica ao C++ Builder
O C++ Builder um ambiente de desenvolvimento para aplicaes cliente/servidor
produzido pela Borland, tradicional empresa desenvolvera de compiladores. O C++ Builder
utiliza os conceitos de programao visual e dirigida por eventos para proporcionar uma
ferramenta RAD (Rapid Application Development) extremamente poderosa, que permite
desenvolver aplicaes eficientes rapidamente. Algumas de suas caractersticas mais
marcantes so:
Uso de uma biblioteca de componentes visuais, a VCL (Visual Components Library),
desenvolvida originalmente para o Delphi, ferramenta produzida pela mesma
empresa com caractersticas semelhantes ao C++ Builder, s que utilizando a linguagem
Object Pascal como linguagem base.
Orientao a objetos: o C++ Builder utiliza a linguagem de programao orientada a
objetos C++, onde se podem utilizar plenamente os conceitos de POO (Programao
Orientada a Objetos) e obter os seus benefcios.
Possui um excelente ambiente de desenvolvimento (IDE) com ferramentas de
produtividade que auxiliam a programao, alm de um timo depurador (debugger)
!"##$%"&'$()*$#$)+"("&,-.,/%"&'-)"%)"01/*"()+")programadores e controle de
verses.
Grande escalabilidade no acesso a banco de dados: pode acessar tabelas locais
dBase e Paradox, assim como SGBDs como MySQL, Informix, Sybase, Microsoft
SQL Server e Interbase.

Introduo Terica ao Banco de Dados e Tabelas


O que um banco de dados?
um arquivo, que permite de maneira fcil e organizada acessar as informaes
contidas nele. Atualmente, possumos cerca de 5% das informaes do site armazenadas
em um banco de dados. Ns utilizamos o melhor banco de dados gratuito do mercado, o
MySQL.
Sistema de banco de Dados
Um sistema de banco de dados um ambiente de hardware e de software, composto
por dados armazenados em um banco de dados (BD), o software de gerncia do banco de
dados (SGBD) e os programas de aplicao.
Dentro dos Bancos de Dados ficam as tabelas (como se fossem as categorias da
estrutura dos dados) e nessas tabelas ficam as informaes, dentro dessas tabelas que
ficam as informaes, uma ideologia de organizao de dados, para facilitar nossa vida.
17

A plataforma do banco de dados utilizado no projeto foi o MySQL, pois e gratuito e


de fcil integrao com diversos aplicativos ou de softwares de gerenciamento de conexo,
tambm rpido e flexvel o suficiente para permitir armazenar logs e figuras nele. As
principais vantagens do MySQL so velocidade, robustez e facilidade de uso, trabalha com
diferentes plataformas, Unix, Windows etc.
Relacionamentos entre Tabelas
Em um banco de dados, precisamos de alguma maneira para representar estes
relacionamentos da vida Real, em termos das tabelas e de seus campos. Isto possvel
com a utilizao de "Relacionamentos entre tabelas", os quais podem ser de trs tipos:
Um para um;
Um para vrios;
Vrios para vrios.
Relacionamento do Tipo Um para Um:
Esta relao existe quando os campos que se relacionam so ambos do tipo Chave
Primria, que um cdigo nico que identifica cada registro, em suas respectivas tabelas.
Cada um dos campos no apresenta valores repetidos.
Cada campo da tabela se relaciona com um nico campo contido na outra tabela.
Quando fosse necessrio buscar as informaes tais como nome, endereo, etc, estas
podem ser recuperadas atravs do relacionamento existente entre as duas tabelas,
evitando, com isso, que a mesma informao tenha que ser duplicada nas duas tabelas,
inclusive aumentando a probabilidade de erros de digitao.
Relacionamento do Tipo Um para Vrios:
Este , com certeza, o tipo de relacionamento mais comum entre duas tabelas. Uma
das tabelas (o lado um do relacionamento) possui um campo que a Chave Primria e a
outra tabela (o lado vrios) se relaciona atravs de um campo cujos valores relacionados
podem se repetir vrias vezes.
Considere o exemplo entre a tabela Clientes e Pedidos. Cada Cliente somente
cadastrado uma nica vez na tabela de Clientes (por isso o campo Cdigo do Cliente, na
tabela Clientes, uma chave primria, indicando que no podem ser cadastrados dois
clientes com o mesmo cdigo), portanto a tabela Clientes ser o lado um do relacionamento.
Ao mesmo tempo cada cliente pode fazer diversos pedidos, por isso que o mesmo Cdigo
de Cliente poder aparecer vrias vezes na tabela Pedidos: tantas vezes quantos forem os
pedidos que o Cliente tiver feito. Por isso que temos um relacionamento do tipo Um para
Vrios entre a tabela Clientes e Pedidos, atravs do campo Cdigo do Cliente, indicando
que um mesmo Cliente pode realizar diversos (vrios) pedidos.
Relacionamento do tipo Vrios para Vrios:
18

Este tipo de relacionamento utilizado quando temos uma situao onde em ambos
os lados do relacionamento os valores poderiam se repetir. Vamos considerar o caso entre
Produtos e Pedidos. Posso ter Vrios Pedidos nos quais aparecem um determinado
produto, alm disso, vrios Produtos podem aparecer no mesmo Pedido. Esta uma
situao em que temos um Relacionamento do Tipo Vrios para Vrios.
Na prtica no possvel implementar um relacionamento deste tipo, devido a uma
srie de problemas que seriam introduzidos no modelo do banco de dados. Por exemplo, na
tabela Pedidos teramos que repetir o Nmero do Pedido, Nome do Cliente, Nome do
Funcionrio, Data do Pedido, etc para cada item do Pedido.
Para evitar este tipo de problema bastante comum "quebrarmos" um
relacionamento do tipo vrios para vrios em dois relacionamentos do tipo Um para Vrios.
Isso feito atravs da criao de uma nova tabela, a qual fica com os lados vrios dos
relacionamentos. No nosso exemplo vamos criar a tabela Detalhes do Pedido, onde ficam
armazenadas as informaes sobre os diversos itens de cada pedido, a ao invs de termos
um relacionamento do tipo Vrios para Vrios, teremos dois relacionamentos do tipo um
para vrios.

DRIVER OBDC
Para que o MySQL se conecte com o C++ Builder necessrio a instalao de um
Driver OBDC (Open DataBase Connectivity), que um mtodo de acesso a Banco de
Dados desenvolvido pela Microsoft, com a finalidade de tornar possvel acessar qualquer
dado de qualquer aplicao independentemente do Banco de Dados usado.

FERRAMENTAS DE CONEXO C++ BUILDER COM O MySQL


O C++ Builder oferece uma srie de ferramentas e recursos que possibilitam a
criao de aplicaes de bancos de dados de forma rpida e fcil.
O corao das aplicaes de bancos de dados do C++ Builder est no Borland
Database Engine (BDE), uma camada de software que realiza o acesso a bancos de dados
baseados em arquivos como Paradox e dBase ou a servidores de bancos de dados locais
ou remotos como MySQL e etc. Os componentes de bancos de dados do C++ Builder
oferecem uma forma simplificada, que usa programao visual baseada em PME
(Propriedades, Mtodos e Eventos), para acessar a API do BDE.
H duas grandes classes de componentes: os componentes de acesso a dados
(data-access) e os componentes de controle, visualizao e manipulao dos dados (datacontrols), sendo que os componentes de visualizao e manipulao de dados so tambm
denominados de componentes data-aware (componentes capazes de mostrar e atualizar os
dados armazenados em uma tabela associada). Estes dois grupos de componentes esto
19

localizados, respectivamente, nas pginas Data Access e Data Controls da paleta de


componentes do C++ Builder.
Os principais componentes do tipo data-access utilizados na criao de aplicaes
com bancos de dados em C++ Builder so os componentes derivados da classe abstrata
TDataSet, que so: Table da classe TTable, Query da classe TQuery e StoredProc da
classe TStoredProc.
Qualquer um dos componentes derivados da classe TDataSet podem ser
referenciados como datasets. Os componentes Query e StoredProc so mais utilizados em
aplicaes cliente-servidor e sero vistos posteriormente. O componente Table oferece a
forma mais simples de se acessar informaes em uma tabela de banco de dados do que a
Query
Um dataset possui um conjunto de estados onde pode se encontrar. Os estados
possveis so:
Estado

Descrio

Inactive

Dataset encontra-se fechado

Browse

Estado no qual o dataset se encontra aberto, permitindo leitura, porem no


permitem ser alterados ou inseridos.

Edit

Permite a edio ou alterao do registro corrente.

Insert

Permite que uma nova linha ou registro seja inserido. Aps a chamada do
mtodo Post, uma nova linha gravada na tabela e o dataset volta ao estado
Browse.

SetKey

O estado no qual o dataset se encontra quando o mesmo aberto e


permanece a maior parte do tempo de seu uso. Registros podem ser lidos,
mas no alterados
ou inseridos.

CalcFields Estado que ocorre quando um campo calculado est sendo atualizado.
Uma aplicao pode posicionar um dataset em determinado estado atravs de uma
chamada explcita a um mtodo ou atravs da ocorrncia de um evento que desencadeie
uma troca de estado. H mtodos que sempre levam para determinado estado e so
chamados mtodos correspondentes aos estados. So eles: Edit, Insert, Append e Setkey.
Outro conjunto de mtodos sempre retorna o dataset para o seu estado de Browse como
Delete, Cancel, GotoKey e GotoNearest. H casos em que o sucesso ou insucesso do
mtodo define se o dataset volta ao estado de Browse, como o mtodo Post.
O diagrama de estados da Figura 10 mostra os possveis estados de um dataset e os
mtodos que causam as trocas de estado para outro.

20

Figura 9 Diagrama de estados de um dataset


O componente Table a interface entre o Borland Database Engine e os
componentes DataSource O componente DataSource por sua vez oferece a interface para
os componentes data-aware. que iro compor a interface com o usurio. Trabalhando-se
com o componente Table usa-se a propriedade DatabaseName para especificar o banco de
dados a ser acessado; a propriedade TableName serve para indicar a tabela a acessar;
utiliza-se a propriedade IndexName para definir o uso de um determinado ndice com a
tabela; configura-se a propriedade Active para True ou chame-se o mtodo Open para abrir
o dataset, colocando ele no estado Browse; coloca-se a propriedade Active em False ou
chame-se o mtodo Close para fechar o dataset.
O componente DataSource a interface entre um componente dataset e os
componentes data-aware nos formulrios. O DataSource liga-se a um dataset atravs da
propriedade Dataset.
Os componentes Data-aware, como DBEdit e DBGrid, ligam-se ao DataSource
atravs de suas propriedades DataSource. Usualmente h apenas um DataSource para
cada dataset, no entanto podem-se conectar a um dataset tantos DataSource quantos forem
necessrios. Para monitorar-se alteraes no estado do dataset associado ao DataSource
pode-se associar um mtodo ao evento OnStateChange.
H vrios componentes do tipo data-controls no C++ Builder, como DBGrid que
permite a visualizao, alterao e navegao no conjunto de todos os registros e campos
de uma tabela; o DBText que mostra os dados em um campo de uma tabela como um label
read-only similar ao componente Label; o DBEdit usado para apresentar e alterar os valores
de um campo numa caixa de edio similar a um componente Edit; o DBImage que
apresenta grficos e figuras do tipo bitmap armazenados em um campo do tipo BLOB
21

(Binary Large Object), de forma semelhante ao realizado pelo componente Image; e o


DBNavigator que oferece um conjunto de botes para navegar pelas linhas de um dataset,
adicionar ou eliminar uma linha, colocar o dataset no estado de edio, confirmar ou
cancelar as alteraes realizadas no dataset ou recarregar os dados do disco, atualizando o
dataset.

MODELAGEM DE BANCO DE DADOS


Antes da implementao do banco de dados, foram estabelecidas algumas
perguntas bsicas que seriam utilizadas para consultas do sistema e para obter os dados
para o clculo estimado do prximo nibus a estao.
Primeiramente o banco de dados foi esboado no Microsoft Excel com tabelas
bsicas e com alguns campos considerados de suma importncia. Com o de correr do
projeto, foram feitas anlises e questionamentos sobre o relacionamento entre as tabelas e
dados contidos nelas para as futuras consultas do sistema e para evitar a duplicidades entre
campos e dados das tabelas.
Devido a essa maior anlise e modelagem do banco de dados, a cada nova idia o
nmero de tabelas foram aumentando e ficando mais complexas em seus relacionamentos,
havendo a necessidade da utilizao de um software especifico e apropriado para a
modelagem do banco, o DBDesigner, da fabFORCE, que um software open-source e de
uso gratuito. Este software nos fornece uma interface grfica e de anlise do banco de
dados assim como a dependncia entre as tabelas e seus respectivos campos.
Na primeira modelagem, foram construdas seis tabelas, Figura 11, na qual a tabela
nibus que conteria os dados do nibus como cdigo, tipo e telefone. Tabela estao com
informaes sobre a estao ou terminal de conexo entre as linhas, tabela linha que definia
quais seriam as linhas do sistema de transporte e sua rota, ida ou volta na linha. A tabela
tempos que armazenaria os dados referente em todos os nibus e sua respectiva linha e
seu tempo gasto entre as estaes. Tabela log na qual ficaria responsvel pela status de
conexo, online ou off-line, entre o mdulo mvel GPRS e o servidor, e tabela aviso que
armazenaria os dados transmitidos de todos os nibus do sistema do sistema em todo seus
percurso.

22

Figura 10 Primeira modelagem do banco de dados

A modelagem intermediria do banco surgiu com a necessidade da


implementao de algumas consultas do sistema, como a identificao de quais os nibus
de uma respectiva linha, quais os nibus que estavam off-line, quais estaes de uma linha
e etc. Ento para que essas consultas fossem realizadas foi criado mais tabelas e mais
campos que estivessem se relacionando, para evitar assim a duplicao dos dados ou no
igualdade em cada cadastro da tabelas, pois com o relacionamento esses dados seriam
linkados (ligados) atravs de um campo identificador nico.
Nessa segunda modelagem, Figura 12, nenhuma tabela permaneceu igual a da
primeira modelagem, a tabela nibus foi acrescentada o campo de cdigo de linha, na qual
se relaciona com a tabela linha atravs do seu cdigo nico de identificao (chave
primaria). Na tabela linha foi retirada o cdigo de rota, pois a mesma ser relacionada
atravs da tabela rota, pelo sua chave primaria. A tabela estao tambm teve alguns
campos retirados, como as coordenadas obtidas do GPS, pois a tabela ir relacionar com a
tabela pontos atravs do seu cdigo de identificao, evitando assim a insero de dados
diferentes. A tabela pontos possui tambm o cdigo identificador de rota, obtido do
relacionamento da tabela rota. Por ltimo, a tabela dados, que onde ser registrado todo o
sinal enviado pelos nibus da frota, seus campos so de data, hora, cdigo do nibus, se o
nibus esta com problema, fora de rota, off-line e etc, assim como as coordenadas e
velocidade atual; possui duas chave de relacionamento obtidos atravs da tabela nibus e
da tabela rota.

23

Figura 11 Segunda modelagem do banco de dados

Com o decorrer do projeto, algumas consultas precisaram ser implementadas no


sistema, na qual algumas delas seriam de suma importncia para o calculo estimado do
prximo nibus em uma estao da linha. Porm para que algumas dessas consultas
fossem idealizadas houve uma necessidade de alterao na modelagem do banco de dados
devido ao relacionamento entre as tabelas e seus campos, assim como que algumas
tabelas serem dinmicas e estticas. As tabelas estticas, nibus, estao, rota, linha e
pontos, teriam seus dados inseridos uma nica vez, servindo assim como histrico mesmo
se algum registro fosse desativado. J as tabelas dinmicas, seriam alimentadas de forma
contnua, em que poderiam seus campos poderiam ser alterados ao longo do dia ou
perodo. Com isso o banco sofreu mais algumas mudanas em sua modelagem, conforme a
Figura 12, na qual mostra que algumas tabelas como nibus, estao, rota e linha tem
apenas dados bsicos de cadastro e sua chave primaria, na qual se relaciona com as outras
tabelas tendo uma dependncia desses dados. Com isso um nibus, rota, linha ou estao
pode sair de operao mais seus histricos preservados no sistema.

24

Figura 12 Terceira modelagem do banco de dados

SERVIDOR DE CONTROLE DE TRAFEGO DO TRANSPORTE


COLETIVO
O software do servidor responsvel pelo gerenciamento de todo o sistema de
trfego e controle dos nibus, ele que recebe os dados enviados por todos os nibus,
onde so cadastrados nibus, rota, linha, estao e demais informaes. Sendo tambm a
interface de conexo entre o usurio e o banco de dados MySQL.
Funcionamento Lgico Geral
A Figura 14 demonstra o funcionamento geral do sistema, que composto por um
banco de dados MySQL, componentes bsicos de socktes internet e um software local
desenvolvido em C++ Builder. O Software local servir de interface entre o banco de dados
e o usurio do sistema, nas consultas, cadastros, alteraes e excluses de registros de
dados do sistema do transporte coletivo.

25

Figura 13 Fluxograma geral do Servidor

Funcionamento do Software
O Software responsvel pelo recebimento da mensagem enviada pelo mdulo
mvel GPRS contido em todos os nibus da frota, informando seu cdigo, data, hora,
velocidade e coordenadas atual. Esses dados so transmitidos na rede celular GSM atravs
do servio de GPRS pelo padro TCP/IP, esses dados chega ao servidor atravs da internet
26

por sockets. Esses sockets so definidos atravs de uma porta estipulada tanto no mdulo
mvel, quanto no software servidor, sem isso a conexo no se efetuar como mostra o
fluxograma da Figura 15. O C++ Builder possui alguns componentes de criao do servidor
socket ou cliente socket.

Figura 14 Fluxograma da conexo socket

Aps estipulada e ativada essa porta, o servidor fica em modo de espera da


conexo, quando ocorre a conexo entre servidor e mdulo mvel, transmitido
mensagem. O servidor recebe essa mensagem atravs de uma Edit Box e logo em seguida
separa em seis novas mensagens. Sendo elas: cdigo do nibus, hora, data, latitude,

27

longitude e velocidade. Depois de separada essas novas mensagens o sistema chama o


banco de dados MySQL e as insere na tabela dados, Figura 16.
:;<=>

%?@A*<>:ABC>*<>D*
.E-F0
-..&$/&$/)!""/.$
0/"!$1!$2/1&"
!"#!$"!$%&'(!$
)&*!+,&

DE9

ABC
-"#/3!4!)!$
)&*!+,&$)&5$
0/"!

67'/.1/$1/1&"$
1&"$20-28#

93#:5$
"#.8*7$
!*(8/1/

-*;'/*#&$*,&$
!*)&*#./.$<=>
ABC
DE9
2!")/.#/$)/./)#!.

-*;'/*#&$*,&$
!*)&*#./.$<?>

2!")/.#/$)/./)#!.

DE9

6.5/@!*/$
)/./)#!.

63.!$#/3!4/$2/1&"

6.5/@!*/$
1/1&"$*/$
#/3!4/
DE9

!"#/$"!$8*"!.8'

ABC
F!)%/$#/3!4/$
2/1&"

F85

Figura 15 Fluxograma de insero de dados base

28

A tabela dados possui mais informaes alm das seis mensagens obtidas, como
problema e status do nibus. Esses dois outros campos so obtidos atravs de uma
consulta do ltimo dado enviado ao servidor, se o mesmo estou o tempo de envio da
prxima mensagem no caso do campo status e no campo problemas atravs de consulta se
o nibus esta fora de rota, entre outras.
A insero desses dados no MySQL atravs do C++ Builder foi desenvolvida
utilizando a ferramenta Builder atravs de alguns componente como o Database que
fornece o acesso base de dados, UpdateSQL responsvel pela atualizao dos registros
da tabela, Query componente que faz a consulta base de dados, Table permite a consulta
e edio de registro na base, e DataSource que componente de acesso as tabelas.
O servidor possui diversos formulrios, janela principal, Figura 17, que fornece uma
tabela com as dados recebidos de cada mdulo mvel, menus de acesso a cadastro e
consulta de nibus, rota, linha estaes, e tambm do acesso as consultas dos sistemas
atravs dos botes. Um formulrio de dados, onde so inseridos os componentes de acesso
ao banco de dados ao MySQL acima descritos. E demais formulrio de cadastro, insero,
alterao, excluso e consulta como nibus, rota, linha, estao, pontos e etc.

Figura 16 Formulrio principal

Nos formulrios de cadastro foi utilizado o componente DBEdit da pgina data


controls que usado para receber dados do usurio e atribu-los ao campo de um registro
de uma tabela, conforme Figura 18. Os campos so verificados se esto corretos e se no
esto faltando antes que o comando de insero ao banco de dados.
29

Figura 17 Formulrio de cadastro e consulta

O componente DBGrid tambm da pgina data controls, exibe um objeto semelhante


a uma planilha do EXCEL que nos permite manipular registros de uma banco de dado, ou
seja, de um componente Table ou Query, toda vez que esse formulrio aberto ele carrega
os registros do sistema. Informando um erro quando no consegue o acesso a tabela.
Nos formulrios de consultas existem rotinas em SQL que faz a localizao de um
determinado registro com informaes obtidas atravs dos Edit Box preenchida pelo usurio
do sistema, sempre verificando se houve a conexo com a tabela e informando erro se
houver. Os comandos de consultas em SQL so adicionados na string para depois serem
executados. Porm, duas consultas no funcionam dessa forma, pois os comandos
enviados para criar tabelas temporrias no tiveram xito. Para contornar esse problema
houve a necessidade de fazer outra modelagem no banco de dados do sistema, conforme
descrito anteriormente atravs das tabelas dinmicas.

CONSULTAS DO SISTEMA
Foram estabelecidas algumas consultas no sistema para verificar os histricos de
informaes que ocorreram eu uma determinada data ou situao do nibus. Essas
consultas foram realizadas utilizando a linguagem SQL, Structured Query Language, A SQL
uma linguagem de alto nvel. Um aplicativo no diz ao mecanismo de banco de dados
como deve executar uma tarefa, mas enuncia o que o resultado deve conter.
Uma consulta uma pergunta que um aplicativo faz a um banco de dados e depois
retorna registros. As consultas retornam um conjunto de registros que satisfazem a alguns
critrios e contm informaes de campos selecionados.
Ao falar sobre consultas, considere toda instruo SQL como uma pergunta. O
resultado conseguido a resposta que o mecanismo de banco de dados d. Existem
30

algumas instrues SQL que so simplesmente um comando. Para esse comando, voc
no receberia um resultado. Entretanto, para perguntas ou consultas, um resultado o
conjunto de registros retornados pelo mecanismo de banco de dados.
Por serem uma linguagem de alto padro essas consultas foram pr-determinadas e
inseridas dentro do cdigo de programa do servidor, portanto cabe ao usurio somente a
insero de alguns campos determinados para ter o resultado da consulta.
Algumas das consultas realizadas so:
1234567-

QUAIS NIBUS ESTO OFFLINE?


QUAL FOI O PROBLEMA NO DIA 00 DO NIBUS X?
NA LINHA X EXISTEM QUAIS NIBUS?
QUAIS NIBUS PASSAM NA ESTAO W?
QUAIS SO AS ESTAES DA LINHA Y?
ONDE EST O NIBUS X AGORA?
QUAL A COORDENADA DA ESTAO W?
A tabela abaixo mostra as perguntas e os campos que sero fornecidos e os obtidos

nas consultas:
o

N.

Pergunta?

Dados Fornecidos

QUAIS NIBUS ESTO OFFLINE?

status

QUAL FOI O PROBLEMA NO DIA 00 DO data

Campo de Resultado

data

max

(curdate)

(hora)

nibus

status

nibus
nibus

problema

NIBUS X?
NA LINHA X EXISTEM QUAIS NIBUS?

data

QUAIS NIBUS PASSAM NA ESTAO data

nibus

linha
estao

rota

nibus

linha

W?
estao

QUAIS SO AS ESTAES DA LINHA linha


Y?
ONDE EST O NIBUS X AGORA?

nibus

data

max

(curdate)

(hora)

QUAL A COORDENADA DA ESTAO estao

onibus

coordenada

coordenada

W?

Para cada uma dessas consultas efetuaremos query no banco de dado do MySQL,
usando o comando SELECT e ate mesmo tabelas temporrias.
A instruo SELECT usada para recuperar informaes de uma tabela. A forma
geral da instruo :
SELECT o que mostrar
FROM de qual tabela
WHERE condies para satisfazer;
O que mostrar indica o que voc deseja ver. Isto pode ser uma lista de colunas ou *
para indicar todas as colunas. De qual tabela indica a tabela de onde voc deseja recuperar
os dados. A clusula WHERE opcional. Se estiver presente, condies para satisfazer
especificam as condies que os registros devem satisfazer para fazer parte do resultado.
31

1- QUAIS NIBUS ESTO OFFLINE?


Para que essa consulta possa ser feita devemos que fornecer o status do nibus, no
caso OFFLINE, data corrente e o ultimo evento enviado pelo nibus, definido por max
(hora). A pesquisa retornar todos os nibus, cujo estado status for igual OFFLINE,
ordenado de forma crescente pelo cdigo.

SELECT onibus_cod_onibus, linha_cod_linha ,max(hora) AS hora FROM dados


where status="offline" AND data_ ="CURDATE()" GROUP BY onibus_cod_onibus;
2- QUAL FOI O PROBLEMA NO DIA 00 DO NIBUS X?
Nessa consulta, devemos informar a data e qual nibus, no formato PL000 ou *
para todos. Os dados de retorno so cdigo do nibus, linha, data, hora e o problema
encontrado.
SELECT onibus_cod_onibus, linha_cod_linha,data_, hora, problema FROM dados
where data_="data escolhida" AND cod_onibus=X ORDER BY cod_dados;
3- NA LINHA X EXISTEM QUAIS NIBUS?
Forneceremos a data e a linha para efetivar esta consulta, retornando o cdigo dos
nibus como resultado. O comando DISTINCT tem como funo de listar somente uma
nica entrada de todos os nibus.
SELECT

DISTINCT

onibus.onibus_cod_onibus

FROM

onibus,onliro

WHERE

data_2="data escolhida" AND onliro.onibus_cod_onibus=dados.onibus_cod_onibus AND


onliro.linha_cod-linha="X";

4- QUAIS NIBUS PASSAM NA ESTAO W?


Para essa consulta precisamos fornecer a estao e data. O resultado da pesquisa
ser o campo cdigo do nibus e a linha do mesmo.
SELECT DISTINCT onliro.onibus_cod_onibus FROM onliro,esliro,estacao WHERE
esliro.linha_cd_linha=onliro.linha_cod_linha

AND

esliro.estacao_cod_estacao=estacao.nome="estao escolhida";

5- QUAIS SO AS ESTAES DA LINHA Y?


Nessa consulta, necessrio fornecer a linha, retornando como resultado o nome
das estaes.
32

SELECT

DISTINCT

estacao.nome

FROM

estacao,esliro

WHERE

esliro.estacao_cod_estacao=estacao.cod_estacao AND esliro.linha_cod_linha=Y;

6- ONDE EST O NIBUS X AGORA?


Fornecendo o cdigo do nibus, data corrente (curdate), ltimo dado enviado pelo
nibus, definido pelo parmetro max(hora). O resultado retornado ser o cdigo nibus,
lat_g, lat_m, lat_s, lat_ms, lon_g, lon_m, lon_s, lon_ms, utilizando o parmetro GROUP BY
onibus_cod_onibus para agrupar os dados pelo cdigo do nibus.
SELECT lat_g,lat_m,lat_s,lat_ms,lon_g,lon_m,lon_s,lon_ms FROM dados where
(onibus_cod_onibus="nibus escolhido" AND data_ 2="CURDATE()");

7- QUAL A COORDENADA DA ESTAO W?


Essa consulta o campo fornecido o nome da estao, retornando os campos de
lat_g,lat_m,lat_s,lat_ms,lon_g,lon_m,lon_s,lon_ms.
SELECT
pontos.lat_g,pontos.lat_m,pontos.lat_s,pontos.lat_ms,pontos.lon_g,pontos.lon_m,pontos.lon
_s,pontos.lon_ms

FROM

estacao,espo,pontos

espo.pontos_cod_pontos=pontos.cod_pontos

WHERE
AND

espo.estacao_cod_estacao=estacao.cod_estacao AND estacao.nome="nome da estao";

CLCULO DO TEMPO ESTIMADO DO PRXIMO NIBUS


O aplicativo tambm faz o clculo do horrio estimado da chegada do prximo nibus
em cada estao determinada pela sua linha.
Para que o clculo propriamente seja executado, preciso primeiramente entrar com
o nome da estao, o sistema obtm o ltimo dado enviado pelo nibus, faz uma consulta
SQL procurando a qual linha ele pertence. Depois, o sistema faz uma varredura nos registros
de pontos das rotas cadastradas, para determinar a rota do nibus na sua linha, ida ou volta.
Foi estabelecido um algoritmo de valor prximo nos pontos, pois o equipamento de GPS
utilizado no tinha uma preciso refinada, ento o algoritmo buscava o valor mais prximo e
implementava um contador, assim q esse contador fosse incrementado cinco vezes a rota
era definida.
Aps a rota ser determinada, era verificada na tabela distncia, a distncia entre as
duas estaes, estao anterior e a prxima estao que o nibus far a conexo, tendo
33

esse valor, o calculo do tempo era determinado pela distncia entre as estaes subtradas
da distancia percorrida da estao anterior ate o ponto atual, dividido pela velocidade mdia
do trajeto.
Para que o tempo estimado inicial no fosse to grande, devido velocidade mdia
no comeo do trajeto ser muito baixa, os primeiros valores da velocidade eram descartados
ate que a velocidade obter um valor mais estvel, podendo ser verificado a linha lgica de
raciocnio atravs do fluxograma da Figura 19.
B*G)8&

L!.8K8)/$;'/4$
!"#/M,&

93#:5$H4#85&$1/1&$!*(8/1&$
I!4&"$J*83'"$1/$K.&#/

L!.8K8)/$48*%/$;'!$
J*83'"$I!.#!*)!

63.!$#/3!4/$P&I&

L/..!$#/3!4/$P&I&$/#:$
;'!$)&&.1!*/1/$/#'/4$
)&5$)/1/"#./1/?$"!$
DE9
N.O+85&$.!78"#.&

ABC

L!.8K8)/$;'/4$/$.&#/

93#:5$18"#Q*)8/$
!*#.!$!"#/MR!"

S/4)'4/$18"#/*)8/$
I!.)&..81/

S/4)'4/$ !5I&T
UV18"#W$!*#.!$!"#/MR!"X
18"#W$N!.)&..81/YZ
L!4W5:18/

-+83!$#!5I&
/I.&+85/1&

F85

Figura 18 Fluxograma para o clculo do tempo estimado de chegada do prximo nibus

34

ALGORITMO DO CLCULO DO TEMPO ESTIMADO


O algoritmo do clculo do tempo estimado do prximo nibus necessita da
coordenada do ponto anterior transmitido e a da coordenada atual, ele transforma cada
ponto desses de graus para radianos, atravs da Frmula 1 e 2 abaixo:

graus "

min utos segundos dcimos de segundos


"
"
! valor em rad
60
3600
216000

(1)

Exemplo:
Latitude: 2527`20``64```
!"

#
%
$'
"
"
) %*'''
$% &$%%
($%%%

Aps transformao das coordenada anterior e da atual para radianos, faz-se o


clculo da distncia, em metros, entre esses dois pontos atravs da Frmula 2.

D ! 1111200 ' ar cos%sen# p1$ ' sen# p 2$ " cos# p1$ ' cos# p 2$ ' cos# p1 ( p 2$&'

180
pi ()

(2)

Para cada coordenada transmitida, o algoritmo far o clculo da distncia e


armazenar em um somatrio todas as distncias da estao anterior at ponto atual.
O algoritmo faz o clculo da velocidade mdia do trecho atravs do somatrio da
distncia dividido pelo tempo desde estao anterior at ponto atual. Aps obtido o valor da
velocidade mdia, ocorre o clculo do tempo estimado, obtido atravs da subtrao da
distncia entre as duas estaes pelo somatrio da distncia percorrida at ponto atual,
divididos pela velocidade mdia, conforme Frmula 3.

tempo estimado !

distncia entre estaes ( ) distncia percorrida


velocidade mdia

(3)

Cada dado novo transmitido obtm se um valor novo estimado do tempo, devido
a um novo valor obtido da distncia percorrida e da velocidade mdia do trecho.
Para a verificao e validao do algoritmo foi efetuados em uma planilha de
clculos do Microsoft Excel, inserindo todos as coordenada obtida no percurso da Linha 1
(Porto 1/ Porto 2), conforme tabela a baixo.

35

hora
113706

113710

113714

113718

113722

113726

113730

113734

113738

113742

113746

113750

113754

113758

113802

113806

113810

113814

113818

113822

onibus
$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

data
271107

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

lat
g
25

27

27

27

27

27

27

27

27

27

27

27

27

27

27

27

27

27

27

27

lat
m
27

14

15

16

17

18

18

18

19

19

19

19

19

20

20

20

20

20

20

20

lat
s
20

45

47

55

66

93

73

16

47

58

78

97

33

43

47

39

55

66

66

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

14

14

14

14

14

14

15

15

15

15

15

15

15

15

15

15

15

15

15

99

99

99

99

98

99

10

10

10

10

lat lon lon lon


ms
g
m
s
64 49 15 10

52 19.5

42 10.4

45 17.2

29 23.4

91 16.2

31 15.1

46 21.4

17 20.4

37 18.5

15 13.3

28 19.1

43 20.4

56 17.5

62 14.3

59 14.5

29 07.6

71 06.7

74 00.0

73 00.0

lon
ms
vel
71 00.0

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

0,4443

lat
rad
0,4443

0,8598

0,8598

0,8598

0,8598

0,8598

0,8598

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

lon
rad
0,8596
0

5,1E-06

1,1E-06

9,4E-06

5,7E-06

2,2E-06

0,00017

6,6E-06

6,4E-06

2,9E-06

5,6E-06

5,7E-06

5,3E-06

4,9E-06

4,2E-06

2,3E-06

3,3E-06

9,2E-07

7,3E-08

2,2E-07

!
dist(m)
0,0000
0,0000
1,3888
1,3888
0,4651
1,8540
5,8324
7,6864
21,1898
28,8762
14,5406
43,4169
26,5756
69,9925
31,1081
101,1005
33,9953
135,0958
36,2089
171,3047
35,4607
206,7654
18,5490
225,3143
40,4669
265,7812
42,3284
308,1096
1080,7944
1388,9040
13,9001
1402,8042
36,5637
1439,3679
59,6690
1499,0369
6,8370
1505,8739
32,2553
4
4
4
8
4
12
4
16
4
20
4
24
4
28
4
32
4
36
4
40
4
44
4
48
4
52
4
56
4
60
4
64
4
68
4
72
4
76
4

19,2266

19,8141

20,8200

21,1672

21,9188

23,1484

5,5020

5,1112

4,6940

4,6992

4,2826

3,7527

3,1594

2,4997

1,8090

1,4438

0,4804

0,1545

0,1736

Vmedia
0,0000

171,52328

168,06528

160,27431

160,46418

156,62968

148,91038

822,9492

894,15008

982,22814

985,09601

1089,2023

1252,6696

1498,6557

1906,584

2649,2151

3329,4297

10050,528

31289,361

27847,861

!"
#DIV/0!

2,8587

2,8011

2,6712

2,6744

2,6105

2,4818

13,7158

14,9025

16,3705

16,4183

18,1534

20,8778

24,9776

31,7764

44,1536

55,4905

167,5088

521,4894

464,1310

t_min

113826

113830

113834

113838

113842

113846

113850

113854

113858

113902

113906

113910

113914

113918

113922

113926

113930

113934

113938

113942

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

26

26

26

26

26

26

27

27

27

27

27

27

27

27

27

27

27

27

27

27

96

96

97

97

98

99

10

11

11

13

47

32

89

64

49

39

26

68

52

18

38

85

27

36

21

89

16

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

14

14

99

99

17 04.8

44 13.3

6 15.2

55 16.0

94 16.5

36 15.1

3 17.0

94 06.7

95 01.2

96 14.0

89 12.3

82 13.4

74 23.3

61 23.1

50 26.4

40 28.9

28 15.7

9 10.1

95 21.0

67 23.9

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4442

0,4443

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8598

0,8598

2,7E-06

3,8E-06

6,8E-06

3,2E-06

5,6E-06

0,00019

3,1E-06

1,6E-06

3,4E-06

3,6E-06

2,2E-06

6,5E-06

8,7E-06

5,1E-06

7,7E-06

7,6E-06

3,9E-06

0,00018

4,3E-06

7,3E-06

1538,1292
46,3461
1584,4753
27,4748
1611,9501
1128,2565
2740,2067
24,7931
2764,9997
48,7131
2813,7128
49,1278
2862,8407
32,3257
2895,1663
55,4156
2950,5819
41,3526
2991,9346
13,7751
3005,7096
22,8844
3028,5940
21,6271
3050,2211
10,3070
3060,5281
20,0219
3080,5500
1209,9121
4290,4620
35,5455
4326,0075
20,4925
4346,5000
43,5456
4390,0456
24,5073
4414,5529
17,1733
4431,7262

80
4
84
4
88
4
92
4
96
4
100
4
104
4
108
4
112
4
116
4
120
4
124
4
128
4
132
4
136
4
140
4
144
4
148
4
152
4
156
4
160
27,6983

28,2984

28,8819

29,3682

30,0417

30,6462

22,6511

23,1858

23,8299

24,4241

25,0476

25,7925

26,3445

26,8071

27,5273

28,1371

28,8021

29,7849

18,3176

18,8628

14,593501

14,89088

15,438595

16,665663

16,974185

17,799268

77,496944

76,573235

74,936264

73,99838

73,070195

71,4938

71,565624

72,397806

71,677918

71,870462

71,902497

70,362423

176,00496

172,3745

0,2432

0,2482

0,2573

0,2778

0,2829

0,2967

1,2916

1,2762

1,2489

1,2333

1,2178

1,1916

1,1928

1,2066

1,1946

1,1978

1,1984

1,1727

2,9334

2,8729

113946

113950

113954

113958

114002

114006

114010

114014

114018

114022

114026

114030

114034

114038

114042

114046

114050

114054

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

$JC007

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

271107

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

25

26

26

26

26

26

26

26

26

26

26

26

26

26

26

26

26

26

26

96

96

96

96

97

97

97

97

97

97

97

97

97

97

96

96

96

96

97

97

94

96

11

63

70

67

68

73

64

57

30

89

76

66

59

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

49

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

15

16

16

16

16

16

15

15

14

13

12

11

10

16 00.0

16 00.0

8 00.0

8 00.1

14 07.7

96 09.6

26 11.5

23 17.1

5 18.4

12 17.3

1 15.9

28 08.4

53 14.3

55 18.6

38 15.2

41 14.1

67 11.3

94 13.9

0,4444
distancia
entre
estaes

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,4444

0,8597

0,8597

0,8597

0,8597

0,8597

0,8597

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

0,8596

6,3E-07

1,6E-07

2,1E-06

4,5E-06

5,1E-06

4,6E-06

5,7E-06

3,9E-06

5,2E-06

2,5E-06

3,4E-06

4,7E-06

5,9E-06

4,3E-06

2,6E-06

2,5E-06

5,7E-06

4
164
4
168
4
172
4
176
4
180
4
184
4
188
4
192
4
196
4
200
4
204
4
208
4
212
4
216
4
220
4
224
4
228
4

232

36,3202
4468,0464
15,7568
4483,8033
16,6212
4500,4245
27,3270
4527,7514
37,8637
4565,6151
29,8739
4595,4889
21,3979
4616,8868
15,7565
4632,6434
33,3256
4665,9689
24,7694
4690,7384
36,2592
4726,9976
29,3241
4756,3217
32,7361
4789,0578
28,6571
4817,7149
13,1693
4830,8842
1,0313
4831,9155
4,0257
4835,9412
0,0000

4835,9412

20,8446

21,2103

21,5711

21,9586

22,3042

22,5899

22,8669

23,1716

23,4537

23,8060

24,1284

24,5579

24,9755

25,3645

25,7259

26,1653

26,6893

27,2442

0,1866255

0,2302982

0,8171666

2,0754157

3,4818649

4,7016098

6,1910446

7,1399029

8,4256831

8,9199121

9,6275322

10,657645

11,979766

12,822986

13,193973

13,503608

0,0000

0,0000

0,0031

0,0038

0,0136

0,0346

0,0580

0,0784

0,1032

0,1190

0,1404

0,1487

0,1605

0,1776

0,1997

0,2137

0,2199

0,2251

Conforme podemos observar na tabela acima, os primeiros valores do tempo


estimado obtido um valor muito alto devido velocidade mdia ser prxima a zero. Para
contornar esse erro de estimativa, at que a velocidade mdia adquira um valor constante,
foram ignorados os quatorzes primeiros pontos da velocidade mdia. Com esse contorno,
obtivemos um valor prximo do obtido no trajeto.
Podemos validar o resultado do clculo obtido atravs dos dados transmitidos
pelo nibus, no caso, o horrio do GPS do incio do trajeto at seu trmino.
Portanto, pelo clculo obtemos 3 minutos e 48 segundos, e pelos dados do
horrio do GPS, tem-se 2 minutos e 48 segundos. Embora seja uma diferena de 1 minuto,
pode-se levar em conta que o algoritmo do clculo estimado funciona perfeitamente
validando assim o projeto de fim de curso.

39

ARMAZENANDO DADOS NO SERVIDOR:


Para preencher o servidor com as rotas dos nibus, um software foi desenvolvido na
interface LabView, Figura 20, da National Instruments.

Figura 19 - Software para inserir a rota.

O software de fcil uso. Basta inserir o Cdigo do nibus e conectar o GPS a ele.
Com isso basta fazer a rota que ser inclusa no sistema. Esse programa gera um arquivo
padro TXT de acordo com o protocolo de mensagens desenvolvido e faz aquisio de
pontos a cada quatro segundos.
A Figura 21 mostra o traado da rota configurada:

40

Figura 20 - Rota configurada para testes.

Com esses pontos em mos, configura-se a rota no servidor e carrega as


informaes adquiridas e, assim, estar cadastrando uma nova rota no servidor. Maneira
desenvolvida para facilitar as operaes de acrscimo de pontos, evitando operao manual
ponto a ponto.

41

CONCLUSO:
O problema de congestionamento nas cidades grande, campanhas de incentivo ao
uso do transporte coletivo no motivam a populao que possui automvel devido a atrasos
e horrios incertos.
Por esse motivo o projeto vem para auxiliar no incentivo ao uso do transporte
pblico, mostrando tempo estimado para a chegada do prximo nibus. A soluo proposta
alm do objetivo principal traz consigo uma gama de possibilidades que geram benefcios
tanto aos usurios, proprietrios da frota e agncia regulamentadora (como exemplo a
URBS de Curitiba Paran).
Para cumprir esse objetivo, so utilizados mdulos GPS, GPRS e microcontroladores. A funo do GPS informar a hora exata em todo o sistema, posio do
nibus e velocidade do mesmo. O mdulo GPRS faz a comunicao do sistema,
interligando os nibus central e estaes tubos ou terminais.
A juno GPS/GPRS/Microcontrolador possibilita muitos outros projetos. Neste
projeto uma soluo relativamente barata e seu funcionamento no depende de custos de
implementao de redes ou sensores pela cidade, facilitando o uso e operabilidade. A
viabilidade financeira do projeto real e com os custos na comunicao via rede de celular
cada vez mais baixa, o sistema apresenta uma relao custo/benefcio muito alta.

42

REFERNCIAS BIBLIOGRFICAS:
[1]

Fernandes,

Carlo

Alberto

Gonzles

Tecnologia

GPRS;

Monografia

(Especializao em Telecomunicaes) - Pontifcia Universidade Catlica do Paran, 2003.


[2] Souza, David Jos de - Desbravando o PIC; So Paulo: rica, 2000.
[3] Instituto Curitiba de Informtica e Secretaria Municipal da Comunicao Social
Prefeitura

Municipal

de

Curitiba

Consultado

na

Internet

em

18/04/207

http://www.curitiba.pr.gov.br/pmc/a_cidade/Solucoes/Transporte/index.html.
[4] GASPAR, J. J. (N/D) - Global Positioning System - G.P.S. - Dep. Florestal,
Escola Superior Agrria de Coimbra.
[5] Axmark, David e Widenius, Michael Manual de Referencia do MySQL 4.1 Equipe de Documentao da MySQL - http://www.mysql.com/documentation/
[6] Almeida, Rondinely S. de MySQL Bsico - Consultado na Internet em
12/08/2007 - http://www.hospedia.com.br/artigos/5/MySQL.html
[7] BCD, Dicas O portal dos Programadores C++ Builder - Consultado na
Internet em 27/10/2007 - http://www.dicasbcb.com.br
[8] System Designer Reference Manual, Lassen (TM) LP GPS Trimble Navigation
Limited.
[9] Pereira, Fbio. Microcontroladores PIC - Programao em C; Editora rica,
2003, 6 Edio.

43

Você também pode gostar