uma aplicaçao cliente/servidor com monitoramento web para gps

ja faz algum tempo que retomei o contato com o meu amigo Mateus Mendes, que atualmente esta desenvolvendo um projeto de monitoramento utilizando o sistema global de posicionamento, famoso GPS

fui convidado para participar do projeto para facilitar as coisas, computacionalmente falando… e tambem por ja ter fritado bastante em projetos passados, quando ainda moravamos em STZ, interior de SP…

as metas iniciais do projeto foram:

  • pegar as informaçoes do modulo GPS
  • comunicar o modulo GPS com o modulo GPRS
  • transmitir e capturar dados via internet atraves dos dois modulos conectados
  • capturar as informaçoes enviadas atraves de um serviço instalado em uma maquina, utilizando o protocolo UDP
  • gravar os dados recebidos em algum local
  • exibir os 10 ultimos dados gravados, atualizados de 5 em 5 segundos em uma pagina da web

bom… eh ai que entra a historia do cliente/servidor que gostaria de compartilhar… utilizei varias fontes espalhadas pela web para conseguir as informaçoes necessarias… fiz algo bem simples, que eh somente um alfa para conseguirmos testar as coisas, sem pensar em segurança e em nada demais… conseguimos um esqueminha de comunicaçao bem simples e legal…

tudo foi escrito em C e isso nos traz o beneficio de ser algo realmente rapido… entao nao teremos a preocupaçao com gargalos assim tao cedo… hahahah! (jah to falando como se tivessemos milhoes de acessos! hehehe)

para os interessados, aqui estao os codigos fonte do servidor e do cliente

a ideia eh abrir uma porta (no caso foi a 25000) e utilizar o protocolo UDP para a comunicaçao… mas porque UDP? eh porque o modulo GPRS vai enviar os dados de 5 em 5 segundos aproximadamente… e pouco me importa saber se o dado chegou ou nao, assim como a ordem de trasmissao dos pacotes… entao, eh por isso que nao escolhemos TCP, que no caso seria como matar uma mosca com uma bazuca… (alem de consumir mais banda e consequentemente custar mais caro pra transmitir os dados, uma vez que atualmente, as operadoras de telecomunicaçoes cobram a mensalidade de acordo com o volume de dados transmitidos)

para compilar eh simples… basta fazer:

bode@bodacious:~/projetos/gps$ gcc -o server udpserver.c
bode@bodacious:~/projetos/gps$ gcc -o client udpclient.c

agora temos um cliente, que maravilhosamente se chama: client e um servidor, que milagrosamente se chama server… beleza na montanheza?

para botar seu servidor para rodar, utilize o comando:

bode@bodacious:~/projetos/gps$ ./server >> log 2>&1 &


obs-1.: isso significa que estamos redirecionando com este comando, a saida padrao e a saida de erros padrao para um arquivo de logs (atraves de uma concatenaçao com seu conteudo atual)… tambem estamos lançando o processo em background… se quiser saber mais sobre os redirecionamentos, aconselho voce a dar uma olhada em um post escrevi sobre isso

o monitoramento via web eh feito com uma pagina contendo um script php, que tambem esta disponivel para download


obs-2.: como voces podem observar, o esquema em geral eh beeeem simples… o monitor nao tem formataçao CSS nem atualizaçao AJAX… na verdade nao estamos nem ai pra isso (por enquanto)… o refresh eh feito com meta-tag mesmo…. enfim… acho que nao preciso explicar pra ninguem o sentido da palavra alfa…

olhando o codigo vemos que o log eh gravado no mesmo diretorio que o servidor reside e o script pega esse mesmo log, que esta no mesmo diretorio em que reside este tambem… entao chegamos a brilhante conclusao de que tudo foi jogado no mesmo diretorio que um virtual host tenha acesso… entao… “crianças, soh façam isso em casa se forem testar alguma coisa… do tipo experimento sem compromisso…”

se voce montou seu ambiente, que deve de alguma forma se parecer com o que descrevi, jah eh possivel acessar seu monitor PHP atraves de seu servidor web e ativar seu cliente UDP no console… quando digitar alguma coisa e pressionar enter, a informaçao ira viajar ateh o socket de seu servidor UDP, que esta escutando na porta 25000, uma informaçao sera gravada no log e como seu monitor PHP se atualiza mostrando os 10 ultimos dados recebidos a cada 5 segundos… logo logo, emocionantemente, sua informaçao estara pipocando em seu navegador…

soh pra constar… o hardware jah eh capaz de se comunicar com esse serviço que implementamos… o proximo passo que darei em minha vertente do projeto eh integrar as coordenadas capturadas com o google maps… dai a coisa vai começar a ficar mais interessante… mas… como dizem, isso vai ser suave na nave!

eis a previa do nosso prototipo fisico:
Free Image Hosting at www.ImageShack.us

assim que tiver mais novidades sobre o projeto postarei aqui… ok?

[]’s!
t++!

21 Respostas to “uma aplicaçao cliente/servidor com monitoramento web para gps”

  1. Nivaldo Says:

    Muito legal, era exatamente o que eu estava procurando… só uma dúvida, que includes devo usar no caso de compilar no Windows??

    Sei que para o “socket.h” devo usar o “winsock.h”.

    Mas no caso do “in.h” e do “inet.h”, quais são equivalentes a eles?

    Obrigado.

  2. Nivaldo Says:

    Muito legal, era exatamente o que eu estava procurando… só uma dúvida, que includes devo usar no caso de compilar no Windows??

    Sei que para o devo usar o

    Mas no caso do e do quais são equivalentes a eles?

    Obrigado.

  3. Geverton Says:

    Olá amigo, gostaria muito de desenvolver uma projeto de servidor GPs, e gostaria de saber o que resultou os seus testes… estou precisando de uma ajudinha.

    abraços

  4. Thiago Says:

    Olá Amigo,

    Essa aplicação voce desenvolveu atraves de linguagem c utilizando sockets, voce possui alguma aplicação semelhante porém completamente feita em php ??

    Grato.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: