Sei sulla pagina 1di 3

Viso Geral do Sistema

O nosso Sistema caracterizado por uma Rede de Sensores Sem Fio (RSSF),
que interliga os sensores que estaro dispostos nos ns em diversos pontos do rio
Web atravs de uma comunicao com um servidor prximo ao local.
Requisio e Transmisso dos Dados (Comunicao)
O usurio do Sistema faz uma requisio (via HTML) ao servidor PHP, que
repassa essa requisio ao Gateway (mdulo ethernet). O Gateway ento repassa
essa requisio para os XBees, que transmitem essa requisio aos sensores de
destino dispostos como ns no rio. O ATMega328, microcontrolador que compe o
crebro de cada n, coleta os dados ento requisitados, une-os num pacote, e retornaos para o Gateway, passando pela transmisso sem fio dos XBee.
O grande porm que durante a transmisso sem fio podem ocorrer erros que
ocasionem perdas de pacotes de dados. Sendo assim, o Gateway apresenta
algoritmos que fazem uma verificao dos dados recebidos para checar se a
transmisso ocorreu sem erros. Ele ento envia uma mensagem para o Servidor PHP
para informar se este deve ou no pedir retransmisso dos pacotes. Se foi verificado
que houve erro, o Servidor retransmite a requisio. Se no houve, simplesmente
apresenta os dados na tela para o usurio que fez a requisio.
Cdigo-Fonte: como tudo funciona em detalhes
- ATMega328
Os ATMega328 so programados para receber as requisies e respond-las da
seguinte forma: um ATMega328 que chamaremos ATMega A, aguarda o recebimento
de um caractere A para identificar que aquela requisio foi feita para ele. Essa
verificao tambm importante se atertarmos pro fato de que a partir do momento
que a microcontroladora trabalha coletando e organizando os dados num pacote para
responder requisies, o Sistema gasta energia. Sendo assim, interessante que o n
somente faa esse recolhimento dos dados quando realmente tiver recebido uma
requisio verdadeira e que seja destinada a ele, para economizar energia.
Ento, a partir do recebimento do caractere identificador, A retorna OK e
prepara para enviar os dados ento requisitados. Os dados so enviados sempre via
interface serial, esta que est ligada ao XBee correspondente. Os dados enviados
seguem separados por caracteres _ para que o Servidor possa distinguir os dados
recebidos um do outro. Assim sendo, no importa a quantidade de dados necessria
para
responder
uma
requisio,
o
formato
ser
sempre
dado1_dado2_dado3_..._dadon$, somente sendo necessrio que o servidor conhea a

ordem dos dados enviados para que possa apresentar corretamente para o usurio os
dados de forma correspondente.
O caractere $ marca o final da string que ser enviada. Dessa forma, quando o
Gateway encontra esse caractere na leitura da resposta, identifica que a string de
leitura terminou, ou seja, todos os dados foram lidos. Assim ele retransmite os pacotes
para o servidor, que apresenta os dados para o usurio.
- Gateway
O Gateway inicialmente configura a interface de rede ethernet para transmisso
dos dados recebidos dos sensores para o servidor. Para isso ele precisa, basicamente,
do endereo MAC dessa interface, o endereo IP da rede e a porta (80 o padro
Web). Alm disso, tambm configurada uma interface Serial para recebimento dos
dados provenientes do XBee e criada uma string que acumular os dados ao longo
do processo de recebimento.
Aps essas configuraes iniciais, o Gateway verifica se houve alguma
requisio do Servidor PHP e, caso positivo, envia o caractere identificador (no caso do
nosso exemplo, o caractere A) para o n correspondente e aguarda uma resposta do
XBee (tenta novamente caso haja falhas).
Enquanto o XBee estiver respondendo a requisio e os dados recebidos forem
diferentes do caractere $, a string previamente declarada preenchida com esses
dados. Quando ele recebe o indicador de fim, finaliza a string. Entretanto, necessrio
converter essa string para um ponteiro de char (char*) para que o mdulo ethernet
consiga tratar essas informaes. Ento ocorre essa converso, caractere por
caractere, e logo aps a interface ethernet cria um formulrio HTML para enviar esses
dados para o servidor, submetendo automaticamente via JavaScript). Se todos os
dados foram preenchidos corretamente, eles so enviados atravs desse formulrio.
Caso contrrio, enviado um sinal de erro (representado pelo nmero -1404) que o
servidor identifica como anomalia, pedindo assim a retransmisso dos pacotes.
Uma observao que se o usurio desativar o JavaScript em seu navegador,
ocorrer um problema nessa fase de transmisso dos dados do Gateway para o
Servidor, uma vez que o formulrio no ser submetido automaticamente. Esse
problema tratado no cdigo-fonte do servidor.

- Servidor
O Servidor primeiramente transmite contra o gateway requisitando os dados do
mesmo. Quando os dados chegam no servidor, verificado se entre os valores
recebidos pelo mtodo POST no formulrio pelo ethernet consta o nmero -1404.

Caso conste, ele refaz a requisio. Se no, segue com a programao, separando
ento os dados recebidos na string atravs da funo explode() do PHP, que separa
os dados mediante o caractere que definimos como o separador (_).
Esses valores, agora devidamente separados, agora compem um array, que
so ento separados em variveis correspondentes. So realizados clculos
pertinentes a cada valor recebido e a pgina HTML se encarrega de exibir esses
resultados em uma tabela. O usurio pode tambm atualizar a tabela com os dados, o
que implica em uma nova requisio dos dados, o que repete todo o processo aqui
descrito.

Potrebbero piacerti anche