1. 2012
INTRODUÇÃO ÀS
REDES DE SENSORES
SEM FIO
Instrutor: Matheus Araújo
2. Autores
2
Matheus Lima de Araújo
Graduando em Ciência da Computação pela Universidade do Estado do
Rio Grande do Norte (Campus de Natal, Núcleo de Santa Cruz), realizando
trabalho de conclusão de curso na área de Redes de Sensores Sem Fio.
Lattes: http://lattes.cnpq.br/9287919922944647
Marianna Angélica de Araújo
Graduanda em Ciência da Computação pela Universidade do Estado do
Rio Grande do Norte (Campus de Natal); Bolsista de Iniciação Científica do
CNPq; participante do Grupo de Sistemas Distribuídos (GSiD-UERN).
Lattes: http://lattes.cnpq.br/4356983590666266
Dayanne Kelly Freire da Rocha Escalé
Mestre em Ciência da Computação pela Universidade do Estado do Rio
Grande do Norte; participante do Grupo de Sistemas Embarcados e de
Tempo Real (GSET-UERN); professora auxiliar no Departamento de
Ciência da Computação na UERN-Natal.
Lattes: http://lattes.cnpq.br/1348329479058843
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
3. O que são Redes?
3
O que é uma Rede Ad-hoc?
O que são sensores?
O que é uma Rede de Sensores Sem Fio?
Vale a pena trocar redes de sensores
cabeadas por redes de sensores sem fio? Por
quê?
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
4. Redes de Sensores Sem Fio
4
Motivação Limitação de
Definição recursos
Características Possibilidade de
falhas
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
5. Hardware Básico dos nós
5
sensores
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
6. Hardware Básico dos nós
6
sensores
A Figura 1.2 mostra os componentes básicos de um nó
sensor descritos em [LOUREIRO et al., 2003; VIEIRA,
2004], sendo eles o transceptor, responsável por realizar a
comunicação sem fio. O microprocessador, que responde
pela capacidade de processamento no nó. Quanto à
memória, o microcontrolador possui uma interna e, na
maior parte das vezes uma memória externa e secundária
também está presente no nó. Os sensores são os
responsáveis por realizar o mapeamento (registro) de
eventos do mundo real em dados que serão coletados e
utilizados pela rede. A fonte de alimentação dos
componentes do hardware normalmente é composta por
uma bateria (recarregável ou não) que pode chegar a ter o
tamanho de uma moeda. Esta fonte de alimentação é um
dos itens mais importantes no contexto das redes de
sensores, pois a durabilidade da RSSF depende da energia
disponível.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
7. Características das RSSF
7
Endereçamento dos nós sensores
Agregação de dados
Mobilidade dos sensores
Restrições dos dados coletados
Quantidade de nós sensores
Tipo de comunicação: Broadcast
Limitação de recursos
Dependência da aplicação
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
8. Critério Classificação Descrição
Composição Heterogênea Os nós apresentam diferentes capacidades de hardware.
Classificações das RSSF Homogênea Os nós podem ser idênticos quanto ao hardware, e por vezes podem
apresentar softwares diferentes.
Organização Plana Os nós da rede não formam grupos neste tipo de organização.
Hierárquica A organização é feita agrupando os nós em clusters. Em cada cluster
8 existirá um cluster-head que pode ser eleito pelos demais nós. Os
clusters podem se organizar em hierarquias.
Distribuição Regular Os nós da rede são distribuídos de maneira uniforme na área
monitorada.
Irregular Os nós são distribuídos de maneira não uniforme na área monitorada.
Mobilidade Estática Os elementos depois de depositados permanecem imóveis durante o
período de vida da rede.
Dinâmica Os nós podem se deslocar depois de depositados para o monitoramento
(apresentam mobilidade).
Densidade Balanceada A quantidade de nós presentes por área é semelhante em toda a área de
monitoramento.
Densa A rede apresenta uma alta quantidade de nós por área, sendo esta
concentrada.
Esparsa A rede apresenta uma baixa quantidade de nós por área.
Controle Aberta A rede realiza apenas o monitoramento na região.
Fechada A rede realiza o monitoramento e também atua na região.
Coleta de dados Periódica Em intervalos de tempo regulares são coletados dados na rede.
Contínua A coleta de dados é feita continuamente, sem pausas.
Reativa A coleta de dados é realizada apenas quando um evento ocorre ou ainda
quando o observador solicita.
Tempo-real Tem como objetivo a coleta da maior quantidade de dados possível
dentro do menor intervalo de tempo.
Disseminação Programada A disseminação dos dados ocorre em intervalos de tempo programados.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Contínua Os dados são disseminados constantemente.
Sob-demanda Os dados são disseminados quando ocorrem
Matheus A. eventos ou quando o
observador realiza consulta.
9. Classificações das RSSF
9
Critério Classificação Descrição
Composição Heterogênea Os nós apresentam diferentes capacidades de
hardware.
Homogênea Os nós podem ser idênticos quanto ao
hardware, e por vezes podem apresentar
softwares diferentes.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
10. Classificações das RSSF
10
Critério Classificação Descrição
Organização Plana Os nós da rede não formam grupos neste tipo
de organização.
Hierárquica A organização é feita agrupando os nós em
clusters. Em cada cluster existirá um cluster-
head que pode ser eleito pelos demais nós. Os
clusters podem se organizar em hierarquias.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
11. Classificações das RSSF
11
Critério Classificação Descrição
Distribuição Regular Os nós da rede são distribuídos de maneira
uniforme na área monitorada.
Irregular Os nós são distribuídos de maneira não
uniforme na área monitorada.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
12. Classificações das RSSF
12
Critério Classificação Descrição
Mobilidade Estática Os elementos depois de depositados
permanecem imóveis durante o período de vida
da rede.
Dinâmica Os nós podem se deslocar depois de
depositados para o monitoramento (apresentam
mobilidade).
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
13. Classificações das RSSF
13
Critério Classificação Descrição
Densidade Balanceada A quantidade de nós presentes por área é
semelhante em toda a área de monitoramento.
Densa A rede apresenta uma alta quantidade de nós
por área, sendo esta concentrada.
Esparsa A rede apresenta uma baixa quantidade de nós
por área.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
14. Classificações das RSSF
14
Critério Classificação Descrição
Controle Aberta A rede realiza apenas o monitoramento na
região.
Fechada A rede realiza o monitoramento e também atua
na região.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
15. Classificações das RSSF
15
Critério Classificação Descrição
Coleta de Periódica Em intervalos de tempo regulares são coletados
dados dados na rede.
Contínua A coleta de dados é feita continuamente, sem
pausas.
Reativa A coleta de dados é realizada apenas quando
um evento ocorre ou ainda quando o
observador solicita.
Tempo-real Tem como objetivo a coleta da maior quantidade
de dados possível dentro do menor intervalo de
tempo.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
16. Classificações das RSSF
16
Critério Classificação Descrição
Disseminação Programada A disseminação dos dados ocorre em
intervalos de tempo programados.
Contínua Os dados são disseminados constantemente.
Sob- Os dados são disseminados quando ocorrem
demanda eventos ou quando o observador realiza
consulta.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
17. Pilha de Protocolos das RSSF
17
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
18. Áreas de Aplicação das RSSF
18
Militar
Medicina/Biologia
Controle Industrial
Ambiente
Tráfego
Segurança
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
19. Sistema Operacional TinyOS
19
Em [RUIZ et al., 2004] uma descrição sobre o
TinyOS é feita, sendo esta seção baseada no
conteúdo do artigo citado. O sistema operacional
TinyOS é simples, compacto baseado em eventos
e foi projetado para ser utilizado essencialmente
em Redes de Sensores Sem Fio, atendendo às
suas necessidades como operações intensivas de
concorrência com baixo poder de hardware (que
possui limitações de recursos como memória de
programa semelhante a 8KB e/ou memória RAM
na faixa de 512 bytes) e economia de energia. A
linguagem de programação adotada pelo TinyOS
é a nesC (Pronuncia-se “NES-see”).
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
20. Histórico do TinyOS
20
Data Acontecimento
1999 Primeira plataforma TinyOS (WeC) e implementações do
Sistema Operacional são desenvolvidos em Berkeley.
2000 Berkeley lança a plataforma rene e parceiros como a
Crossbow Inc., passam a produzir hardware. É
disponibilizada ao público através do SourceForge a versão
0.43 do TinyOS. As versões anteriores à 1.0 do TinyOS são
uma mistura de scripts em C e Perl.
2001 Berkeley desenvolve a plataforma mica e libera ao público a
versão 0.6 do TinyOS.
Fev.2002 Berkeley distribui 1000 nós mica para outros participantes
do projeto NEST (Network Embedded Systems Technology).
Abr.2002 Um trabalho sobre a linguagem de programação nesC é
iniciado em colaboração entre a Intel Research e a UC
Berkeley.
Set.2002 É lançado a versão 1.0 do TinyOS implementado em nesC.
Ago.2003 A versão 1.1 do TinyOS é lançada, tendo novos recursos em
nesC, incluindo dados de detecção de corrida.
Set. 2003 – O TinyOS adota um processo de liberação periódica menor.
Dez.2005
Jun.2004 Os grupos de trabalho para os próximos passos do TinyOS
são formados baseados em experiência de porta-lo para
ERBASE 2012 - Introdução as Redes de Sensores Semos trabalhos para a versão
novas plataformas. Iniciam-se Fio -
2.0. Matheus A.
21. Histórico do TinyOS
21
Data Acontecimento
Jul.2005 Concluído o projeto NEST.
Dez.2005 Lançada a versão 1.1.15 do TinyOS, sendo esta a
ultima versão 1.1.
Fev.2006 É lançado a versão beta1 do TinyOS 2.0 no 3º TinyOS
Technology Exchange em Stanford, CA.
Jul.2006 Lançado o beta2 do TinyOS 2.0.
Nov.2006 O TinyOS 2.0 é lançado na Conferência SENSYS em
Boulder, CO.
Abr.2007 Durante o 4º TinyOS Technology Exchange em
Cambridge, MA, a versão 2.0.1 do TinyOS é lançada.
Jul.2007 Lançado o TinyOS 2.0.2. Iniciados os trabalhos para o
TinyOS 2.1.
Ago.2008 TinyOS 2.1.0 é lançado.
Abr.2010 É lançada a versão 2.1.1 do TinyOS.
Jul.2010 O TinyOS é movido de servidor, passando a ser
hospedado no Google Code, parte da transição incluiu
a colocação de todas as partes do TinyOS sob uma
nova licença BSD (no SourceForge várias licenças
compatíveis foram utilizadas).
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
22. O que é TinyOS?
22
O TinyOS é um sistema operacional simples,
gratuito e de código aberto, baseado em
componentes e feito para trabalhar com
Redes de Sensores Sem Fio. O sistema
operacional faz uso de eventos e de um
conjunto de serviços.
Para se aprofundar mais no TinyOS, acesse:
http://docs.tinyos.net/index.php/Main_Page
Ou http://www.tinyos.net
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
23. Linguagem nesC
23
Programar para TinyOS pode ser um pouco
trabalhoso no início visto que é necessário
aprender uma nova linguagem denominada
nesC, sendo esta uma extensão da linguagem
de programação C. Além de ser uma nova
linguagem, o nesC foi criado incorporando as
características do TinyOS como os conceitos e
modelo de execução, e ainda obedece um
novo paradigma (orientado a eventos).
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
24. Linguagem nesC
24
Desafios na construção de aplicações para RSSF:
Robustez: Assim que a rede for instalada no ambiente, ela deve
permanecer funcionando sem intervenção humana, por meses
ou até anos.
Baixo consumo de recursos: Os nós sensores possuem um
hardware limitado, e dentro dessa limitação estão inclusas uma
baixa quantia de memória RAM e uma bateria com vida útil
limitada.
Diversas implementações de serviços: As aplicações devem
poder escolher entre múltiplas implementações de serviços,
como, por exemplo, roteamento multihop.
Evolução do hardware: O hardware dos nós sensores estão
sempre evoluindo; As aplicações e a maioria dos serviços
devem ser portáveis pelas gerações de hardware.
Adaptabilidade aos requerimentos das aplicações: As aplicações
têm diversos requerimentos diferentes em termos de tempo de
vida, comunicação, sensoriamento, etc.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
25. nesC – Processo de
25
Compilação
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
26. nesC – Processo de
26
Compilação
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
27. Componentes e Interfaces
27
O nesC possui dois tipos de componentes,
sendo eles:
Módulos. Componentes que são implementados
com código na linguagem nesC.
Configurações. Componentes que são
implementados pela ligação entre os
componentes.
Interfaces. São componentes que devem ser
implementados nos módulos.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
28. Instalação do Ambiente de
28
Desenvolvimento
Para trabalhar com o TinyOS são necessários
basicamente:
O código-fonte do TinyOS
O compilador nesC
O compilador gcc específico para a plataforma de
Hardware
Bibliotecas
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
29. Instalação do Ambiente de
29
Desenvolvimento
A instalação do ambiente é simples e pode ser
realizada seguindo alguns passos:
Antes de tudo deve-se remover qualquer
repositório antigo do TinyOS, que por ventura
esteja no arquivo /etc/apt/sources.list.
Adicionar o repositório do tinyOS na lista de
pacotes do sistema, editando o arquivo
sources.list:
cd /etc/apt edit sources.list
Inserir a linha a seguir no final do arquivo
sources.list
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu
lucid main
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
30. Instalação do Ambiente de
30
Desenvolvimento
Atualize o conteúdo do gerenciador de
pacotes com o comando:
sudo apt-get update
Instale a ultima versão do tinyOS. Neste caso
vamos utilizar a ultima versão disponível, a
tinyos-2.1.1.
sudo apt-get install tinyos-2.1.1
Aceite o conteúdo das duas permissões, e
edite o CLASSPATH do Java com o seguinte
comando:
edit /opt/tinyos-2.1.1/tinyos.sh
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
31. Instalação do Ambiente de
31
Desenvolvimento
Encontre a linha:
export
CLASSPATH=$TOSROOT/support/sdk/java
Troque ela pela seguinte:
export
CLASSPATH=$TOSROOT/support/sdk/java/tin
yos.jar:.
Para concluir, edite o arquivo .bashrc,
fazendo:
edit ~/.bashrc as Redes de SensoresMatheus A.-
ERBASE 2012 - Introdução Sem Fio
32. Instalação do Ambiente de
32
Desenvolvimento
No final do arquivo, insira a linha a seguir:
source /opt/tinyos-2.1.1/tinyos.sh
A instalação já está realizada, e deve-se dar
permissão de escrita para a pasta /opt/tinyos-
2.1.1/, com o seguinte comando:
sudo chmod 775 -R ./tinyos-2.1.1/*
Obs.: Onde está escrito edit deve ser
substituído pelo editor de texto a ser utilizado
e de sua preferência, como o VIM ou o GEDIT.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
33. Simulador TOSSIM
33
Segundo [RUIZ et al., 2004] o TOSSIM (TinyOS
SIMulator) é um simulador para eventos para
RSSF que utilizam o TinyOS. Em vez de compilar
o programa para ser utilizado em um nó sensor, o
programador compila o mesmo para o ambiente
do TOSSIM, desta forma podendo executar o
código no próprio computador executando o
TOSSIM. Desta maneira podendo deputar, testar,
e analisar o código gerado em ambientes
controlados. Devido ao TOSSIM ser executado no
computador, podem ser utilizadas ferramentas de
desenvolvimento para examinar os códigos.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
34. Desenvolvimento de aplicações
34
em nesC
Todo programa em nesC é formado por componentes. A
seguir estão descritos os principais componentes básicos.
Qualquer aplicação em nesC necessita ao menos dos
seguintes arquivos:
Makefile
Configuração
Módulo
Cada um destes representa um arquivo, e todos eles estão
armazenados no mesmo diretório.
Nome do Arquivo Descrição
Makefile Makefile
testC.nc Arquivo de Configuração
testP.nc Arquivo do Módulo
test.nc Arquivo de Interface
ERBASE 2012 - Introdução as Redes de Sensores Sem Fiode Cabeçalho
test.h Arquivo -
Matheus A.
35. Aplicação Blink
35
No aprendizado da maioria das linguagens de
programação, sempre se inicia pela aplicação
mais básica da linguagem, que costuma ser o
Hello World. No caso da linguagem nesC não
existe um Hello World, mas em contrapartida
existe um programa de teste que se caracteriza
por ser o primeiro programa no aprendizado do
nesC, este programa é o Blink. O conteúdo desta
seção é baseado no tutorial disponibilizado no
site do TinyOS
(http://docs.tinyos.net/tinywiki/index.php/Getting_
Started_with_TinyOS) e baseado no modelo de
sensor mica2 da empresa Crossbow
(http://www.xbow.com) como plataforma de
desenvolvimento. de Sensores Sem FioA.-
ERBASE 2012 - Introdução as Redes
Matheus
36. Compilando a aplicação
36
Para realizar o processo de compilação da
aplicação de uma aplicação TinyOS é
necessário ter instalado o TinyOS como
descrito nas seções anteriores, tendo ele
instalado, basta ir no diretório da aplicação e
fazer uso do comando make. A sintaxe a ser
utilizada é make [plataform], sendo plataform
a representação do hardware a ser utilizado
no sensor. Neste caso está sendo utilizado o
modelo de sensor mica2. Logo deve-se
compilar da seguinte maneira: make mica2.
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.
37. Obrigado
37
Contatos: Referências
@matheusrn89
ERBASE 2012 - Introdução as Redes de Sensores Sem Fio -
Matheus A.