Tese de Disserta o - Autenticação · Implementação de Serviços de Aquisição de Dados numa...
Transcript of Tese de Disserta o - Autenticação · Implementação de Serviços de Aquisição de Dados numa...
Implementação de Serviços de Aquisição de Dados
numa Rede de Sensores sem Fios
Nuno Miguel de Sousa Fonseca
Dissertação para obtenção do Grau de Mestre em
Engenharia Electrotécnica e de Computadores
Júri
Presidente: Prof. Doutor Mário Serafim dos Santos Nunes
Orientador: Prof. Doutor Renato Jorge Caldeira Nunes
Vogais: Prof. Doutor António Manuel Raminhos Cordeiro Grilo
Setembro de 2007
i
Agradecimentos
A realização deste trabalho não teria sido possível sem a ajuda e a prestimosa colaboração de
todos aqueles que se empenharam neste projecto e cuja colaboração merece os meus mais
sinceros agradecimentos.
Ao Professor Renato Nunes, pela oportunidade que me concedeu de realizar a presente tese e
pela constante disponibilidade ao longo da sua execução.
Aos meus pais, pela formação pessoal e percurso académico. Sem a sua contribuição, não
teria sido possível a concretização deste projecto de vida. Obrigado pelo apoio e preocupação
que sempre demonstraram.
À minha Princesa, pela força, paciência e carinho desde o dia em que nos conhecemos. “A
noite em que as gaivotas eram bóias e as pedras eram quadros…”.
À minha irmã, a minha companheira de vida desde que nasceu, pelo diálogo subtil e inteligente
que sempre me incitou à continuação de um trabalho desta natureza.
A minha gratidão estende-se ainda às minhas avós e tios, por acreditarem em mim.
Ao Hugo, pela troca de ideias que estabelecemos ao longo dos últimos 12 meses; e aos
amigos e colegas, a paciência disponibilizada nas fases mais críticas de dúvidas e incertezas...
À professora Joaquina, sempre atenta a um discurso que poderia “ferir” de forma contundente
a língua de Camões.
ii
Resumo
Actualmente a tecnologia de redes de sensores sem fios está em franca expansão. A sua
utilização tem vindo a crescer em diversas áreas de aplicação, como por exemplo nas
relacionadas com a domótica, agricultura, indústria, aplicações militares, entre outras. Este
trabalho propõe a definição e implementação de um conjunto de serviços que facilitem e
simplifiquem o desenvolvimento de aplicações baseadas em redes de sensores que envolvam
a monitorização de grandezas físicas, com a possibilidade de definição de alarmes e
actuações.
A camada de serviços proposta realiza uma abstracção entre a aplicação e os serviços
específicos de comunicação e monitorização de dados implementados na rede de sensores, os
quais, no protótipo desenvolvido, foram realizados sobre TinyOS 2.0. Essa camada é
responsável pela uniformização e simplificação de um conjunto de serviços de forma a
apresentar uma solução genérica para ser aplicada em múltiplas áreas, evitando a
necessidade de desenvolver soluções de raiz específicas para cada aplicação.
Os serviços de monitorização são responsáveis pela aquisição de dados de diversos sensores
(por exemplo, temperatura, luminosidade, presença) e pela actuação de diversos dispositivos
(por exemplo, alarmes sonoros, lâmpadas). Os serviços de aquisição permitem vários tipos de
leituras dos dados recolhidos pelos sensores: leitura a pedido, leitura periódica e notificação
quando certos limites pré-definidos são atingidos. Os serviços de notificação e os serviços de
comunicação, que suportam agregação de dados, permitem reduzir o número de mensagens
que circulam na rede, oferecendo benefícios óbvios em termos de economia de energia.
Palavras Chave
Rede de Sensores sem Fios, Aquisição de Dados, Middleware, Serviços de Suporte a
Aplicações, Domótica.
iii
Abstract
The technology of wireless sensors networks is reaching its full development. Its use has been
increasing in several areas, ranging from domotics, agriculture and industry to military
equipments. This work proposes the definition and implementation of a set of services which
facilitate and simplify the development of appliances based upon networks of sensors which
involve both the monitoring of physical phenomena and the possibility for a definition on alarms
and actuators.
The proposed layer of services establishes a abstraction between the application and the
services of the specific communication and monitoring of available and implemented data in the
network of sensors, which, in the present prototype were based on TinyOS 2.0. This service
synthesises and simplifies a set of services which offer a generic solution of applications in
multiple areas excluding the use of a different solution for each specific application.
The monitoring services include both the acquisition of data from diverse sensors, for example:
temperature, luminosity and presence and the work of several devices, for example: round
alarms or lamps. The acquisition services enable diverse types of reading from the data
collected by the sensors requested and periodic reading, even a notice whenever predefined
limits are reached. The notice and communication services resulting from the totality of data,
possibility the reduction of the number of messages in the network which results on energy
saving.
Key Words
Wireless Sensors Network, Data Acquisition, Middleware, Applications Support Services,
domotics.
iv
Índice
Agradecimentos .............................................................................................................................. i
Resumo .......................................................................................................................................... ii
Palavras Chave ............................................................................................................................. ii
Abstract ......................................................................................................................................... iii
Key Words .................................................................................................................................... iii
Índice ............................................................................................................................................ iv
Lista de Figuras ............................................................................................................................ vi
Lista de Tabelas .......................................................................................................................... vii
Lista de Abreviações ................................................................................................................... viii
1. Introdução ............................................................................................................................... 1
1.1. Objectivos ..................................................................................................................... 2
1.2. Organização da Tese ................................................................................................... 3
2. Redes de Sensores Sem Fios ................................................................................................ 4
2.1. Arquitectura .................................................................................................................. 4
2.1.1. Infra-estrutura ........................................................................................................ 5
2.1.2. Pilha de Protocolos ................................................................................................ 8
2.1.3. Aplicações .............................................................................................................. 9
2.2. Restrições da rede de sensores sem fios .................................................................. 12
2.2.1. Tempo de vida ..................................................................................................... 12
2.2.2. Cobertura ............................................................................................................. 13
2.2.3. Tempo de Resposta............................................................................................. 13
2.3. Camada de Serviços .................................................................................................. 14
2.4. Optimização de energia ............................................................................................. 16
2.4.1. Optimização do Nó sensor .................................................................................. 16
2.4.2. Optimização Global.............................................................................................. 18
2.5. TinyOS 2.0.................................................................................................................. 19
2.5.1. Modelo de Funcionamento .................................................................................. 20
2.5.2. Linguagem de Programação nesC ...................................................................... 22
3. Hardware .............................................................................................................................. 23
3.1. Características do MICAz ........................................................................................... 25
3.2. Bateria ........................................................................................................................ 27
3.3. Placa MTS310 ............................................................................................................ 28
3.3.1. Sensor de Temperatura e Luminosidade ............................................................ 28
3.3.2. Microfone ............................................................................................................. 29
3.3.3. Actuador de Som ................................................................................................. 29
3.3.4. Acelerómetro ........................................................................................................ 30
3.4. Componente de Rádio Frequência ............................................................................ 31
3.4.1. Received Signal Strength Indication (RSSI) ....................................................... 31
v
3.4.2. Link Quality Indicator (LQI) ................................................................................. 32
3.4.3. Radio Frequency Transmission Power (RF Power) ........................................... 32
3.4.4. Low Power Listening (LPL) ................................................................................. 33
4. Serviços de Monitorização Desenvolvidos ........................................................................... 34
4.1. Serviços Disponibilizados ........................................................................................... 35
4.2. Operadores Básicos ................................................................................................... 39
4.2.1. Operador GET ..................................................................................................... 40
4.2.2. Operador SET ...................................................................................................... 40
4.2.3. Operador REPORT .............................................................................................. 41
4.3. Protocolos de Comunicação ...................................................................................... 42
4.3.1. Disseminação de Dados ...................................................................................... 43
4.3.2. Colecção de Dados.............................................................................................. 44
4.4. Estrutura das Mensagens .......................................................................................... 47
4.4.1. Envio de Pedidos ................................................................................................. 47
4.4.2. Envio de Dados Simples ...................................................................................... 48
4.4.3. Envio de Dados Agregados ................................................................................. 49
4.5. Camada de Serviços do Nó Sensor ........................................................................... 50
4.5.1. Serviços de Aquisição e Actuação ...................................................................... 51
4.5.2. Serviços de Comunicação ................................................................................... 54
4.6. Serviços do Nó Saída ................................................................................................. 55
5. Programa de Demonstração ................................................................................................ 57
6. Conclusão ............................................................................................................................. 60
Referências .................................................................................................................................. 62
Anexo ........................................................................................................................................... 65
vi
Lista de Figuras
Figura 1 - Representação de uma Rede de Sensores sem Fios .................................................. 5
Figura 2 - Esquema de hardware do nó sensor. ........................................................................... 7
Figura 3 - Pilha de Protocolos ....................................................................................................... 8
Figura 4 - Exemplo monitorização vulcânica [4]. ......................................................................... 11
Figura 5 - Esquema de optimização energética de um nó sensor. ............................................. 17
Figura 6 - Modelo de funcionamento do sistema operativo TinyOS 2.0 ..................................... 20
Figura 7 - Camadas de abstracção do TinyOS 2.0 ..................................................................... 21
Figura 8 - Evolução dos motes. ................................................................................................... 23
Figura 9 - MICAz .......................................................................................................................... 25
Figura 10 - Esquema de funcionamento do MICAz .................................................................... 25
Figura 11 - Placa MTS310. .......................................................................................................... 28
Figura 12 - Características do Acelerómetro. .............................................................................. 30
Figura 13 - Camada de Serviços ................................................................................................. 35
Figura 14 - Estrutura da mensagem de envio de pedidos. ......................................................... 47
Figura 15 - Estrutura da mensagem de envio de dados simples. ............................................... 49
Figura 16 - Estrutura da mensagem de envio de dados agregados. .......................................... 49
Figura 17 - Esquema descritivo dos serviços do nó sensor. ....................................................... 50
Figura 18 - Esquema descritivo do acesso os componentes da placa MTS310. ....................... 51
Figura 19 - Componente de configuração mts300DomoBusC .................................................... 52
Figura 20 - Esquema de acesso aos protocolos de comunicação. ............................................. 54
Figura 21 - Esquema descritivo das ligações do nó saida. ......................................................... 55
Figura 22 - Janela do programa de demonstração. .................................................................... 57
vii
Lista de Tabelas
Tabela 1 - Características do MICAz. .......................................................................................... 25
Tabela 2 - Consumo de cada componente do MICAz. ............................................................... 27
Tabela 3 - Correspondência entre os valores lidos de RF Power de valores dBm..................... 32
Tabela 4 - Comandos e Eventos das interfaces.......................................................................... 36
Tabela 5 - Vantagens e desvantagens do serviço de agregação de dados ............................... 37
Tabela 6 - Parâmetros de entrada dos operadores da camada de middleware. ........................ 39
Tabela 7 - Parâmetros dos campos dinâmicos Prop 1 e Prop 2. ................................................ 48
Tabela 8 - Descrição dos componentes utilizados ...................................................................... 53
Tabela 9 - Comandos e eventos das interfaces getF, setF e reportF ......................................... 54
Tabela 10 - Descrição dos painéis da janela do programa de demonstração ............................ 58
Tabela 11 - Tabela de parâmetros e os seus significados de cada operador. ........................... 59
viii
Lista de Abreviações
MAC – Medium Access Control
DVS – Dynamic Voltage Scaling
DPM – Dynamic Power Management
SSP – Scalable Signal Processing
nesC – Network Embedded Systems C
FIFO – First In First Out
MEMS – Micro-Electro Mechanical Systems
ADC – Analog Digital Converter
RSSI – Received Signal Strength Indicator
LQI – Link Quality Indicator
RF Power – Radio Frequency Transmission Power
LPL – Low Power Listening
CTP – Collection Tree Protocol
ETX – Expected Transmission
ACK – Acknowledgments
LEEP – Link Estimator Exchange Protocol
1
1. Introdução
A área das redes de sensores sem fios constitui actualmente um campo de pesquisa
emergente. Estas redes podem ser usadas nos mais diversos domínios, tais como na
domótica, na segurança de edifícios e pessoas, na agricultura, entre outros. Estas redes
possuem capacidades únicas de capturar fenómenos físicos do mundo real e transportá-los
para o mundo digital. Em particular oferecem grandes vantagens na recolha de dados de
fenómenos físicos em locais de difícil acesso.
Uma rede de sensores sem fios é um sistema distribuído de sensores cujo objectivo principal
se centra na recolha e entrega de dados às aplicações clientes. Este sistema em rede é
constituído por dispositivos autónomos que cooperam entre si e que se encontram dispersos
em diversos locais de modo a monitorizar, por intermédio de sensores, diversos fenómenos
físicos, tais como pressão, temperatura, som ou vibrações.
As redes de sensores sem fios podem ser compostas por centenas de pequenos dispositivos
de reduzida capacidade de processamento equipados com diversos sensores. Estes
dispositivos são capazes de adquirir, processar e transmitir a informação recolhida pelos
diversos sensores. Estes dispositivos são denominados por nós sensores e a sua integração
na rede baseia-se na cooperação entre eles, extraindo os dados ambientais e transmitindo-os
para um ou mais nós de saída da rede, chamados nós saída, para serem armazenados e
processados. Estes dispositivos podem ser instalados em locais pré-definidos, ou de modo
anárquico, dependendo do objectivo da aplicação.
A principal característica que diferencia os elementos que constituem uma rede de sensores
sem fios das redes com fios é o facto de apresentarem, por norma, grande autonomia e
independência do exterior. Deste modo estes componentes electrónicos podem ser incluídos
em redes densas ou esparsas conforme a aplicação pretendida. Por exemplo, no caso da
monitorização de grandes espaços agrícolas, esta rede tenderá a ser pouco densa, ao
contrário de um sistema interior num ambiente fabril, onde tenderá a ser muito densa nas
zonas mais críticas de produção.
Esta tecnologia tem enormes potencialidades ao nível dos serviços disponibilizados, que
aumentam naturalmente com o incremento das capacidades individuais de cada sensor,
principalmente ao nível do processamento, do armazenamento dos dados lidos e do tempo de
vida das baterias. Os serviços que uma rede com estas características oferece ultrapassam em
muito os serviços de um único nó. Permitem, por exemplo, a recolha de dados estatísticos de
uma grandeza física (humidade, temperatura, etc.), de uma zona agrícola ou a definição de
alarmes muito úteis em áreas de aplicação ligadas à domótica e segurança.
2
1.1. Objectivos
A presente tese propõe uma camada de serviços que realize uma abstracção entre a aplicação
e os serviços específicos de comunicação e monitorização de dados implementados na rede
de sensores. Os serviços actuam como uma camada de middleware, que escondem às
aplicações grande parte dos detalhes de configuração da rede e das decisões de baixo nível.
Assim, esta camada de serviços tem por objectivo simplificar os esforços de desenvolvimento
de aplicações baseadas em redes de sensores sem fios, oferecendo um conjunto genérico de
serviços que podem ser usados em diferentes áreas de aplicação.
Actualmente, para cada domínio de aplicação em que se pretenda usar uma rede de sensores
sem fios, são feitos desenvolvimentos específicos. Isto acarreta dificuldades de adaptabilidade
a possíveis alterações ao nível da estrutura da rede, levando a um aumento do custo. Este
trabalho pretende desenvolver um conjunto de serviços que permitam que uma rede de
sensores possa ser usada em diferentes aplicações, bastando para isso configurá-la. Esta
configuração baseia-se na definição de diferentes serviços fornecidos por cada sensor, ou
actuador, e o tipo de comunicação utilizada.
Os serviços de aquisição disponibilizados baseiam-se na leitura, envio de dados e na definição
de diversos tipos de alarmes. Assim, esta camada de serviços propõe vários modos de leitura
de dados, nomeadamente a leitura a pedido, leitura periódica e notificação quando certos
limites pré-definidos são atingidos. Os serviços de comunicação permitem a agregação de
dados possibilitando deste modo reduzir o número de mensagens a circular na rede e levando
assim à poupança de energia consumida por cada elemento da rede.
A camada de serviços de comunicação foi estruturada de modo a que no futuro possam vir a
ser englobados outros protocolos, disponibilizando, por exemplo, serviços de segurança e cifra.
No entanto, no presente trabalho não foram abordadas todas estas vertentes de comunicação
devido à sua complexidade e extensão. Assim, por razões de simplificação, foram apenas
abordados dois tipos de protocolos de comunicação: Disseminação e Colecção de dados, os
quais se revelaram bastante eficazes.
Estes serviços propostos são implementados sobre uma plataforma especificamente
desenvolvida para redes de sensores sem fios - TinyOS 2.0 -; e sobre dispositivos de hardware
MICAz. No entanto, os serviços disponibilizados podem ser aplicados noutras plataformas e
noutros dispositivos de hardware, sendo necessário para tal realizar a adaptação dos serviços
utilizados na camada de middleware.
3
1.2. Organização da Tese
O próximo capítulo contém a descrição de todos os aspectos teóricos do trabalho
desenvolvido. São apresentados vários conceitos relacionados com a arquitectura,
funcionamento e optimizações de uma rede de sensores sem fios. São igualmente abordados
os diferentes aspectos que os serviços de uma rede deste tipo deve fornecer.
No capítulo 3 são apresentadas as principais características do hardware utilizado (MICAz),
bem como o funcionamento básico dos sensores e actuadores presentes na placa de interface
MTS310. São abordadas igualmente neste capítulo as diferentes características do nó,
nomeadamente as que se referem à comunicação por rádio frequência e ao consumo
energético.
No capítulo 4 é apresentada a arquitectura da camada de serviços desenvolvidos. São
descritos e justificados os critérios e opções adoptadas neste projecto bem como os diferentes
protocolos usados.
No capítulo 5 é apresentado o programa levado a cabo para demonstrar o funcionamento dos
diversos serviços disponibilizados pela camada de middleware desenvolvida. São descritos os
pormenores específicos de utilização e de instalação.
Por fim, no capítulo 6 são apresentados os resultados e conclusões da presente tese, sugere-
se trabalho futuro que seria interessante realizar para completar a nossa abordagem.
4
2. Redes de Sensores Sem Fios
As redes de sensores sem fios constituem um novo domínio de redes de sensores distribuídos,
que nos últimos anos foram alvo de vários projectos de pesquisa e desenvolvimento. Estas
redes são fortemente limitadas pela eficácia das fontes de energia de cada nó, afectando as
capacidades de armazenamento, processamento e ligações através da rede sem fios. Sendo o
principal objectivo destas redes a recolha, colecção e entrega de dados a uma determinada
aplicação cliente, diversos protocolos foram desenvolvidos. Os dados recolhidos pelos diversos
sensores da rede são encaminhados automaticamente pela rede para nós saída, onde estes
podem ser tratados e analisados.
Nesta secção estão apresentados todos os conceitos básicos que tiveram por detrás do
desenvolvimento deste trabalho. Em 2.1, é abordada a arquitectura de uma rede de sensores
sem fios, em que são explicados os diferentes aspectos de hardware, protocolos e aplicações.
Em 2.2 são explicadas as restrições básicas de uma rede deste tipo; enquanto em 2.3 é
descrito o conceito básico de um middleware aplicado a redes de sensores sem fios. Em 2.4
são abordadas as diferentes optimizações energéticas; e, por último, em 2.5 é feita uma
pequena abordagem ao sistema operativo utilizado no desenvolvimento deste trabalho.
2.1. Arquitectura
As redes de sensores sem fios têm uma estrutura organizacional com três vectores básicos: a
infra-estrutura, a pilha de protocolos e a aplicação ou observador [1]. A infra-estrutura é
composta por todos os sensores físicos e as respectivas características intrínsecas e de
instalação presentes numa rede de sensores sem fios. As suas características intrínsecas
aludem à sua autonomia, armazenamento e processamento, enquanto as características de
instalação mencionam o local e o modo de instalação de cada dispositivo da rede. A pilha de
protocolos reporta-se às diversas camadas de protocolos presentes em cada nó da rede. Por
fim, a aplicação traduz os interesses e objectivos finais para os quais a rede foi desenvolvida.
A aplicação deve definir o modelo de entrega de dados que mais se adequa aos seus
objectivos. Para tal existem vários modelos que podem ser divididos em entregas contínuas,
dirigidas a eventos, iniciadas pelo nó ou híbridas. Para realizar cada modelo de entrega,
existem vários protocolos ao nível da rede que encaminham, de forma eficiente, o tráfego dos
dados desde o nó origem ao nó destino, um exemplo disto são os protocolos de disseminação
e colecção de dados utilizados neste trabalho.
5
2.1.1. Infra-estrutura
Uma rede de sensores sem fios é construída para suprir uma necessidade, para tal é
necessário montar e instalar a rede que melhor se adequa á natureza do problema. A infra-
estrutura de uma rede de sensores define todos os nós e as suas respectivas características
de instalação como, por exemplo, a sua localização, o tipo de memória, os sensores a que
estão acoplados, etc. Regra geral, todas as redes possuem pelo menos um nó de acesso,
estes tipos de nós são denominados nós saída.
A rede também é constituída por nós denominados sensores que têm a função de reunir e
transmitir todas as informações dos sensores a que estão acoplados para os seus nós
adjacentes. Estes nós podem ser constituídos por diversos sensores de vários tipos, toda a
informação recolhida tem de ser agregada pelo nó para poder ser enviada para os nós
requerentes, assim este tipo nó tem capacidades adaptadas à sua função.
Figura 1 - Representação de uma Rede de Sensores sem Fios
Na rede de sensores sem fios, os nós nós saída, adquirem um papel de ligação entre a rede e
o exterior. Este tipo de nós está ligado a um sistema com uma elevada capacidade
computacional e de armazenamento. Este sistema externo à rede, pode ser um computador ou
um PDA, responsável pela execução de algoritmos de decisão sobre os dados recolhidos.
Estes algoritmos consistem principalmente no armazenamento e tratamento dos diferentes
dados enviados pelos nós sensores. Estes tipos de nós realizam duas tarefas essenciais para
o funcionamento de uma rede de sensores, a tarefa de envio dos pedidos requisitados pelo
sistema externo à rede e a respectiva tarefa de recolha da informação dos outros nós.
6
O nó saída, além de coleccionar toda a informação que circula na rede, pode ainda alterar
parâmetros desta em tempo real. Os dados recolhidos pelo nó são apresentados ao utilizador
por intermédio de um computador ou por outro tipo de dispositivo electrónico. Deste modo,
assume-se que estes nós, devido à proximidade de componente deste tipo, não têm o factor
energético como uma limitação, uma vez que podem ser alimentados externamente por uma
fonte inesgotável de energia, por exemplo, a partir da rede eléctrica.
Do ponto de vista mais geral, os nós saída actuam como fornecedores de serviços para o
ambiente externo, isto é, fornecem acesso aos serviços da rede. Ao mesmo tempo comportam-
-se como solicitadores de serviços para os nós sensores, requisitando serviços especializados
de modo a responder às exigências de cada aplicação.
Os nós saída têm um papel totalmente transparente do ponto de vista da aplicação, uma vez
que não processam nem armazenam qualquer informação que passe por eles. Tudo o que lhes
chega é reencaminhado para o outro sistema, ou seja, as mensagens que são enviadas pela
porta série são colocadas na rede; em sentido oposto, as mensagens que circulam na rede que
têm como destino o nó saída são encaminhadas para a porta série.
Cada nó sensor pode ser dividido em quatro segmentos diferentes, sensores e actuadores,
processador e armazenamento, a energia e comunicação. Estes nós são compostos por
dispositivos sensoriais e pelos respectivos conversores analógicos digitais. Hoje em dia
existem os mais variados tipos de sensores e actuadores. A estes nós podem ser acoplados
diferentes tipos de sensores, por exemplo, sísmicos, magnéticos, térmicos, visuais,
infravermelhos, acústicos, radares etc.. Por isso, estes sensores são capazes de captar uma
grande gama de grandezas e facultar uma grande versatilidade às redes de sensores sem fios.
Os sensores submetem os dados analógicos recolhidos para a unidade de processamento
através do conversor analógico digital. O processador e a unidade de armazenamento são
responsáveis pela execução dos protocolos de comunicação e pela gestão da aquisição de
dados dos sensores. Os actuadores são usados para modificar o ambiente envolvente, a acção
de comando destes pode ser efectuada localmente, através do processamento dos dados
recolhidos, ou pela rede, através de um nó saída.
7
Figura 2 - Esquema de hardware do nó sensor.
A constituição do módulo de comunicação depende do tipo e função do nó, normalmente é
utilizado um sistema de comunicação de rádio frequência de curto alcance para comunicar com
os nós vizinhos. Este é composto por um transceiver, por uma antena e por um conjunto de
características discretas do sistema físico, tal como sensibilidade e intensidade do sinal.
Focalizando apenas no funcionamento básico do transceiver, este tem três modos de
funcionamento, recepção, transmissão, sleep [2].
A fonte de energia dos nós é constituída por baterias e por um conversor DC-DC. A duração da
bateria depende de vários factores, tais como a dimensão, o material que a constitui, etc.. O
conversor DC-DC é um dispositivo electrónico que recebe uma tensão e DC e coloca à saída
uma outra tensão DC de nível diferente. Este conversor é responsável pela durabilidade da
bateria e pela tensão constante à entrada do sensor.
Os nós sensor obedecem a uma arquitectura baseada na recolha e envio de dados para o nó
de saída. Estes nós são responsáveis pelo envio das informações adquiridas pelos diferentes
sensores que lhe estão acoplados. As informações que são enviadas são previamente
requisitadas através do nó saída pela aplicação.
O processamento típico para este tipo de nós é muito reduzido, devido à sua reduzida
dimensão e capacidade energética. Se quisermos uma rede de sensores sem fios que seja
eficiente e duradoura, temos de abdicar de tudo o que consuma energia inútil. Assim, os
processadores destes mecanismos são arquitectados apenas para corresponder às exigências
de aquisição e comunicação básicas de cada nó.
Cada nó sensor pode ser composto por um número limitado de sensores. Esta restrição advém
das limitações físicas de cada dispositivo, principalmente devido ao número limitado de
ligações físicas disponibilizadas pelo hardware, ou até às limitações energéticas inerentes ao
consumo de cada sensor.
8
2.1.2. Pilha de Protocolos
A pilha de protocolos usada nos nós sensores está apresentada na figura 3. Esta pilha é
constituída por cinco camadas horizontais (Aplicação, Transporte, Rede, Ligação, Física) e três
planos verticais (Energia, Mobilidade, Tarefas) [3]. Esta pilha de protocolos integra a eficiência
enérgica com a comunicação e promove esforços em cooperação de todos os nós.
Camada de Aplicação
Camada de Transporte
Camada de Rede
Camada de Ligação
Camada Física
Gestão de Energia
Gestão de C
onectividade
Gestão de Tarefas
Figura 3 - Pilha de Protocolos
A camada de transporte ajuda a manter o fluxo de dados da camada de aplicação. O
encaminhamento dos pacotes desses dados é assegurado pela camada de rede. A camada de
ligação assegura as ligações confiáveis numa rede de comunicação. Utilizando fluxos
multiplexados de dados, detecção de quadros, acesso ao meio e controlo de erros. O uso do
protocolo de acesso ao meio MAC (Medium Access Control) minimiza as colisões entre nós
vizinhos que podem ser móveis e inseridos em ambientes ruidosos. Existem muitos protocolos
baseados em MAC, mas poucos têm em conta as características necessárias para uma rede
de sensores sem fios, sendo a poupança de energia um vector fundamental para esses
protocolos MAC. Os principais factores para o desperdício de energia são as colisões, a
recepção de pacotes que não lhe são endereçados e a espera ociosa.
A camada física é responsável pela transmissão, recepção e modulação usada na rede. A
transmissão e recepção são responsáveis pela maior parte do consumo de energia em redes
de sensores sem fios. Assim, a decisão sobre quais as características de transmissão a utilizar
deve ter sempre em atenção o factor energético, tais como a frequência, os mecanismos de
detecção de sinal e a modulação utilizados.
Os planos horizontais permitem coordenar todos os nós sensores na realização de tarefas
sensoriais no controlo do consumo global de energia da rede, de forma a minimizá-lo. O plano
de gestão de energia possibilita gerir a forma como cada nó gasta a sua fonte energética. A
gestão de conectividade detecta e regista o movimento dos nós sensores, de modo a poder
9
determinar em cada instante a informação dos nós vizinhos. Assim, é possível guardar
informação sobre as rotas para cada nó da rede.
O plano de gestão de tarefas tem por objectivo o escalonamento sensorial em áreas
específicas a monitorizar, o que possibilita o acesso a tarefas dos nós sensores de uma região
específica, evitando deste modo a sobrecarga da rede. Este escalonamento tem em conta o
nível energético e o grau de importância de cada nó na realização de uma determinada tarefa.
Deste modo, é possível numa região específica, separar os nós de acordo com a sua
importância para a realização de uma tarefa.
Os planos de gestão permitem que os nós sensores cooperem entre si de uma forma eficiente
em termos energéticos. Sem estes planos cada sensor funcionava individualmente, em
prejuízo da eficácia dos serviços da rede. Assim, do ponto de vista das redes de sensores sem
fios é importante que os seus sensores trabalhem em conjunto para que o tempo de vida da
rede seja optimizado da melhor forma e as tarefas sejam compridas eficazmente.
2.1.3. Aplicações
Como já foi referido anteriormente cada nó sensor tem a capacidade de reter a informação de
cada sensor a que está acoplado, sendo a acção deste determinada pelas características dos
sensores. O nó sensor possibilita diferentes modos de acesso aos dados dos sensores,
nomeadamente, a leitura a pedido, a leitura periódica e a notificação quando certos limites pré-
definidos são atingidos. Assim, o uso destes modos de acesso fornece serviços que podem ser
utilizados numa ampla gama de aplicações.
Sendo a aplicação parte integrante da rede, esta é responsável pela submissão de um conjunto
de consultas e interesses que descrevem os diversos fenómenos físicos a que a rede está
habilitada. Os interesses devem indicar, entre outros: o tipo de dados pretendidos; a frequência
com que os dados devem ser recolhidos e os eventos que podem despoletar algum
comportamento particular da rede.
As redes de sensores sem fios podem ser inseridas em diversas áreas de aplicação, das quais
se destacam: a área militar, área ambiental, área de saúde, área da Domótica, área industrial
entre outras. De referir que estas redes também podem ser aplicados em ambientes em que
qualquer falha do sistema pode pôr em risco vidas humanas, por exemplo, na exploração
espacial, no socorro de vítimas de desastres, etc..
As redes de sensores sem fios têm características que se podem adaptar facilmente em
ambientes militares, devido à sua rápida instalação, a capacidade de auto-organização e
tolerância a falhas. Neste cenário a destruição de um conjunto de nós da rede, por parte do
inimigo, não significará a total destruição da rede, uma vez que esta tem uma adaptação
10
automática. Desta forma, esta característica é um trunfo importante na aplicação em sistemas
militares de comando, de controlo, de comunicação, de computação e de vigilância.
As aplicações ambientais consistem, essencialmente, na monitorização do movimento de
animais ou das condições ambientais que afectam, por exemplo, uma colheita, o controlo de
irrigação, a detecção química e biológica, detecção de incêndios florestais, pesquisa
meteorológica e geofísica, entre outros. Relativamente à área da saúde, existem várias
aplicações de entre as quais se destacam a monitorização de pacientes, realização de
diagnósticos, administração de fármacos. Nomeadamente, existem outras aplicações ligadas à
área industrial, por exemplo, a monitorização da fadiga do material, monitorização de qualidade
de produtos, controlo ambiental de edifícios inteligentes.
Actualmente, a área da Domótica está em franco desenvolvimento, existindo inclusive diversos
sistemas por fios que realizam tarefas, tais como: ligar electrodomésticos; abrir e fechar
persianas; rega; ligar e desligar iluminação. Têm igualmente a capacidade de se integrarem
com redes externas como a internet ou telefone. Assim, no caso específico da domótica, as
redes de sensores sem fios pressupõe a passagem de uma rede com fios para uma rede sem
fios, criando novos serviços e aperfeiçoando os já existentes noutras tecnologias com fios. O
principal trunfo das redes de sensores sem fios nesta área centra-se essencialmente na
facilidade de instalação sem a necessidade de realização de modificações nas casas.
Como ficou demonstrado nesta secção, a aplicação de uma rede de sensores sem fios, no
mundo real, é muito vasta. Este facto levanta questões desafiantes, nomeadamente na
integração dos serviços disponibilizados pela rede, de modo a corresponder às necessidades
dos diferentes tipos de aplicação.
Na figura 4 está apresentado um exemplo de uma aplicação real apoiada pela Universidade de
Harvard, em que é usada uma rede de sensores sem fios para realizar a monitorização dos
diferentes fenómenos físicos de vulcões activos [4]. Cada nó sensor é equipado com um
sensor sísmico, um sistema de localização GPS, sensor de inclinação, sensor térmico óptico e
um medidor de fluxo de gás. Estes sensores permitem o acesso a variáveis físicas
fundamentais para o estudo dos fenómenos vulcânicos. Em particular nesta aplicação, o nó de
saída comunica com o observatório por uma ligação de rádio de longa distância, uma vez que
o observatório se situa normalmente distante do vulcão por razões de segurança.
11
Figura 4 - Exemplo monitorização vulcânica [4].
Este exemplo realça a ampla gama de aplicações desta tecnologia, nomeadamente neste caso
em que o acesso aos locais é tremendamente difícil. Neste caso particular o uso de uma
tecnologia por fios seria ineficaz, pois a lava expelida pelo vulcão poderia atingir os cabos
inactivando de imediato a rede, o que não acontece com a rede de sensores sem fios uma vez
que, mesmo que sejam destruídos vários nós, a rede pode funcionar. Neste exemplo, os nós
podem ser lançados por helicóptero, caso se trata de locais inacessíveis, de forma a adquirir
dados que, através de outra tecnologia, não seriam possíveis de aceder.
12
2.2. Restrições da rede de sensores sem fios
Apesar das virtudes da utilização de uma rede de sensores sem fios serem muitas, é
necessário adaptar as limitações deste sistema a cada tipo de aplicação. As restrições de uma
rede de sensores sem fios dependem de cada aplicação como, por exemplo, para aplicações
de domótica, o consumo energético não é um factor limitativo uma vez que os dispositivos
podem estar ligados directamente à rede eléctrica.
Nesta secção são apresentados diferentes factores que restringem normalmente o uso de uma
rede de sensores sem fios em determinadas aplicações. Essas restrições baseiam-se
principalmente nos efeitos colaterais de uma má política de gestão energética. Deste modo na
secção 2.2.1. analisam-se os factores que afectam o tempo de vida da rede, enquanto em
2.2.2 é analisada a cobertura global da rede e, por fim, são dissecados os factores que afectam
o tempo de resposta aos pedidos da rede.
2.2.1. Tempo de vida
O principal factor limitativo do tempo de vida é a energia, sendo que habitualmente esse
fornecimento é feito por baterias ou afins que são limitadas em termos energéticos. Cada nó
deverá gerir e optimizar da melhor forma o recurso energético, de modo a minimizar o consumo
e assim maximizar o tempo de vida da rede. Na maioria das aplicações o tempo de vida
mínimo de cada nó é mais valorizado do que o tempo médio de vida, pois o tempo médio de
vida pode nunca vir a ser atingido. Particularmente, em aplicações de segurança, a quebra de
funcionamento de algum dos nós pode implicar a falha de segurança de toda a rede.
Na maioria das aplicações os nós são alimentados por baterias internas, isso implica que os
nós terão de armazenar energia suficiente para o seu funcionamento ou terão de ser capazes
de gerar energia através do ambiente, por exemplo, a partir de painéis solares ou geradores
piezoeléctricos. Em qualquer dos casos é indispensável que o consumo de cada nó seja
optimizado.
A técnica que geralmente é utilizada na poupança de energia em cada nó baseia-se em
desligar por breves instantes um determinado componente de hardware do dispositivo,
usualmente o componente de rádio frequência. Deste modo, o componente durante o período
sleep não poderá realizar qualquer acção. Esta técnica é bastante eficaz em termos
energéticos mas, no entanto, é necessário ter em atenção o desempenho dos serviços que
utilizem o dispositivo. Por exemplo, no caso do componente de rádio utilizar protocolos
baseados em múltiplos saltos, os pacotes enviados demoram mais tempo a serem
recepcionados pois têm de esperar pelo período activo de cada nó presente no caminho até ao
nó destino.
13
2.2.2. Cobertura
A cobertura da rede é outro factor crítico importante nas redes de sensores sem fios. Quanto
maior for a área de cobertura da rede, mais serviços serão disponíveis às diversas aplicações.
Apesar de cada rede ser composta por vários nós, nem todos eles, necessariamente, têm a
mesma cobertura individual.
A comunicação em múltiplos saltos ou multi-hop tem a capacidade de estender, na teoria até
ao infinito, a cobertura da rede para além da simples cobertura da comunicação rádio de cada
nó. Este protocolos requerem uma baixa densidade de nós da rede o que leva ao aumento do
custo de desenvolvimento.
A necessidade do aumento do conhecimento do ambiente obriga a um aumento do número de
nós na rede e o consequente incremento do número de dados a ser transmitidos pela rede.
Este facto origina um maior desgaste dos nós principais da rede, reduzindo o tempo de vida útil
do sistema. Os nós mais importantes do sistema são aqueles que sofrem maior desgaste ao
longo do tempo, que são os nós mais próximos do nó saída. Assim, o aumento da cobertura da
rede aumenta os serviços disponibilizados em prejuízo do tempo de vida útil da rede.
2.2.3. Tempo de Resposta
O tempo de resposta é um factor crítico para certas aplicações que se baseiam em sistemas de
alarme. A ocorrência de um alarme, pré definido pela aplicação, deve ser sinalizada o mais
rápido possível à aplicação. Ou seja, os nós devem ser capazes de fornecer uma imediata
comunicação das mensagens de alarme à aplicação. Por natureza, a ocorrência de situações
denunciadas pelos alarmes acontecem com baixa frequência e surgem em qualquer momento
sem qualquer aviso prévio. Por exemplo, o tempo de resposta é um factor decisivo para
aplicações em ambiente fabril, onde esta tecnologia é usada para controlar o funcionamento de
diferentes tipos de máquinas. Assim, neste tipo de cenários, as redes de sensores sem fios só
são usadas se forem capazes de garantir uma resposta às ocorrências em tempo útil.
A capacidade de ter rapidez de resposta influencia negativamente outro recurso crítico do
sistema, o tempo de vida útil da rede. Para aumentar o tempo de vida são utilizados
mecanismos que se baseiam em desligar o rádio dos nós num curto espaço de tempo. Isto tem
implicações óbvias no tempo de resposta do sistema. Em sentido contrário, para aumentar o
tempo de resposta do sistema, o componente de rádio dos nós tem de ficar ligado durante todo
o tempo. Assim, os nós são capazes de receber e reencaminhar as mensagens quando
necessário.
14
2.3. Camada de Serviços
Entre os diversos níveis da pilha de protocolos (apresentado na secção 2.1.2.) existe um
grande acoplamento, de modo a tornar o sistema eficiente e robusto. Este acoplamento pode,
no entanto, gerar um sistema rígido e pouco versátil, isto é, pode gerar redes específicas
apenas para atender poucas aplicações. Esta inflexibilidade da pilha não é desejável a médio e
longo prazo, devido aos custos do seu desenvolvimento.
A existência de uma camada de serviços denominada por middleware, entre a pilha de
protocolos e a aplicação, é benéfica para o sistema uma vez que permite uma maior
flexibilidade e torna quer os serviços de comunicação, quer os de acesso aos dados dos
sensores mais acessíveis. Esta camada fornece à aplicação os requisitos específicos de cada
tipo de rede e facilita a integração da aplicação no sistema.
A camada de middleware apresenta, através de uma interface de alto nível, funcionalidades de
acesso aos dados realizando a tradução dos requisitos de rede. Estes requisitos baseiam-se
na escolha dos protocolos que definem a topologia e a lógica da recolha dos dados
pretendidos. Devido às características dinâmicas de uma rede deste tipo, o middleware deve
pôr à disposição da aplicação mecanismos que permitam a configuração, inspecção e a
adaptação a este comportamento dinâmico da rede.
O reduzido poder computacional e a limitação energética de cada nó da rede obriga o
middleware a fornecer mecanismos de optimização destas características. Em geral, a
topologia da rede não se mantém fixa, tal como acontece nas redes fixas. Esse dinamismo
advém da desconexão de nós por destruição, por escassez de recursos energéticos ou mesmo
por falta de comunicação. Assim, a topologia da rede é alterada em conformidade com as
medidas tomadas pelos protocolos utilizados, estes podem decidir desligar um sensor ou ligar
outro em virtude da poupança de energia e do interesse da aplicação. Estas características
revelam um alto nível de dinamismo e elevado grau de disponibilidade dos nós e do contexto
de execução da rede.
O middleware de uma rede de sensores sem fios deve actuar em três planos: Energia;
Mobilidade e Tarefas. A função principal do middleware baseia-se no suporte ao
desenvolvimento e execução de aplicações sensoriais e na gestão dos recursos da rede.
A camada de middleware abstrai à aplicação os protocolos de comunicação e as
características de infra-estrutura. Tendo em conta os diferentes requisitos definidos pela
aplicação, esta deve escolher de forma transparente os protocolos de comunicação e de infra-
estrutura que melhor se adapta às necessidades e exigência da aplicação. Essa abstracção
deverá fornecer uma interface de alto nível encapsulando diferentes protocolos de
comunicação.
15
A selecção dos nós que participam na realização de cada tarefa de aquisição de dados,
também é da responsabilidade do middleware. Essa escolha deverá sempre ter em conta aos
requisitos da aplicação e a optimização do consumo global de energia da rede.
O conhecimento da aplicação é fundamental para o middleware em decisões de
encaminhamento e agregação de dados. O compromisso entre o grau de especificidade e a
generalidade do middleware tem de ser considerado para cada tipo de aplicação, isto é, para
um determinado middleware deverá servir uma ampla gama de aplicações. Deste modo, na
prática utiliza-se a construção de um perfil onde é definido um conjunto de características de
uma determinada aplicação, e assim cada perfil pode ser interpretado pelo middleware para
direccionar as suas operações de modo a satisfazer, da melhor maneira, a aplicação desse
perfil.
No ambiente dinâmico em que, tipicamente, uma rede de sensores sem fios se insere, o
middleware, para manter a qualidade dos serviços, deve alterar os seus parâmetros de
configuração ao longo do tempo de modo a compensar as alterações. Assim, o contexto de
execução de um middleware não pode ser estático, deve ser continuamente monitorizado de
modo a que as aplicações sejam cientes do contexto e participem das tomadas de decisão.
Neste caso, as aplicações podem participar nas decisões de infra-estruturas e da activação de
estratégias de adaptação.
16
2.4. Optimização de energia
O consumo de energia de uma rede de sensores sem fios não pode ser desprezada, uma má
gestão deste recurso pode levar à ineficiência total da rede anulando as principais vantagens
do uso deste tipo de redes. Se os nós não gerem a sua energia de forma eficiente, torna-se
necessário substituir a sua fonte energética frequentemente. Este factor é importante em casos
em que os nós estão localizados em sítios de difícil acesso. Assim, é fácil imaginar um cenário
em que sempre que num dos nós se esgotava a energia, corria-se o risco de perder a utilidade
global da rede, muito embora existam ainda nós operacionais.
Caracteristicamente, as aplicações de redes de sensores sem fios requerem tempos de vida de
meses ou até anos. Nesta situação, o consumo de energia deve ser minorado, uma vez que é
o principal factor responsável pelo tempo de vida da rede.
Todos os factos apresentados servem para demonstrar a importância da conservação
energética. Assim, a maximização do tempo de vida está intimamente ligada à minimização do
consumo energético e deste modo requer o uso de metodologias holísticas estruturadas. É
importante que todas as operações transversais desde do hardware até ao software da
aplicação tenham em conta o ponto de vista energético. Os protocolos de rede devem então
incluir mecanismos que possibilitem o racionamento do uso da energia, tendo sempre em
atenção o desempenho e a fidelidade operacional.
2.4.1. Optimização do Nó sensor
A optimização do consumo de energia global depende essencialmente da política individual
adoptada por cada nó. No ponto de vista do hardware existem diversos avanços tecnológicos,
nomeadamente, em micro controladores de baixo consumo que podem ser incorporados em
nós sensor. Ainda assim o uso da gestão dinâmica de energia (DPM - Dynamic power
management) [5] pode aumentar o tempo de vida da bateria. Esta gestão dinâmica baseia-se
em desligar os componentes que estão no estado sleep. Assim, o nó sensor é desligado ou
colocado num estado de baixo consumo se nenhum evento ocorrer. Torna-se assim fulcral
definir a política de transição de estados, uma vez que diferentes estados conduzem a
diferentes consumos de energia e a energia de comutação entre eles não é de desprezar.
17
Figura 5 - Esquema de optimização energética de um nó sensor.
Existe igualmente técnicas de poupança de energia que se baseiam na redução dinâmica da
voltagem (DVS - Dynamic Voltage Scaling) [6] que alimenta cada componente. Em geral, a
carga computacional no micro controlador nunca é a mesma ao longo do tempo, sendo que
nem sempre o pico máximo de processamento é atingido. Deste modo, aproveitando esta
característica, o DVS adapta a voltagem de alimentação e a frequência de operação de modo a
fornecer unicamente ao micro controlador a capacidade de processamento necessária em cada
instante. O uso desta técnica é bastante eficaz comparando com a DPM, pois não desliga
completamente o componente do dispositivo.
Existem técnicas de escalonamento de modelação (DMS – Dynamic modulation scaling) [7],
que possibilitam a adaptação dinâmica do nível de modulação da portadora em cada instante à
carga instantânea de tráfego. Uma gestão coordenada de energia utilizando, de forma
inteligente, estas três técnicas leva a um aumento do rendimento da rede de sensores sem
fios.
A maior eficiência energética é atingida quando o hardware é desenvolvido especificamente
para uma determinada aplicação. Assim, não sendo possível esse desenvolvimento específico
para cada aplicação de redes de sensores sem fios, o sistema operativo tem de assumir o seu
papel fulcral neste aspecto. Os sistemas operativos têm uma grande responsabilidade em
termos da gestão energética, podendo controlar os recursos de hardware e possibilitando
negociar o desempenho com o consumo energético da melhor maneira.
Uma parcela muito grande do consumo de energia de cada nó sensor é consumida na
comunicação da rede de sensores sem fios. Por conseguinte, é importante tirar o máximo de
proveito do compromisso desempenho/consumo energético, definindo e actuando nos factores
que influenciam de uma forma mais significativa este compromisso.
18
2.4.2. Optimização Global
A optimização de energia, a nível global de uma rede de sensores sem fios, fixa-se
principalmente nos protocolos de encaminhamento dos dados entre os diferentes nós da rede.
Os nós sensores estão distantes dos nós saída, tornando inevitável a ocorrência de múltiplos
saltos entre nós intermédios. Assim, a alta densidade de nós que normalmente podemos
encontrar neste tipo de redes, potencia a ocorrência de múltiplos saltos entre os diferentes nós
que estejam localizados entre os nós de origem e destino. Em particular, os nós mais próximos
do nó saída sofrem maior desgaste, uma vez que a informação de toda a rede tem de passar
directamente por eles. Deste modo, é importante desenvolver politicas de gestão de rotas.
Existem diversos estudos que retratam a problemática energética de uma rede de sensores
sem fios. O autor de [8] defende que, do ponto de vista energético, quando a distância de
transmissão aumenta, é vantajoso aumentar o número de nós intermediários. Os dados são
enviados por diferentes nós sensores e podem ser agregados nos nós intermédios, de modo a
reduzir a redundância, a minimizar o tráfego de dados que circulam na rede e a diminuir o
consumo total de energia.
O aumento da densidade de nós de uma rede não significa directamente um aumento do
tempo de vida, uma vez que o consumo do rádio no estado sleep difere muito do consumo dos
outros estados de recepção e transmissão, conforme é defendido por [9]. Para diminuir o
consumo é possível desligar um determinado componente, no entanto esta passagem requer
uma gestão bastante cuidada, uma vez que, ao passar para este estado, os nós passam a
estar temporariamente inactivos alterando a topologia da rede.
Uma técnica simplista que visa a poupança enérgica global da rede é a agregação ou fusão de
dados. Consiste em combinar os dados oriundos de diferentes fontes (nós ou sensores), de
forma a ampliar e a concentrar informação. Deste modo, consegue-se eliminar dados
redundantes e diminuir os pacotes que circulam na rede, desta forma consegue-se economizar
energia.
Resumindo, de maneira a aumentar o tempo global de vida da rede deve-se garantir que o
tráfego é distribuído entre os nós de uma forma eficiente do ponto de vista energético. É
importante adquirir estratégias inteligentes de encaminhamento e de manutenção da topologia
baseadas, por exemplo, em técnicas de agregação de dados em determinados nós ou mesmo
a redução do número e dimensão dos pacotes de dados.
19
2.5. TinyOS 2.0
Actualmente, na versão 2.02, o TinyOS é um sistema operativo desenvolvido especificamente
para corresponder de forma eficiente às exigências específicas de uma rede de sensores sem
fios. O TinyOS é um sistema operativo que se baseia na execução de eventos, foi desenhado
especificamente para ser energeticamente eficiente e modular. Este sistema operativo permite
que um dispositivo de escassas capacidades contenha elevados níveis de concorrência, em
contraste com os sistemas operativos baseados em threads, que exigem a reserva de espaço
por cada contexto de execução.
O TinyOS é um sistema operativo open-source desenvolvido especificamente para plataformas
de redes de sensores sem fios. Trata-se de um sistema operativo embebido, escrito na
linguagem de programação nesC [10], sendo capaz de gerir tarefas e processos. O TinyOS é
desenvolvido por um consórcio liderado pela Universidade da Califórnia e pela Intel
Corporation.
Como já tinha sido referido, o TinyOS é um sistema operativo orientado a eventos, ou seja,
camadas de baixo nível têm a capacidade de enviar eventos às camadas acima. Assim, não
contém um ciclo de espera, uma vez que o tempo de espera de um evento é muito pequeno. O
TinyOS realiza a integração completa com hardware.
Este sistema operativo é igualmente dirigido a interrupções. Existem dois tipos de interrupções;
por relógio e por rádio. As interrupções por relógio acontecem quando se está a usar um
temporizador, quando este dispara é gerado uma interrupção no processador que é
interpretada pela camada mais baixa do sistema operativo, sinalizando às camadas de cima
até chegar a aplicação. O mesmo se passa nas interrupções por rádio, a aplicação é sinalizada
quando um pacote chega por rádio.
O TinyOS foi desenvolvido de modo a ser modular, isto é, cada componente é responsável
apenas pelos serviços que oferece. Então, um componente é uma peça do sistema que só
depende de outros componentes que lhe fornecem serviços. Isto faculta uma grande
flexibilidade ao sistema, pois cada componente é independente da aplicação, sendo possível
utilizar vários componentes ao mesmo tempo.
20
2.5.1. Modelo de Funcionamento
O modelo de execução do sistema operativo TinyOS 2.0 baseia-se em comandos e eventos
oriundos dos diferentes módulos. Os eventos são originados pela acção do hardware em
resposta de um comando. O sistema está desenvolvido para que a resposta de algum evento
detectado pelo hardware chegue à aplicação através de uma cadeia de eventos entre os
diferentes módulos. Então, uma aplicação em TinyOS é composta por um conjunto de
componentes ligados entre si e dois níveis de escalonamento.
Figura 6 - Modelo de funcionamento do TinyOS 2.0
O componente é composto por quatro partes inter-relacionadas: uma lista de comandos; uma
lista de eventos; uma frame e um conjunto de tarefas (Tasks). A frame trata-se de uma parte de
memória estática que contém o estado do componente. Por sua vez, os comandos e eventos
são funções chamadas através dos componentes que fornecem uma resposta de sucesso ou
falhanço. Os comandos requisitam execuções de mais baixo nível e não são bloqueáveis.
Sendo que cada componente de baixo nível possui controladores que correspondem aos
pedidos vindos da camada acima. Por outro lado, os eventos são invocados de modo a lidarem
directamente com os eventos de hardware directa ou indirectamente. Os componentes de
baixo nível são responsáveis por lidar com as interrupções de hardware, podendo executar um
pequeno processamento e gerar outros eventos. Assim, a execução de um componente
baseia-se no envio para baixo nível dos comandos e a geração de eventos para as camadas
acima.
As tarefas ou Tasks fornecem a capacidade de incluir a computação arbitrária num sistema
dirigido a eventos. Estas são atómicas em relação às outras tarefas mas não possibilitam a
preempção com os eventos. As Tasks podem ser chamadas em qualquer altura mas só são
21
executadas quando nenhuma outra operação está a correr. Em particular, no TinyOS 2.0 foi
adicionado ao sistema de preempção das tarefas um novo escalonamento capaz de
interromper uma tarefa não crítica começando por executar a tarefa de maior prioridade.
O TinyOS é, actualmente, composto por dois níveis de escalonamento. O primeiro nível é
responsável por gerir os comandos e eventos. As interrupções por hardware devem notificar as
aplicações o mais rapidamente possível, assim apenas é permitido efectuar pequenos
processamentos associados a estas. O segundo nível é responsável pelo controlo das tarefas.
Assim, quando uma tarefa é chamada dentro de um evento ou comando, esta é posta numa fila
de espera do tipo FIFO (First In First Out). Deste modo, as tarefas só são executadas quando
o processador não está a executar qualquer evento ou comando. Contudo, a execução destas
podem ser interrompidas por hardware. Quando não existe nenhuma tarefa, evento ou
comando a executar, o processador é colocado em modo sleep, enquanto os periféricos
continuam operacionais de modo a permitirem que o sistema possa acordá-lo quando alguma
interrupção por hardware ocorra.
O sistema operativo TinyOS pode ser classificado em três grupos de componentes [11] (ver
Figura 7). O primeiro grupo é constituído pelos componentes que formam uma fina abstracção
do hardware, por exemplo, o relógio. Os componentes que fazem parte do segundo grupo
actuam como substitutos de um hardware não existente, por exemplo, os componentes ao
nível do byte do rádio. E, por fim, o terceiro grupo é composto por componentes software de
alto nível responsáveis pelo controlo da aplicação.
Figura 7 - Camadas de abstracção
22
2.5.2. Linguagem de Programação nesC
A linguagem de programação nesC (network embedded systems C) [10] é uma extensão da
linguagem C desenhada especificamente para a plataforma de TinyOS. As bibliotecas e as
aplicações do sistema operativo TinyOS são escritas nesta linguagem de programação.
O nesC tem uma sintaxe semelhante à linguagem C, embora suporte o modelo deste sistema
operativo. Assim, fornece mecanismos de estruturação, ligação e nomeação de componentes
de software. Esta linguagem permite aos programadores construir de forma simples sistemas
simultâneos completos. Neste trabalho utilizou-se a versão 1.2 do nesC, a qual é um requisito
de instalação do TinyOS 2.0.
As aplicações construídas em nesC baseiam-se em ligações entre diferentes componentes
através de interfaces. Assim, um componente fornece e usa interfaces. Estas interfaces são
bidireccionais, contêm comandos e eventos. Os componentes fornecedores da interface
implementam os comandos, enquanto os utilizadores implementam os eventos.
A separação da definição das interfaces dos componentes fornecedores e utilizadores
possibilita a existência de interfaces standard, proporcionando componentes reutilizáveis e
mais flexíveis. Assim, um componente pode utilizar e fornecer o mesmo tipo de interface ou,
até mesmo, fornecer múltiplas instâncias da mesma interface.
Em nesC existem dois tipos de componentes: módulo e configuração. Os componentes de
módulo fornecem o código da aplicação e implementam uma ou mais interfaces. Os
componentes de configuração são usados para definir as interfaces que realizam as ligações
entre os diferentes componentes. Assim, todas as aplicações em nesC são descritas em alto
nível por um componente de configuração responsável pela ligação de todos os componentes
que são utilizados.
23
3. Hardware
O primeiro passo para o desenvolvimento de uma rede de sensores sem fios é a definição do
hardware que melhor se adequa ao ambiente e ao papel que a rede terá de desempenhar.
Existem diversas famílias hardware desenvolvidos especificamente para este tipo de redes por
pesquisadores da Universidade da Califórnia. Estes componentes de hardware foram
desenvolvidos tendo em conta principalmente o seu consumo energético e a sua dimensão,
são geralmente conhecidos como motes.
Nesta secção são apresentados os componentes de hardware utilizados no desenvolvimento
deste trabalho, nomeadamente, o mote MICAz e a placa de sensores MTS310, ambos
desenvolvidos pela empresa Crossbow Tecnology, Inc [12]. Pretende-se com esta referência
revelar as características que tiveram por base algumas escolhas adoptadas ao longo do
presente projecto.
A evolução do hardware específico para redes de sensores sem fios tem vindo a acompanhar o
crescente interesse por esta tecnologia. Na figura 8 pode-se verificar a crescente evolução num
curto espaço de tempo da tecnologia aplicadas aos motes. Pode-se conferir ainda a
impressionante evolução na dimensão dos motes Speck, aumentado deste modo, a gama de
aplicações desta tecnologia.
WeC (1998)
René (1999)
Dot (2000)
Mica (2001)
Mica2Dot (2002)
Mica2 (2002)
Telos (2004)
Speck (futuro)
Figura 8 - Evolução dos motes.
24
Actualmente, além dos utilizados neste trabalho, existem outros motes compostos por
diferentes componentes de rádio e micro controlador, por exemplo, MICA2, MICA2DOT,
TmoteSky e TELOSB. Os Motes MICA2 e MICA2DOT partilham com o MICAz o mesmo micro
controlador ATMega128L, no entanto têm componentes de rádios diferentes. Ao contrário, o
TELOSB difere do MICAz apenas o processador TI MSP430 e a possibilidade de ligação
directamente a um computador através do USB.
Neste capítulo são apresentados os diferentes aspectos dos motes MICAz utilizados no
desenvolvimento deste trabalho. Em 3.1 são descritas as características gerais; em 3.2 a
bateria; enquanto a placa da sensores MTS310 é abordada em 3.3.. Os parâmetros que podem
ser definidos e retirados no componentes de rádio CC2420 presente neste Mote são
aclarados em 3.4..
25
3.1. Características do MICAz
Este trabalho foi desenvolvido especificamente para aplicação em motes MICAz [13] da
Crossbow Tecnology, Inc. [12]. O mote MICAz, ou também conhecido por MPR2400, usa um
dispositivo de rádio frequência CC2420, seguindo o protocolo de comunicação ZigBee. Este
mote combina a tecnologia de rádio transferência ZigBee com um micro controlador
ATMega128L e uma memória flash de 512 kb.
Figura 9 - MICAz
Figura 10 - Esquema de funcionamento do MICAz
Micro Processador
Modelo ATMega128L Tipo 7.37 MHz, 8 bit ROM 128 kB SRAM 4 kB
Placa de Sensores
Tipo 51 pinos ADC de 10 Bit 0,7 V a 3 V de entrada
UART 2 Outras interfaces DIO, I2C
Rádio
Chip CC2420 Frequência 2400 MHz
Débito Máximo 250 kbits/sec Conexão MMCX
Memoria Flash Chip AT45DB014B
Conexão SPI Tamanho 512 kB
Fonte de Energia Tipo AA, 2x
Capacidade típica 2000 mA-hr
Tabela 1 - Características do MICAz.
26
A tecnologia de transferência de dados por rádio frequência ZigBee foi arquitectada para
interligar pequenas unidades de comunicação em áreas muito limitadas. Esta tecnologia sem
fios diferencia-se das outras como as WI-FI ou Bluetooth pelo seu baixo consumo e alcance
reduzido (aproximadamente 10 metros). Sendo deste modo ideal para o uso em aplicações no
âmbito das redes de sensores sem fios.
A potência de transmissão das antenas de rádio frequência pode ser modificada em tempo de
execução, tendo em conta sempre o seu consumo e as necessidades da aplicação e o
ambiente em que se insere. Assim, é possível fornecer potências entre os 0 dBm até -25 dBm.
O alcance e o desempenho são factores importantes no posicionamento e colocação da
antena.
27
3.2. Bateria
A alimentação do MICAz é feita por duas pilhas do tipo AA, no entanto qualquer outro tipo de
alimentação que forneça 2.7 VDC a 3.6 VDC pode ser utilizada [13]. Quando os recursos de
um mote são bem geridos, as baterias podem ter um tempo de vida até aproximadamente 17
meses, dependendo do tipo de gestão da bateria realizado pela aplicação. O acesso ao rádio e
ao processador é responsável pelo maior gasto de energia do sistema, nomeadamente, a
transmissão de dados e a escrita em memória. O incorrecto uso deste recurso leva a um
elevado consumo de energia e consequentemente à perda de tempo de vida do mote. Assim,
deve-se aumentar ao máximo o período em que cada recurso está no estado sleep.
Componente Consumo
Processador 0.0879 mA-hr
Rádio 0.0920 mA-hr
Acesso a Memória 0.0020 mA-hr
Placa de Sensores 0.0550 mA-hr
Total 0.2369 mA-hr
Tabela 2 - Consumo de cada componente do MICAz.
O MICAz possui uma referência interna de voltagem ( voltsVref 223.1= ) que pode ser
utilizada na gestão da voltagem da bateria. O micro controlador ATMega128L monitoriza a
voltagem da bateria através de um conversor analógico digital de 10 bits. O valor de saída
deste permuta de acordo com a mudança verificada na voltagem da bateria. De modo a
traduzir fielmente estes valores, o fabricante disponibiliza uma equação que traduz o valor lido
para unidades internacionais Volt.
SaidaADC
VV
ref
BAT
1024×= (1)
28
3.3. Placa MTS310
Este trabalho foi aplicado sobre o hardware da placa MTS310 desenvolvido pela Crossbow
Tecnology, Inc [14]. Trata-se de uma placa flexível com uma ampla capacidade de captar
fenómenos físicos variados. Tem a capacidade de detectar veículos, sismos de pequena
intensidade, movimento, ruído e outros fenómenos. A esta placa estão associados diversos
sensores, no entanto neste trabalho apenas são utilizados o sensor de temperatura e de
luminosidade, o microfone e o acelerómetro. Está associado igualmente um actuador de som
mais conhecido por Sounder ou Buzzer.
Figura 11 - Placa MTS310.
3.3.1. Sensor de Temperatura e Luminosidade
O sensor de temperatura é composto por uma simples fotocélula CdSe. Com um comprimento
de onda igual a 690 nm, o sensor de luminosidade atinge a sensibilidade máxima [14]. A
resistência da luminosidade varia de 2 kΩ quando exposto à luz e 512 kΩ no escuro. Os
valores podem ser convertidos em graus kelvin pela equação 2. Estes dois sensores partilham
o mesmo conversor analógico digital, não sendo possível realizar leitura simultânea dos dois
sensores.
[ ]3843 )ln(109)ln(1014381.21030705.1)(
1thrthr RR
KT××+××+×=
−−− (2)
SaidaADC
SaidaADCRthr
)1023(10000
−= (3)
29
3.3.2. Microfone
O microfone pode ser usado em dois tipos de aplicação: para gravar a acústica do ambiente ou
como detector de acústica (Tone Detector) [14]. A gravação da acústica ambiental requer que
os dados sejam gravados em memória flash, o que provoca um elevado consumo energético.
O circuito amplifica, em baixo nível, a tensão de saída do microfone. O valor do factor de
amplificação do circuito deve ser definido quando o microfone é inicializado. A saída do
microfone pode alimentar directamente o conversor analógico digital, sendo utilizado
geralmente em modo de gravação. Os dados recolhidos por este método são armazenados na
memória flash para serem posteriormente analisados.
O detector de acústica é alimentado por um filtro activo que se situa entre a saída do microfone
e o Tone Detector. O LM567 CMOS Tone Detector IC é responsável por transformar o sinal
analógico num sinal digital de dois níveis quando um som de 4 kHz está presente no ambiente.
Assim, é capaz de detectar os sons gerados pelo actuador de som.
3.3.3. Actuador de Som
O actuador de som é o único sistema actuador presente na placa de sensores MTS310
utilizada no desenvolvimento deste trabalho. O actuador de som, também denominado por
Sounder ou Buzzer, é um simples dispositivo piezoeléctrico ressonante que gera um som com
frequência de 4 kHz, a mesma frequência do Tone Detector do microfone [14]. A activação do
actuador de som é feita por uma linha de entrada por hardware que tem a capacidade de ligar
e desligar o actuador.
30
3.3.4. Acelerómetro
O acelerómetro presente nesta placa é um MEMS (Micro-Electro-Mechanical Systems) de dois
eixos. De acordo com o seu fabricante, tem uma corrente de consumo baixa (<1 mA) e uma
resolução de 10 bits [14]. Este sensor pode ser usado na detecção de inclinações, movimentos
e vibrações. Os sinais dos eixos são adquiridos por dois conversores analógicos digitais
diferentes (ADC 3 e ADC 4), possibilitando a realização de leituras simultâneas de ambos os
eixos.
Canais X (ADC 3), Y (ADC 4)
G-range ±2 g (1 g = 9.81m/s2 )
Largura de Banda DC-50Hz
Resolução 2 mG(0.002 G) RMS
Sensibilidade 167 mV/G ± 17 %
OffSet 2.5 V ± 0.4 V
Figura 12 - Características do Acelerómetro.
31
3.4. Componente de Rádio Frequência
O sistema operativo TinyOS 2.0 permite o acesso e a definição de algumas características do
componente de rádio frequência CC2420 utilizado neste trabalho, nomeadamente o RSSI
(Received Signal Strength Indication), LQI (Link Quality Indicator), RF Power (Radio Frequency
Transmission Power) e LPL (Low Power Listener). Em função destas características, as
aplicações podem facilmente adaptar-se e retirar o máximo de eficácia de cada nó da rede,
facilitando o incremento do tempo de vida da rede de sensores sem fios.
3.4.1. Received Signal Strength Indication (RSSI)
Actualmente, os modernos receptores de rádio são capazes de receber e amplificar sinais
muito fracos de um emissor distante. A sensibilidade do receptor define-se como o mais fraco
sinal que o receptor consegue receber com uma taxa de erro aceitável. O RSSI elimina a
necessidade da existência de hardware adicional nos pequenos dispositivos sem fios,
melhorando o desempenho aos níveis energético e de custo.
A variável RSSI (Received Signal Strenght Indication) é uma medida de força do sinal de rádio
recebido, referindo-se apenas à energia do sinal e não à qualidade deste. É uma métrica
genérica presente nos receptores de rádio comuns, normalmente invisível ao utilizador do
receptor de rádio, mas bastante relevante para utilizadores de tecnologias de redes sem fios.
Se um emissor distante é deslocado para mais próximo do receptor, a força do sinal transmitido
na antena receptora aumenta. A medição da força do sinal de recepção é um dos métodos de
determinação da qualidade da ligação.
Apesar de os sistemas de localização pela força de sinal, usando o protocolo IEEE 802.15.4
[15], despertarem grande interesse, existe, contudo, uma falta de caracterização dos factores
fundamentais que contribuem para a variação da força do sinal. Há diversos trabalhos que
abordam a caracterização da variação do sinal de rádio [16].
A medida de RSSI, disponibilizada pelo sistema operativo TinyOS 2.0, é um valor de 8 bits que
varia entre 0 e 255. O valor 1 indica a força mínima do sinal detectável pelo receptor, enquanto
o valor 0 indica a inexistência de sinal.
32
3.4.2. Link Quality Indicator (LQI)
O LQI (Link Quality Indicator) é um indicador de força e/ou de qualidade da ligação sem fios
entre os nós vizinhos. O LQI foi introduzido no protocolo de comunicação Zigbee e é fornecido
pelo componente de rádio CC2420, a exemplo do indicador RSSI. O LQI é representado por
um inteiro de 8 bits, podendo os valores variar entre 0 e 255, correspondendo respectivamente
ao valor de qualidade mais baixo e mais elevado que o receptor consegue detectar (entre -100
dBm e 0 dBm).
3.4.3. Radio Frequency Transmission Power (RF Power)
A potência de transmissão do rádio pode ser definida desde -25 dBm até 0 dBm (1 mW). O uso
do rádio em baixa potência é bastante vantajoso, nomeadamente na redução das interferências
e no baixo consumo energético de 17,5 mA para 8,5 mA. Deste modo, para aumentar o tempo
de vida de cada dispositivo, é necessário reduzir a distância entre eles, ou seja, tornar a rede
menos esparsa. A potência do componente de rádio frequência CC2420 é controlada por uma
variável de 8 bits, em que a correspondência entre os valores obtidos na leitura e os valores
em unidades dBm está apresentada na tabela 3.
RF Power
(Valores Obtidos)
RF Power
(dBm)
31 0
27 -1
23 -3
19 -5
15 -7
11 -10
7 -15
3 -25
Tabela 3 - Correspondência entre os valores lidos de RF Power de valores dBm.
33
3.4.4. Low Power Listening (LPL)
Nos protocolos de múltiplos saltos os nós intermédios da rede são responsáveis pela recepção
e propagação das mensagens para o nó destino. Em estado de escuta, o rádio consome quase
tanta energia como na transmissão. Assim, mesmo quando não existe comunicações, os
gastos de energia na procura do próximo pacote são muito elevados.
Actualmente, estão a ser realizados diversos projectos no âmbito do desenvolvimento de
protocolos de alto nível que reduzam a energia consumida pelo nó quando este não está a
transmitir. Uma das soluções existentes é a aplicação de janelas temporais onde são definidos
períodos de comunicação e outros em que o rádio está ocioso.
O sistema operativo TinyOS 2.0 fornece uma interface de controlo assíncrono do período de
funcionamento do componente de rádio CC2420, baseado na gestão dinâmica de energia
(DPM). Neste caso, a recepção não é sincronizada com a transmissão, obrigando o emissor a
enviar repetidamente a mensagem até que a janela de recepção do nó receptor esteja activa.
De referir que, quando o receptor aceita uma mensagem, a janela de recepção é prolongada
ligeiramente de maneira a possibilitar que outra mensagem, que esteja encadeada com a
primeira, seja igualmente recepcionada. Este mecanismo possibilita às aplicações de mais alto
nível o acesso directo ao período em que o componente de rádio está ligado.
A escolha do período de funcionamento é da responsabilidade do programador que desenvolve
a aplicação de alto nível. A escolha do valor depende do tipo de aplicação e dos seus
objectivos, sendo que o desempenho global da rede de sensores depende em grande parte da
escolha deste valor.
Neste trabalho optou-se pelo uso da variável de Duty Cycle para definir o período em que o
rádio deverá estar em modo sleep. A variável Duty Cycle define a percentagem do período
definido pelo TinyOS 2.0 de 5 segundos, em que o componente de rádio deverá estar ligado.
Na equação 4 está apresentado o factor de conversão utilizado pelo TinyOS 2.0 para definir o
período de sleep.
DutyCycle
DutyCycleepPeriodoSle
)10000(5 −⋅= (4)
34
4. Serviços de Monitorização Desenvolvidos
Este trabalho propõe uma camada de serviços aplicada a uma rede de sensores sem fios,
capaz de centralizar os serviços de comunicação e monitorização disponíveis no sistema
operativo TinyOS 2.0. Este trabalho apresenta um conjunto de serviços que actuam como uma
camada de middleware escondendo as particularidades do hardware.
A camada de middleware proposta pretende fornecer uma ampla gama de serviços, na qual a
rede sem fios é a fornecedora e a aplicação é o consumidor. A inexistência de uma camada
deste tipo provoca um elevado grau de dependência entre as aplicações e os diferentes
protocolos, tornando as implementações rígidas. Assim, as aplicações desenvolvidas sem o
auxílio de nenhuma camada de middleware apenas podem ser utilizadas nas redes para que
foram concebidas, isto é, sem auxílio desta camada, a adaptação de uma aplicação numa rede
de sensores para o qual não foi projectada é dificultada, uma vez que redes de sensores
diferentes podem conter características distintas como, por exemplo: processadores, sensores,
actuadores etc.
A camada de serviços apresentada isola as aplicações das características específicas da rede
e dos protocolos. Consente uma configuração dinâmica de rede de acordo com os requisitos
da aplicação, de modo a garantir o uso eficiente dos recursos de comunicação. O middleware
desenvolvido foi construído de forma a corresponder às características de robustez e tolerância
a falhas e aos requisitos mínimos de processamento e armazenamento. Fornece mecanismos
sensoriais de alto nível, comunica as tarefas para a rede, realiza a agregação de dados e
coordena os nós de modo a corresponder de forma eficaz aos pedidos.
Neste capítulo é apresentada a descrição geral do middleware proposto neste trabalho. Em
4.1. são explicados os diferentes serviços presentes na camada de middleware proposta. No
capítulo 4.2. são apresentados os diferentes comandos disponibilizados pela camada de
middleware; em 4.3. e 4.4. estão descritos os protocolos de comunicação utilizados e as
respectivas mensagens usadas. Em seguida, é apresentada uma descrição geral do
middleware que se divide em duas abordagens, uma direccionada para o nó sensor e outra
para o nó saída.
O nó sensor é abordado em 4.5. onde são descritos os componentes mais importantes do
middleware para este nó específico, nomeadamente, a integração dos protocolos de
comunicação e o modo como é realizada a aquisição de dados dos diferentes sensores. Em
4.6. é explicado o modelo do nó saída, abordando os seus protocolos e o modo como estes se
interligam.
35
4.1. Serviços Disponibilizados
Os serviços disponibilizados pela camada de middleware consideram as necessidades típicas
das aplicações, nomeadamente serviços de aquisição, actuação, comunicação e notificação.
Estes serviços são compostos por outros de mais baixo nível que providenciam o acesso aos
componentes de hardware. A junção dos serviços de aquisição, actuação, comunicação e
notificação fornecidos pelo TinyOS 2.0 representam um esforço transversal de economia
energética que resulta numa cooperação e simplificação entre os diferentes serviços
disponibilizados.
A camada de serviços possibilita o acesso a todos os serviços da rede (aquisição, actuação e
comunicação) através de três operadores diferentes: GET, SET e o REPORT. Cada operador
oferece um conjunto de serviços associados a um diferente comando local no mote.
• GET – Fornece o serviço de aquisição de dados, sendo possível definir o período de
aquisição, o numero de dados a adquirir e a escolha do tipo do modo de envios de
dados (envio único ou agregados).
• SET – Possibilita a definição de um valor de actuação ou a definição de uma
determinada variável de estado de algum componente presente no mote.
• REPORT – Permite a definição de notificações ou alarmes, definindo os valores limites
e o operador relacional para os quais a aplicação deverá ser notificada.
ComunicaçãoAquisição Actuação
Rede de Sensores sem Fios
Camada de Serviços
AplicaçãoAplicação
InterfaceSensorDomoBusF
Interface
NodeDomoBusF
Figura 13 - Camada de Serviços
36
A camada de middleware desenvolvida fornece à aplicação as interfaces bidireccionais
SensorDomoBusF e NodeDomoBusF. A interface SensorDomoBusF oferece o acesso aos
serviços de aquisição de dados e actuação através dos comandos (get, set, report)
responsáveis pelo acesso aos serviços, enquanto a interface NodeDomoBusF fornece o
acesso aos serviços de comunicação por intermédio dos comandos send e send_aggr.
Interfaces Comandos Eventos
SensorDomoBusF
• get
• set
• report
• reportCancel
• getDone
• setDone
• reporting
NodeDomoBusF
• send
• send_aggr
• rcv_get
• rcv_set
• rcv_report
Tabela 4 - Comandos e Eventos das interfaces
O serviço de aquisição de dados é disponibilizado pela interface SensorDomoBusF através do
comando get. O serviço de comunicação faculta, através da interface NodeDomoBusF, dois
tipos de envio de dados dos sensores: o envio da resposta a pedido (utilizando o comando
send) e o envio da resposta agregada (utilizando send_aggr da interface NodeDomoBusF).
Os eventos são chamadas de retornos (callbacks) que realizam o sentido ascendente da
informação dos diferentes componentes de hardware, conferindo à interface a característica de
bidireccionalidade. Os eventos notificam as camadas superiores quando um determinado
componente de hardware executa uma interrupção. Neste caso, a aplicação é notificada da
recepção via rádio dos operadores GET, SET e REPORT, através dos eventos rcv_get,
rcv_set, rcv_report, presentes na interface NodeDomoBusF, enquanto no caso dos sensores,
as leituras são remetidas pelos eventos getDone e setDone e as notificações de alarme pelo
reporting através da interface SensorDomoBusF.
No serviço de envio a pedido, a resposta é encaminhada para o nó saída da rede quando o
dado pedido é adquirido, isto faculta rapidez de resposta mas, no entanto, em caso extremo,
pode sobrecarregar a rede de pacotes levando a um grande desgaste dos nós do caminho.
Para evitar este desgaste da rede, foi criado o serviço de agregação de dados, quando a
37
aplicação requer a aquisição periódica de um dado sensor, a mensagem de resposta contém
até um máximo de seis dados adquiridos na mesma mensagem, em vez de conter um só dado.
Vantagens Desvantagens
• Evita a sobrecarga de pacotes a circular
na rede.
• Poupança energética dos principais nós
da rede.
• Aumento do tempo de vida da rede.
• Diminuição de envio de informação
redundante. Por exemplo: informação do
par (nó, sensor), cabeçalhos dos pacotes
etc.
• Maior tempo de resposta aos pedidos da
aplicação.
• Aumento do impacto da perda de
mensagens.
• Aumento do tamanho individual de cada
mensagem.
Tabela 5 - Vantagens e desvantagens do serviço de agregação de dados
Na tabela 5 estão apresentadas as diferentes vantagens e desvantagens do uso do serviço de
envio de dados agregados. A opção da utilização do uso deste serviço é da responsabilidade
da aplicação, pois a camada de middleware fornece serviços genéricos não podendo ser esta
camada a decidir o melhor serviço para cada aplicação específica.
O programador da aplicação deve ter em conta o impacto de cada factor positivo e negativo de
modo a decidir qual o serviço que melhor se encaixa às suas exigências. O uso do serviço de
agregação é aconselhado em cenários de recolha estatística em que o tempo de vida útil do
sistema é fundamental, por exemplo, na recolha estatística das condições ambientais
(temperatura, humidade etc.) de uma floresta de difícil acesso.
Esta camada de serviços fornece ainda serviços de acesso a variáveis de estado de diversos
componentes dos motes. Nomeadamente, as variáveis que contêm a informação da voltagem
da bateria e do rádio (RSSI, LQI, RF Power e Radio Duty Cycle). O acesso a estas variáveis é
feito, tal como na aquisição de dados dos sensores, pelo operador GET. Deste modo o acesso
é realizado colocando no parâmetro de entrada do operador GET o par de endereços
nó/característica. Uma vez que localmente as características de cada nó são tratadas de
maneira semelhante aos dados adquiridos pelos sensores, estas terão um endereço local à
semelhança dos sensores.
O acesso às diferentes características do nó são muito úteis para a gestão transversal de
energia uma vez que possibilita às camadas de software de nível superior o acesso a
38
característica de baixo nível, como é o exemplo do RF Power, que representa a potência de
transmissão do rádio.
O operador REPORT disponibilizado pela interface SensorDomoBusF implementa um serviço
de notificação semelhante a um alarme, realizando aquisições consecutivas de 200
milissegundos até ser atingido o tempo de cessação pré-definido. Este serviço notifica a
aplicação, por intermédio do evento reporting, a ocorrência de um determinado acontecimento
previamente definido através dos parâmetros do comando report da interface
SensorDomoBusF. Este comando fornece a capacidade de definir a notificação por tempo
limitado ou ilimitado conforme os interesses da aplicação, sendo assim é possível cancelar a
notificação pré definida em qualquer altura usando para tal o comando reportCancel. O envio
da notificação para o nó saída da rede é feito pelo comando send.
O serviço de actuação disponibilizado pela camada de middleware proposta efectua a definição
de uma variável, sobre a qual o actuador deverá actuar de modo a respeitá-la. Por exemplo, a
definição de um valor de temperatura. Devido à limitação física e computacional dos motes
disponíveis no mercado, não é possível efectuar, por intermédio destes, o controlo de
actuadores complexos como, por exemplo, o controlo do ar condicionado.
O nó saída tem a responsabilidade de informar a rede, por intermédio do protocolo de colecção
de dados, de que se trata de um nó desse tipo, assim este nó pode ter qualquer endereço de
rede. Todos os serviços disponíveis desta camada de middleware assumem a existência de um
único nó saída.
39
4.2. Operadores Básicos
A camada de middleware concebida visa obter o máximo de independência possível em
relação ao hardware. Assim, os operadores adquirem um papel fundamental na estrutura do
middleware, pois são eles os responsáveis pela normalização dos serviços disponibilizados.
Neste contexto, o trabalho desenvolvido centrou-se na busca da melhor representação de
todos os serviços de rede. Foi desenvolvida uma camada de serviços que apenas fornece à
aplicação três tipos de operadores diferentes para o acesso aos sensores. Os operadores
fornecidos pela camada de middleware desenvolvida são: GET, SET e REPORT. Estes foram
projectados de modo a abstrair as características específicas de cada nó e sensor.
Cada sensor da rede é alcançado pelo endereço de rede do nó e pelo endereço local do
sensor. Este par de endereços torna qualquer sensor presente na rede alcançável à aplicação.
Cada par nó/sensor é identificado univocamente, pois na rede não existe dois nós com o
mesmo endereço e num nó não existe dois sensores com o mesmo endereço local. Os
operadores são independentes do tipo de sensor, no entanto, existem sensores que não
disponibilizam certos operadores devido às suas características específicas.
Quando a aplicação requisita a aquisição de informação de um determinado sensor, essa
intenção é enviada para a rede utilizando o nó saída, ligado ao computador através da porta
série. O pedido vai progredindo na rede até encontrar o nó destino. Este nó encaminha o
pedido para o respectivo sensor através do seu endereço local. Após a aquisição dos dados,
estes são enviados finalmente para o nó saída.
GET SET REPORT
Luminosidade Período de Aquisição Número de Amostras Flag de Agregação
Duração
Operador comparativo Valor comparativo
Temperatura Período de Aquisição Número de Amostras Flag de Agregação
Duração
Operador comparativo Valor comparativo
Microfone Período de Aquisição Número de Amostras Flag de Agregação
Ganho Duração
Operador comparativo Valor comparativo
Acelerómetro Período de Aquisição Número de Amostras Flag de Agregação
Duração
Operador comparativo Valor comparativo
Sounder Período de funcionamento
Tabela 6 - Parâmetros de entrada dos operadores da camada de middleware.
40
4.2.1. Operador GET
O operador GET é reservado à aquisição de dados de um determinado sensor/nó. Este
operador é específico para aplicações de monitorização e aquisição de dados. Tem como
parâmetros, além do par de endereços, todos os eventuais pedidos de aquisição que a
aplicação pode requisitar, tais como, o período de aquisição e o número de dados que se
pretende adquirir.
Os dados de resposta a este operador são enviados assim que estes tenham sido adquiridos
correctamente. Os nós sensores têm responsabilidade de realizar o envio dos dados recolhidos
para o nó saída. Os factores energéticos e de largura de banda influenciaram a escolha dos
tipos de parâmetros de entrada escolhidos para este operador.
Os dados adquiridos podem ser enviados em agregação, dependendo da aplicação. A escolha
é enviada ao nó sensor através de uma flag passada como parâmetro do operador. Este modo
de envio específico é bastante útil para aplicações de monitorização que não exijam uma
resposta imediata dos dados adquiridos. Por exemplo, em aplicações agrícolas em que a
monitorização é feita ao longo de vários dias, não sendo necessário que cada dado recolhido
seja imediatamente enviado à aplicação. A agregação de dados potencia a poupança
energética da rede, diminuindo enormemente os pacotes a circular na mesma.
O operador GET pode ser usado no acesso a dados de funcionamento de um actuador. No
entanto, é natural que em determinados actuadores, esta utilização seja dispensada, a
exemplo do actuador de som presente na placa MTS310.
4.2.2. Operador SET
O operador SET é utilizado para definir um ou mais parâmetros específicos de um determinado
sensor de rede. Pode ser utilizado, por exemplo, na inicialização de um ganho de algum
sensor, ou actuar directamente sobre um actuador.
Os parâmetros de entrada do operador SET são o par de endereços que identificam o
nó/sensor e o valor que se pretende inicializar ou actuar. No caso particular deste trabalho, o
operador SET é utilizado para definir o ganho do microfone e para activar um sinal sonoro no
actuador de som da placa de sensores MTS310.
41
4.2.3. Operador REPORT
O operador REPORT possibilita à aplicação receber notificações quando um determinado
sensor confirma uma comparação pré-definida. Esta função é bastante útil em ambientes em
que é necessária uma rápida reacção à ocorrência de algum fenómeno, por exemplo, em
aplicações ligadas à segurança de edifícios, entre outras.
Além do par de endereços que identifica o sensor na rede, o operador tem como parâmetros de
entrada o período de varrimento do sensor, o período de funcionamento do REPORT, o valor a
ser comparado e o operando relacional. Quando o sensor reporta uma dada ocorrência pré
definida, o nó sensor envia esse alarme para o nó saída e consequentemente para a aplicação.
Os operandos relacionais utilizados neste operador são o “maior ou igual” (≥) e “menor ou
igual” (≤). Deste modo, possibilita à aplicação a recepção de uma vasta gama de notificações.
De salientar que à semelhança dos outros operadores, os parâmetros de entrada são iguais
para todos os sensores.
42
4.3. Protocolos de Comunicação
A comunicação é um aspecto fundamental para o correcto funcionamento de uma rede de
sensores sem fios. Os protocolos mais comuns são os de disseminação (paradigma “um para
todos”) e o de colecção (paradigma “todos para um”). A comunicação ponto a ponto
(paradigma “um para um”) é predominante em sistema de redes em que é utilizado na grande
maioria dos sistemas de internet, no entanto, nas redes de sensores esta comunicação é muito
pouco utilizada, exceptuando algumas aplicações de controlo que são muito funcionais e pouco
documentais.
Neste trabalho são utilizados dois protocolos de comunicação: a disseminação e colecção de
dados. Estes protocolos já fazem parte do sistema operativo TinyOS 2.0 e não necessitam de
qualquer alteração para serem englobados neste projecto. Depois de diferentes testes,
concluiu-se que estes protocolos apresentavam a fiabilidade necessária às exigências da
camada de middleware desenvolvido.
No contexto deste projecto, o protocolo de disseminação de dados é responsável por remeter
os pedidos da aplicação a todos os nós sensores, enquanto o protocolo colecção de dados
realiza a entrega dos dados adquiridos pelos diferentes nós sensores. Os serviços de
comunicação e aquisição de dados são acedidos por interfaces diferentes permitindo a
integração de outros protocolos de comunicação.
A gestão dinâmica de energia do componente de rádio CC2420 (Low Power Listening) ainda
não foi integrada formalmente nos protocolos de colecção e de disseminação fornecidos pelo
TinyOS 2.0. Assim, quando os componentes de rádio dos nós estão desligados muito tempo, é
normal que cause atrasos na propagação dos dados pela rede, podendo mesmo em casos
extremos perder-se os pacotes de comunicação.
43
4.3.1. Disseminação de Dados
O protocolo de disseminação de dados [17] é um protocolo básico de rede de sensores sem
fios, que permite à aplicação reconfigurar, pedir, questionar e reprogramar todos os nós da
rede. A disseminação fornece uma entrega fiável de dados, tornando a operação robusta a
desconexões temporárias ou perdas de pacotes típicas de uma rede deste tipo. Ao contrário
dos protocolos de inundação, a disseminação fornece fiabilidade na entrega de dados usando
uma aproximação contínua que pode detectar a falta de dados num determinado nó.
O protocolo de disseminação de dados é composto por uma parte de controlo (Control Traffic)
e outra de dados (Data Traffic). O tráfego de controlo tem de se manter ao longo do tempo de
vida da rede, ao contrário do tráfego de dados que pode ser separado devido à sua dimensão.
Este protocolo é bastante útil em redes de sensores, dado que possibilita ao administrador
injectar na rede pequenos programas, comandos ou configurações.
Devido à limitação da memória RAM nos dispositivos de rede, os dados do protocolo de
disseminação são descritos como “versões”. O protocolo de disseminação só propaga a
“versão” mais recente, isto permite que, quando um novo nó entra na rede, receba de imediato
a “versão” mais actualizada da mesma.
O protocolo de disseminação disponibilizado pelo TinyOS 2.0 e utilizado neste trabalho baseia-
-se em redes de Trickles [18]. O seu funcionamento é descrito pelos seguintes passos:
• Cada nó periodicamente envia dados em broadcast descrevendo a “versão” do código
que possui.
• O nó não executa qualquer acção se escutar uma “versão” idêntica à sua.
• O nó actualiza a “versão” da rede quando escuta uma “versão” mais antiga que aquela
que possui.
• O nó actualiza a sua “versão” se escutar uma versão mais recente a circular na rede.
No entanto, é necessário ter em atenção algumas limitações deste protocolo, uma vez que não
é possível a um nó desactualizado enviar uma nova actualização da “versão”. Para além do
facto anteriormente referido, quando dois nós realizam a actualização da “versão” em
simultâneo com valores diferentes, apenas um deles é correctamente difundido. Assim, é
necessário coordenar as actualizações de todos os nós da rede.
44
4.3.2. Colecção de Dados
A colecção de dados [19] é um processo de envio de dados de múltiplas fontes para um nó
saída, podendo ser denominado por covergecast. Muitas aplicações de aquisição de dados e
de detecção de eventos utilizam este protocolo para transferir os dados para fora da rede. Os
protocolos de colecção existentes diferem entre si através dos seguintes aspectos:
• Cálculo da qualidade da ligação.
• A escolha do próximo salto.
• O algoritmo em árvore, utilizado.
• A maneira de lidar com os ciclos infinitos (loops) e com a perda de ligações.
• A abstracção à comunicação que fornecem (datagram ou stream).
Existe uma grande diversidade de protocolos de colecção de dados divididos pelas
características apresentadas anteriormente. O protocolo MintRoute fornece um serviço de
datagram de melhor esforço (best-effort). Este protocolo serve de base para o protocolo
Collection Tree Protocol (CTP) [20] disponibilizado pelo TinyOS 2.0 e utilizado neste trabalho.
O protocolo MultiHopLQI é semelhante ao protocolo anterior mas utiliza um estimador de
qualidade da ligação e uma estratégia de gestão da tabela dos nós vizinhos mais simples que o
MintRoute.
O protocolo de colecção de dados baseia-se em árvores, sendo que os nós requerentes são os
nós saída e as folhas os nós sensores. Em particular, neste trabalho foi usado apenas um nó
saída. A colecção de dados de um nó de base é um requisito comum em redes de sensores
sem fios. A abordagem mais geral de uma rede de sensores sem fios é constituída por uma ou
mais árvores ligadas ao mesmo nó saída.
O protocolo colecção é responsável, em cada nó sensor, por enviar e retransmitir informação
dos diferentes sensores, de modo a reunir todos estes dados de rede num nó saída. Os nós
sensores estão, assim, encarregues de enviar os dados disponíveis para a árvore, de modo a
chegar até ao nó saída. Da mesma forma quando recebe dados originários de outros nós,
encaminha-os na direcção do nó saída. A rede de sensores sem fios pode ser composta por
vários nós de base comportando-se como múltiplas árvores, uma “floresta”. A entrega dos
pacotes de comunicação é realizada em múltiplos saltos a qualquer nó saída da árvore, trata-
se então de um protocolo anycast.
O protocolo colecção oferecido pelo TinyOS 2.0 e utilizado neste trabalho foi o CTP (Collection
Tree Protocol). Trata-se de um protocolo de endereço livre, isto significa que um nó não envia
um pacote para um nó saída em particular, em vez disso escolhe implicitamente o nó saída a
partir da selecção do próximo salto. Os nós geram rotas para a raiz usando um gradiente de
rotas (routing gradient). Assim, este protocolo usa um campo em cada nó ETX (Expected
45
Transmission) como gradiente da rota, sendo que a raiz tem o valor de zero. Assim, a escolha
do próximo salto é feita por cada nó, tendo por base a ligação com menor valor de ETX.
Não obstante, este protocolo também apresenta limitações, uma vez que não existem garantias
de entrega dos dados de uma forma ordenada ao nó saída, ou podendo mesmo não chegar.
Para além destes aspectos, os ciclos infinitos (loops) e os pacotes duplicados também se
podem constituir como um problema. Os ciclos infinitos acontecem quando o pacote de dados
possui um gradiente menor que o do nó receptor. A duplicação de pacotes ocorre quando um
ACK de confirmação de entrega, enviado pelo nó receptor não chega em tempo útil ao nó
emissor, assim, o mesmo pacote é reenviado, podendo conduzir a um crescimento exponencial
de duplicação. Esta situação pode ocorrer numa rede de sensores sem fios muito esparsa em
que as falhas de comunicação são uma constante.
A implementação do CTP é dividida em três partes:
• Estimador da qualidade da ligação – Responsável por estimar, num único salto, o ETX
da comunicação para os nós vizinhos à distância de um salto.
• Gerador de caminhos – Usa o estimador de ligação e a informação ao nível da rede
para decidir o próximo salto para um dos nós vizinhos.
• Gerador de encaminhamento - Responsável principalmente por encaminhar o tráfego
de dados e integrar os dados do nó na rede. Mantém a fila de pacotes a serem
enviados, decide quando e como os deverá enviar.
O estimador de qualidade da ligação utiliza dois mecanismos de cálculo distintos; o protocolo
LEEP (Link Estimation Exchange Protocol) [21] e os pacotes de dados. O protocolo LEEP é
usado pelos nós para estimar e trocar a informação sobre a qualidade de ligação para os nós
vizinhos.
Este estimador envia a todos os nós vizinhos pacotes LEEP, estes são usados para actualizar
a tabela de nós vizinhos através dos valores bidireccionais de ETX. A frequência de envio
destes pacotes LEEP é adaptada ao dinamismo da rede por um algoritmo semelhante ao
trickle [18] usado no protocolo de disseminação.
O gerador de caminhos é responsável pela escolha do próximo salto para a transmissão dos
dados. Este mantém a informação dos diversos valores de ETX do subconjunto dos nós
mantidos pela tabela de estimação da qualidade da ligação. Assim, o ETX do caminho é a
soma dos ETX das ligações ao longo de todo o caminho.
46
O gerador de encaminhamento assume as seguintes responsabilidades:
• Transmissão dos pacotes para o próximo salto retransmitindo-os, caso seja necessário,
e passar a informação do estimador da ligação.
• Decidir quando deverá efectuar a transmissão do próximo salto.
• Detectar inconsistências e informar o gerador de caminhos.
• Manter a fila de pacotes a transmitir, a qual pode ser composta por pacotes gerados
localmente ou pacotes encaminhados.
• Detectar duplicação de transmissões de um único salto causado pela perda de
acknowledgments (ack).
47
4.4. Estrutura das Mensagens
As estruturas das mensagens de dados desenvolvidas para este trabalho foram criadas de
modo a corresponder às necessidades típicas dos serviços de uma rede de sensores sem fios.
Neste trabalho optou-se por desenvolver três estruturas de dados de comunicação diferentes,
duas para comunicação dos dados recolhidos pelos sensores e outra para a submissão de
interesses da aplicação.
Os dados recolhidos pelos nós sensores podem ser comunicados para o nó saída, agrupando
vários dados na mesma mensagem, ou, simplesmente, colocando em cada mensagem um
único dado adquirido. Assim, cada tipo de comunicação é composto por distintas estruturas de
dados.
A opção de fornecer dois tipos de mensagens de envio de dados surge em resposta da
necessidade de implementação de um mecanismo que facultasse uma poupança energética e,
ao mesmo tempo, libertasse a rede de excesso de mensagens. Com a criação deste novo
serviço de agregação de dados, os programadores da aplicação podem escolher qual é o
serviço de comunicação de dados que melhor se adapta às características de cada aplicação.
4.4.1. Envio de Pedidos
A estrutura de dados de comunicação de 96 bits destinada ao envio de pedidos é composta por
quatro campos de identificação:
• O Source indica ao nó destino o endereço do nó que enviou o pedido;
• O campo Node ID identifica o nó da rede.
• O campo Sensor ID identifica o sensor a que o pedido se refere;
• O campo Operator informa o nó destino da actividade pretendida.
Figura 14 - Estrutura da mensagem de envio de pedidos.
48
A estrutura de mensagem representada na figura 14 foi desenvolvida de modo a ser capaz de
responder às necessidades de todos os operadores disponibilizados pelo middleware. No
entanto, o factor limitativo de energia e sobrecarga da rede levou a que o tamanho da
mensagem fosse o mais reduzido possível. Assim, foram englobados os campos Prop 1 e Prop
2, com significados diferentes para cada operador.
Desta forma, o campo Period corresponde ao período de aquisição de 32 bits, uma vez que
este valor dirige-se ao temporizador do sistema operativo; e os campos Prop 1 e Prop 2
correspondem a diferentes características de actividade, tendo, no entanto, a mesma dimensão
de 16 bits.
GET SET REPORT
Prop 1 Número de Dados Requisitados Valor da Definição Valor Limite de Sinalização
Prop 2 Flag de Agregação Operando Relacional
Tabela 7 - Parâmetros dos campos dinâmicos Prop 1 e Prop 2.
Conforme ilustra a tabela 7, o campo Prop 1 é utilizado pelos três operadores. Para os
operadores SET e REPORT, este campo adquire, respectivamente, o valor da definição e o
valor a partir do qual o nó sinaliza o evento para a aplicação. No operador GET o campo Prop 1
representa o número de dados a adquirir pelo sensor. O campo Prop 2 é usado pelo operador
REPORT para informar o nó sensor do tipo de operando que este deverá usar na sinalização
da aplicação. No operando GET, o campo Prop 2 da mensagem é utilizado para comunicar ao
nó se este deve enviar os dados agregados para o nó saída.
4.4.2. Envio de Dados Simples
A comunicação de cada dado individual recolhido pelos sensores é feita pelos nós,
preenchendo uma estrutura de dados que contém os campos BaseStation, Operator, Node ID,
Sensor ID e Value. A estrutura de envio de dados individuais tem a dimensão de 48 bits, destes
apenas 16 bits são destinados ao valor recolhido pelo sensor.
49
Figura 15 - Estrutura da mensagem de envio de dados simples.
O campo BaseStation de 8 bits é reservado para o endereço do nó saída que requereu estes
dados, o campo Operator indica o modo de funcionamento em que estes dados foram
recolhidos. O par de endereços (Node ID e Sensor ID) faculta a identificação unívoca na rede
do sensor que efectuou as leituras. O campo Value está reservado para o dado adquirido pelo
sensor. É este o campo que contém a informação relevante para a aplicação. Nesta estrutura
foi reservado um campo de 16 bits para o valor recolhido pelo sensor, porque todos os
sensores da placa MTS310 devolvem dados de 16 bits.
4.4.3. Envio de Dados Agregados
A estrutura de dados utilizada para o envio de dados agregados é composta pelo par de
identificação do sensor da rede (Node ID e Sensor ID), o modo de aquisição e o endereço do
nó saída. Esta estrutura tem a capacidade de agrupar, na mesma mensagem, até seis dados
recolhidos pelo mesmo sensor.
Figura 16 - Estrutura da mensagem de envio de dados agregados.
O tamanho total desta estrutura de dados é 128 bits. No entanto, para enviar a mesma
informação pelo envio simples (sem agregação), são necessários ao todo 576 bits. Assim, a
agregação de dados é ideal para aplicações que não necessitem que os dados sejam
imediatamente interpretados, por exemplo, para aplicações de recolha estatística.
50
4.5. Camada de Serviços do Nó Sensor
A aplicação do nó sensor é responsável pela união de todos os serviços de comunicação e de
aquisição disponíveis na rede. As interfaces NodeDomoBusF e SensorDomoBusF fornecem
respectivamente os serviços de comunicação e aquisição de dados. A aplicação efectua a
ponte entre os pedidos que chegam através da interface NodeDomoBusF e os dados
recolhidos pelos sensores que chegam pela interface SensorDomoBusF.
APLICAÇÃO
PLACA DE SENSORES (MTS300DOMOBUSC)
MÓDULO DE COMUNICAÇÃO
(NODEDOMOBUSC)
SensorDomoBusFNodeDomoBusF
SENSORES
GET
SET
REPORT
PROTOCOLOS DE COMUNICAÇÃO
SEND
RECEIVE
CARACTERÍSTICAS DE RÁDIO CC2420
ACTUADORES
GET
SET
GET
SET
Middleware
Figura 17 - Esquema descritivo dos serviços do nó sensor.
O componente mts300DomoBusC é responsável pela unificação de todos os serviços
disponíveis na placa de sensores MTS310. No entanto, o middleware desenvolvido neste
trabalho possibilita o uso de outras placas de sensores, sendo que, para cada placa, é
necessário desenvolver um componente específico capaz de efectuar a tradução entre os
serviços disponibilizados e os operadores fornecidos pelo middleware. Toda a comunicação do
nó é gerida pelo módulo de comunicação NodeDomoBusC, o qual é responsável pela gestão
dos protocolos de comunicação de uma forma eficaz e pelo acesso às diferentes
características do rádio CC2420.
As interfaces NodeDomoBusF e SensorDomoBusF desempenham um papel fundamental na
integração dos serviços fornecidos pela rede de sensores sem fios e a aplicação. São estas
que assumem a total responsabilidade do acesso aos diferentes serviços. A interface
NodeDomoBusF fornece todas as notificações de recepção de operadores e envio das
respostas. A interface SensorDomoBusF é responsável por fornecer os diferentes pedidos de
aquisição e actuação. Por exemplo, quando um operador é recepcionado pelo rádio, o módulo
NodeDomoBusC notifica através da interface NodeDomoBusF a aplicação. Esse pedido é
51
satisfeito pela aplicação, acedendo através da interface SensorDomoBusF ao serviço
correspondente. A resposta é encaminhada em sentido contrário à chamada até ao
componente de comunicação que utiliza a interface Send para enviar os dados através de um
protocolo da comunicação.
A ponte entre o acesso aos sensores e a aquisição de dados é da responsabilidade da
aplicação, isto permite um maior controlo de todos os pedidos recebidos e enviados, bem como
uma maior flexibilidade. Esta ponte não pode ser feita pelo middleware pois iria limitar em
grande parte o sistema, uma vez que podia existir aplicações que pretendessem aceder e tratar
os dados antes de os enviar. Deste modo, a camada de middleware proposta fornece uma total
responsabilidade às aplicações sobre o modo de resposta aos pedidos recebidos.
4.5.1. Serviços de Aquisição e Actuação
Uma rede de sensores sem fios baseia-se na recolha de dados dos diferentes nós sensores da
rede, sendo o acesso a esses dados de capital importância para a concretização do objectivo
final da aplicação.
A camada de serviços foi desenvolvida para englobar o acesso a todos os sensores/actuadores
da placa MTS310. Os operadores fornecidos pela rede (GET, SET e REPORT) são suportados
pelo sistema através da camada de middleware, que realiza a tradução dos operadores de
rede em comandos locais específicos para cada tipo de sensor.
APLICAÇÃO
SOUNDERMICROFONE
Get Set Report
Sensores Actuador
Get Report
ACELERÓMETRO
Get Set Report Get Report Get Set
mts300DomoBusP
Placa MTS310
SENSOR DE TEMPERATURA E LUMINOSIDADE
Figura 18 - Esquema descritivo do acesso os componentes da placa MTS310.
O controlador mts300DomoBusP tem a função de mediar os pedidos da rede para os
componentes dos sensores. Este fornece os comandos e eventos dos diferentes sensores
52
presentes na placa MTS310. Cada configuração dos sensores fornece diferentes interfaces
baseadas nos operadores de rede GET, SET e REPORT.
Uma vez que os sensores de temperatura e luminosidade partilham o mesmo conversor
analógico digital, limitando deste modo o acesso aos dados de cada um, optou-se por unificar o
tratamento dos pedidos aos sensores de temperatura e luminosidade, de modo a simplificar e a
tornar o acesso aos dados mais eficaz. O acelerómetro é composto por dois eixos, cada um
fornece o par de operadores GET e REPORT. O microfone fornece os três operadores pois,
além de fornecer os serviços de GET e REPORT, necessita da inicialização do ganho do
amplificador.
O actuador de som, ou simplesmente Sounder, fornece apenas o operador SET. Com o auxílio
de um temporizador do sistema, realiza a função de ligar/desligar o som, de modo a fornecer
um efeito sonoro do tipo sirene. Para o efeito sonoro está predefinido um factor de 0.5 e com
um período definido pelo operador SET. Quando a aplicação pretende desligar o Sounder,
basta colocar o valor nulo no campo data do operador GET.
Figura 19 - Componente de configuração mts300DomoBusC
O componente de configuração mts300DomoBusC define as interfaces de ligação aos
componentes que realizam a ligação aos sensores. Ao componente PhotoTempDomoBusC
estão ligadas duas interfaces getF de modo a aceder ao sensor de temperatura e
luminosidade. O componente AccDomoBusC também fornece quatro interfaces (duas getF e
reportF) devido ao facto do acelerómetro possuir dois eixos. O componente de
MicroDomoBusC é o único que fornece três interfaces distintas de acesso ao microfone, uma
vez que necessita de um valor de inicialização para o ganho (realizado através da interface
setF). Na tabela 8 estão descritos as funções de cada componente na camada de serviços
desenvolvida.
O microfone, por intermédio do módulo MicroDomoBusC, proporciona dois tipos de serviços; a
simples aquisição dos dados acústicos do ambiente, e o detector de som ou Tone Detector. A
53
aquisição de dados é feita por intermédio da interface getF, enquanto o serviço de notificação é
realizado pelo Tone Detector através do comando reportF. O Tone Detector notifica as
camadas superiores quando detecta um som de 4 kHz no ambiente, logo para este caso
particular, não é necessário definir as condições para as quais o serviço REPORT deverá
notificar a aplicação. O setF é responsável pela inicialização. É esta interface que define o valor
do ganho do amplificador do microfone. De realçar que esta inicialização demora
aproximadamente 1,2 segundos até que o microfone esteja pronto a adquirir informação.
As interfaces Mts300Sounder e Read (ver figura 18) são duas interfaces fornecidas pelo
sistema operativo TinyOS 2.0, estas têm a tarefa de efectuar o acesso ao actuador de som
(Sounder) e a voltagem da bateria (Voltage). De referir que os módulos Sounder e Voltage são
igualmente fornecidos pelo TinyOS 2.0, não sofrendo nenhuma intervenção neste trabalho.
Componente Descrição
mts300DomoBusC Providencia o acesso a todos os sensores da placa MTS310.
mts300DomoBusP Realiza a tradução dos todos os pedidos de acesso aos dados dos
sensores/actuadores da placa MTS310.
PhotoTempDomoBusC Efectua as necessárias ligações aos sensores de luminosidade e
temperatura.
PhotoTempDomoBusP Módulo de acesso aos diversos pedidos de luminosidade e temperatura.
reportPhotoTempC Providencia o acesso às ligações aos sensores de luminosidade e
temperatura para o operador REPORT
reportPhotoTempP Realiza a função REPORT nos sensores de luminosidade e temperatura
efectuando a tradução dos pedidos para a camada inferior
MicroDomoBusC Efectua as ligações de acesso às funcionalidades do microfone.
MicroDomoBusP Efectua a tradução dos pedidos ao microfone.
AccDomoBusC Efectua as ligações ao acelerómetro.
AccDomoBusP Efectua a tradução dos pedidos ao acelerómetro.
Tabela 8 - Descrição dos componentes utilizados
Na tabela 9 estão apresentados os comandos e eventos das interfaces utilizadas nos serviços
de aquisição e actuação da camada de middleware desenvolvida. Assim, as interfaces getF,
setF e report fornecem os comandos (get, set e report) e os respectivos eventos (getDone,
setDone e reporting).
54
Interfaces Comandos Eventos
getF • get • getDone
setF • set • setDone
reportF • report
• reportCancel
• reporting
Tabela 9 - Comandos e eventos das interfaces getF, setF e reportF
A interface getF fornece o serviço de aquisição de dados, esse serviço é acedido ao chamar o
operador GET, a resposta do hardware é consumada pelo evento getDone. A interface reportF
fornece ainda o comando reportCancel, este possibilita o cancelamento de uma determinada
notificação pré definida.
Os restantes serviços de actuação e de notificação de uma ocorrência pré definida são
realizados pelas interfaces setF e reportF, com os seus respectivos comandos e eventos
apresentados na tabela 9.
4.5.2. Serviços de Comunicação
A gestão e coordenação dos protocolos de comunicação usados neste trabalho são feitas pelo
controlador de comunicação NodeDomoBusP, representado na figura 20. O protocolo de
disseminação é responsável pela recepção dos pedidos no nó sensor através da interface
DisseminationValue. Em contrapartida, o protocolo de colecção utiliza a interface Send para
enviar os dados para o nó saída.
PROTOCOLO DE DISSEMINAÇÃO
PROTOCOLO DE COLECÇÃO
SERVIÇO DE COMUNICAÇÃO
Controlador de Comunicação(NodeDomoBusP)
SendReceive
DisseminationValue Send
REDE DE SENSORES SEM FIO
Figura 20 - Esquema de acesso aos protocolos de comunicação.
55
4.6. Serviços do Nó Saída
O nó saída, apesar de desempenhar um papel neutro neste sistema, desempenha um papel
fundamental para o funcionamento de uma rede de sensores sem fios. Este papel no entanto
pode ser desempenhado por outros dispositivos electrónicos (por exemplo, PDA) sendo
necessário que consigam comunicar correctamente com os protocolos de rede.
O nó saída realiza a ligação entre os serviços de rede e o exterior. Assim, neste nó é
implementado um esquema de encaminhamento de dados em ambos os sentidos; do exterior
para a rede e da rede para o exterior. O nó saída está ligado ao exterior através de uma
ligação por porta série, através do respectivo protocolo. A ligação entre o nó saída e a rede é
feita pelo rádio frequência CC2420, através do protocolo de disseminação.
PROTOCOLO DE DISSEMINAÇÃO
PROTOCOLO DE COLECÇÃO
PROTOCOLO PORTA SERIE
Controlador de comunicação(DomoBusRootC)
REDE DE SENSORES SEM FIOS
ReceiveDisseminationUpdate
Receive Send
NÓ RAIZ
Porta Série
Aplicação
Figura 21 - Esquema descritivo das ligações do nó saída.
De acordo com a figura 21, quando o exterior pretende utilizar um serviço da rede, este envia
os pedidos através da porta série para o nó saída; em seguida, são enviados para a rede
através do controlador de comunicação DomoBusRootC, utilizando o protocolo de
disseminação de dados, através da interface DisseminationUpdate. Esta interface permite
actualizar a “versão” de rede que contém os diversos pedidos.
56
O protocolo de colecção de dados é responsável pela reunião de todos os dados enviados
pelos nós sensores da rede. No módulo DomoBusRootC, quando o nó é inicializado, é definido
que este é o nó saída do protocolo de colecção de dados, fazendo que sejam encaminhados
para este nó todos os dados recolhidos e enviados através deste protocolo. Assim, este tipo de
nós apenas realiza a recepção através do protocolo de colecção de dados.
57
5. Programa de Demonstração
Com o objectivo de demonstrar o funcionamento da camada de serviços desenvolvido neste
trabalho, foi construído um programa, em linguagem de programação java, que possibilita a
interacção e visualização do estado da rede de sensores sem fios em qualquer altura.
Este programa dá ao utilizador uma flexível interacção com todos os operadores básicos e
respectivos parâmetros da camada de serviços (GET, SET e REPORT). É composto por uma
janela que permite definir os operadores, os respectivos parâmetros e a visualização do estado
da rede. Deste modo, a janela é dividida por dois grandes painéis; um painel onde é possível
definir os pedidos e outro destinado à visualização das respostas da rede de sensores sem
fios.
Figura 22 - Janela do programa de demonstração.
Cada painel apresentado nesta janela define um parâmetro diferente do pedido à rede. Os
operadores são definidos no painel Operator e o par nó/sensor, responsável pela identificação
unívoca do sensor na rede, é definido, respectivamente, em Node e Sensor. Na tabela 10 estão
apresentados todos os painéis e as respectivas descrições.
58
Painéis da janela Descrição
Sensor
• Neste painel é definido o sensor/actuador presentes na placa
MTS310.
Node Settings
• Este painel permite definir e consultar as características do rádio
CC2420 (Rssi, Lqi, RF Power e Rádio Duty Cycle).
• Permite consultar a voltagem da bateria (Voltage) e os nós estão
ligados à rede (Nodes Connected).
Operator
• Escolha dos três operadores básicos dos serviços do middleware
desenvolvido (SET, GET, REPORT).
Report Settings
• Este painel define o operando relacional do operador REPORT.
• Neste trabalho são oferecidos apenas dois: “o maior ou igual”
(Upper) e “o menor ou igual” (Lower).
Get Settings
• A agregação de dados apenas está disponível no operador GET
através da selecção do campo Aggregation presente na janela
do programa.
Interval
• No operador GET define o período de aquisição.
• No operador REPORT define o tempo de actividade das
notificações.
Num
Samples(GET)/Value(SET)
• No operador GET define o número de dados a adquirir pelo
sensor.
• No operador SET define o valor da actuação.
• No operador REPORT define o valor de comparação.
Node
• Neste painel é definido o nó a que se destina o pedido.
• Ao seleccionar o All Nodes o operador definido é enviado a todos
os nós da rede.
Tabela 10 - Descrição dos painéis da janela do programa de demonstração
Na tabela 10 é sintetizada a aplicação de todos os painéis da janela. Existem alguns que só
são utilizados em determinados operadores. Nomeadamente, no operador SET não é utilizado
o Interval uma vez que este serviço não realiza a aquisição de dados; enquanto no caso do
operador REPORT, o campo Num Samples(GET)/Value(SET) é ignorado. As características de
rádio são interpretadas como se de um sensor se tratasse. Deste modo são acedidas pelo
operador GET e definidas pelo operador SET (apenas o RF Power e o Rádio Duty Cycle).
59
Painéis disponíveis na janela do programa
Node Sensor/Node Settings Number of
Samples(GET)/Value(SET) Interval
GET
Nó
Sensor
Sensor/Actuador/Característica
Número de dados adquiridos Intervalo de aquisição
SET Valor de inicialização/actuação
REPORT Sensor Valor de comparação Duração
Tabela 11 - Tabela de parâmetros e os seus significados de cada operador.
Na tabela 11 estão descritos brevemente os parâmetros de cada operador. Os parâmetros
Sensor e Node Settings estão unidos na tabela porque a camada de serviços trata da mesma
forma os pedidos dirigidos aos sensores, ao actuador e às características do nó.
Os motes são programados para que, sempre que iniciem a sua actividade, notifiquem o
programa de demonstração a correr no computador, enviando uma mensagem de dados
simples contendo a informação que está a entrar na rede. Sempre que um nó saída entra na
rede, envia uma mensagem dirigida a todos os nós da rede de modo a notificá-los da sua
presença. Em resposta, os nós sensor ligados enviam uma mensagem de resposta para
informar, ao programa demonstrador, a sua existência.
60
6. Conclusão
No contexto do presente trabalho foi proposta uma camada de serviços que simplificam o
desenvolvimento de aplicações baseadas em redes de sensores sem fios. Para atingir este
objectivo foram estudados vários aspectos relacionados com as redes de sensores para que
deste modo os serviços desenvolvidos correspondessem às diferentes necessidades das
aplicações.
Os serviços desenvolvidos constituem uma camada de middleware de suporte às aplicações,
integrando os diferentes serviços de aquisição e comunicação de dados já disponibilizados
pela rede de sensores. Para além da unificação dos serviços, foram também criados novas
operações que unificam e simplificam os serviços de aquisição e comunicação no contexto do
TinyOS 2.0.
Os serviços de aquisição, actuação e notificação oferecidos pela camada de middleware
possibilitam o acesso aos dados dos sensores, a definição de variáveis e de alarmes através
dos operadores (GET, SET e REPORT). Os serviços de aquisição permitem vários tipos de
leituras dos dados recolhidos pelos sensores: leitura a pedido, leitura periódica e notificação
quando certos limites pré-definidos são atingidos. Os serviços de notificação e os serviços de
comunicação suportam agregação de dados o que permite reduzir o número de mensagens
que circulam na rede, oferecendo benefícios óbvios em termos de economia de energia. Deste
modo concluiu-se que estas funcionalidades oferecidas pela camada de middleware são
apropriadas ao uso numa gama diversificada de aplicações envolvendo a monitorização de
diferentes fenómenos físicos.
A camada de middleware desenvolvida também permite às aplicações inspeccionar o estado
da rede e participar activamente em diversos processos de configuração da mesma.
Especificamente, possibilita o acesso aos diferentes componentes de cada nó permitindo, por
exemplo, alterar características de funcionamento do rádio (CC2420) e conhecer o estado da
bateria do módulo. A utilização adequada destes serviços pode conduzir a uma maior eficiência
energética e, consequentemente, um maior tempo de vida da rede.
Para testar o funcionamento da camada de serviços desenvolvidos neste trabalho, foi
produzido um programa de demonstração em PC. Este programa possibilita a interacção e
visualização do estado da rede de sensores sem fios em qualquer altura. Este programa foi
testado numa rede de sensores sem fios composta por cinco MICAz, um deles
desempenhando o papel de nó de saída (sink). Os resultados obtidos pelos diversos testes
realizados através deste programa revelaram que os serviços respondem adequadamente aos
diferentes pedidos efectuados. No entanto, para valores do ciclo de funcionamento do rádio
(Radio Duty Cycle) menores de 80%, a fiabilidade de comunicação é bastante baixa, tendo
conduzido ao aumento do tempo de comunicação e por vezes à perda de mensagens. Assim, a
61
utilização da gestão dinâmica de energia pode gerar algumas falhas, especialmente quando se
coloca o rádio no estado de sleep por períodos longos, devendo por isso ser usada com algum
cuidado.
Gostaríamos de salientar que, para além dos serviços desenvolvidos, foi necessário também
intervir ao nível dos próprios módulos do TinyOS. Isso deveu-se ao facto de termos usado a
versão 2.0 que ainda não está completamente estabilizada e obrigou à realização de diversas
adaptações, nomeadamente aos módulos de acesso aos sensores da placa MTS310.
Devido às restrições temporais associadas ao presente trabalho e complexidade dos temas
envolvidos, não foi possível aprofundar os serviços de comunicação, nomeadamente a criação
de mecanismos de selecção do protocolo de comunicação que melhor se adapta a cada
pedido. Assim, seria muito interessante integrar serviços capazes de gerir o tráfego da rede e
oferecer várias alternativas de protocolos, mas isso deverá ser objecto de trabalho futuro.
Outra sugestão de desenvolvimento em futuros trabalhos refere-se à possibilidade de esta
camada de serviços permitir a existência de múltiplos nós de saída, bem como a capacidade
de expandir o número de nós para além da limitação actual de 255 endereços diferentes. Isto
pode ser efectuado com a criação de redes internas em que estas se comportam como redes
individuais comunicando entre si através dos nós de saída de cada uma.
Em seguida é apresentada uma lista de possíveis serviços que poderão ser desenvolvidos no
âmbito deste projecto em futuros trabalhos:
• Serviços que possibilitem a sincronização de todos os elementos da rede e assim criar
um tempo global de rede, permitindo deste modo associar o instante da aquisição aos
dados recolhidos.
• Integração de algoritmos de localização com base na interpretação dos diferentes
dados de rádio de modo obter a localização física de cada nó da rede.
• Introdução de técnicas de encriptação de dados nos protocolos de comunicação
melhorando-os deste modo em termos de desempenho e robustez.
Actualmente as redes de sensores sem fios constituem uma importante área de investigação.
Esta área possui enormes potencialidades e os seus desenvolvimentos podem ser aplicados
em múltiplos projectos e em diversos domínios. A capacidade de recolher e processar
grandezas físicas através de uma rede de sensores completamente autónoma, leva a que se
preveja a sua aplicação futura em diferentes áreas da sociedade. Espera-se com este trabalho
ter dado um contributo, ao facilitar o desenvolvimento de novas aplicações que usem redes de
sensores, e que isso contribua a sua maior divulgação e aplicação prática.
62
Referências
[1] S. Tilak, N. B. Abu-Ghazaleh, W. Heinzelman, “Infrastructure tradeoffs for sensor
networks”. In: Proceedings of the First ACM International Workshop on Wireless Sensor
Networks and Applications, USA, September 2002.
[2] I. Akyildiz, “Wireless sensor networks: a survey”. Computer Networks v. 38, n. 4, pp. 393–
422, Março 2002.
[3] I. Akyildiz, W. SU, Y. Sankarasubramaniam, E. Cayirci, ”A Survey on Sensor Network”,
IEEE Communications Magazine, Georgia Institute of Technology, August 2002.
[4] G. Werner-Allen, J. Johnson, M. Ruiz, J. Lees and M., Welsh, “Monitoring Volcanic
Eruptions with a Wireless Sensor Network”, European Workshop on Sensor Networks
(EWSN'05), January 2005.
[5] T. Simunic, L. Benini, P. Glynn, G. De Micheli, "Dynamic Power Management of Portable
Systems", MOBICOM 2000.
[6] T. Simunic, "Dynamic Management of Power Consumption", in Power Aware Computing,
editado por R. Graybill, R. Melhem, Kluwer Academic Publishers, 2002.
[7] C. Schurgers, M. Srivastava, “Modulation scaling for energy aware communication
systems”, Proc. International Symposium on Low Power Electronics and Design (ISLPED’01),
Huntington Beach, CA, pp.96-99, August 2001.
[8] Q. Gao, K. J. Blow, D. J. Holding, I. W. Marshall and X. Peng, ” Routing Analysis and
Energy Efficiency in Wireless Sensor Networks”, 6th IEEE CAS Symp. on Emerging
Technologies: Frontiers of Mobile and Wireless Communications, June 2004.
[9] V Raghunathan, C Schurgers, S. Park, M. B. Srivastava, “Energy-Aware Wireless
Microsensor Networks”, IEEE Signal Processing Magazine, March 2002.
[10] P. Levis, “TinyOS Programming”, July 2006.
[11] D. Gay, P. Levis, R. von Behren, “The nesC Language: A Holistic Approach to Networked
Embedded Systems”, Programming Language Design and Implementation (PLDI), 2003.
[12] Crossbow Technology, Inc., http://www.xbow.com
[13] CrossBow Technology, Inc, “MPR/ MIB User’s Manual”, Rev. A, Document 7430-0021-
07, September 2005.
63
[14] CrossBow Technology, Inc, “MTS/MDA Sensor and Data Acquisition Board, User’s
Manual”, Rev. B, Document 7430-0020-03, April 2005.
[15] “Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY)
Specifications for Low-Rate Wireless Personal Area Networks (WPANs)”, IEEE Computer
Society, IEEE Std 802.15.4™, 2006.
[16] D. Lymberopoulos, Q. Lindsey, A. Savvides, “An Empirical Characterization of Radio
Signal Strength Variability in 3-D IEEE 802.15.4 Networks Using Monopole Antennas”, in
EWSN 06, pp. 326–341, 2006.
[17] P. Levis, G. Tolle, “TEP 118: Dissemination”, Core Working Group, TinyOS Community.
[18] P. Levis, N. Patel, D. Culler, S. Shenker, "Trickle: A Self-Regulating Algorithm for Code
Maintenance and Propagation in Wireless Sensor Networks.", In Proceedings of the First
USENIX/ACM Symposium on Networked Systems Design and Implementation (NSDI 2004),
2004.
[19] R. Fonseca, O. Gnawali, K. Jamieson, P. Levis, ”TEP 119: Collection”, Core Working
Group, TinyOS Community.
[20] R. Fonseca, O. Gnawali, K. Jamieson, S. Kim, P. Levis, A. Woo, “TEP 123: The
Collection Tree Protocol (CTP)”, Core Working Group, TinyOS Community.
[21] O. Gnawali, “TEP 124: The Link Estimation Exchange Protocol (LEEP)”, Core Working
Group, TinyOS Community.
[22] S. Coleri, M. Ergen, T. John Koo, “Lifetime Analysis of a Sensor Network with Hybrid
Automata Modelling”, WSNA, September 2002.
[23] P. Levis, C. Sharp,” TEP 106: Schedulers and Tasks”, Core Working Group, TinyOS
Community.
[24] P. Levis, ”TEP 107: TinyOS 2.x Boot Sequence”, Core Working Group, TinyOS
Community.
[25] K.Klues, P. Levis, D. Gay D. Culler, V. Handziski, “TEP 108: Resource Arbitration”, Core
Working Group, TinyOS Community.
[26] P. Levis, “TEP 111: message_t”, Core Working Group, TinyOS Community.
[27] B. Greenstein, P. Levis, “TEP 113: Serial Communication”, Core Working Group, TinyOS
Community.
[28] P. Levis, “TEP 116: Packet Protocols”, Core Working Group, TinyOS Community.
65
Anexo
O middleware apresentado e o respectivo programa de demonstração foi desenvolvido
no simulador de Unix, em ambiente Windows, Cygwin. A instalação do sistema TinyOS sobre
Cygwin está explicada no site http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html.
A versão do sistema operativo TinyOS 2.0, ao momento da conclusão deste trabalho,
ainda não se encontrava completamente estável, nomeadamente os componentes de ligação à
placa de sensores MTS310 utilizada neste trabalho. Assim, na elaboração deste trabalho teve
de se adaptar alguns componentes pertencentes ao sistema, componentes esses que podem
ser encontrados na directoria /mycomponets. Para que o middleware desenvolvido possa ser
executado correctamente, é necessário seguir os dois passos seguintes:
• Copiar a directoria /mycomponets para a directoria do sistema opt/tinyos-2.x/tos.
• Substituir o ficheiro .platform presente na pasta opt/tinyos-2.x/tos/platforms/micaz pelo
ficheiro com mesmo nome presente na pasta do trabalho.
A compilação e instalação dos Motes são realizadas pelos métodos apresentados na
tabela abaixo. Quando é instalado o programa compilado para o Mote é definido o seu
endereço de rede. No entanto, deve-se evitar definir mais do que um nó para cada endereço,
os endereços são definidos por uma variável de 8 bits sendo que pode representar 255
endereços diferentes.
Comando Descrição
make micaz Compilação com as características do MICAz.
make micaz install, <número do nó>
ex: make micaz install,1
Compilação e instala no Mote, definindo o seu
endereço de rede.
make micaz, reinstall, <número de nó> Instala no Mote o programa já compilado
anteriormente.
make micaz docs Compilação e a criação gráfica de todas as
ligações