90mm x 240mm
40mm
167 x 240mm
17mm
167 x 240mm
Redes de Sensores Sem Fios
M
Y
CM
MY
Através dos vários exemplos resolvidos, sumários da matéria abordada e exercícios teóricos e práticos, construa e desenvolva os seus programas em Python. Para estudantes e profissionais.
CY
CMY
K
Este livro, com múltiplos exemplos práticos, apresenta as bases e os conceitos que permitem compreender e aplicar as várias fases do desenvolvimento iterativo de uma boa interface utilizador.
Principais aspetos das redes de sensores sem fios abordados no livro:
. . . . . .
Este livro tem por objetivo proporcionar uma introdução, abrangente e atualizada, às redes de sensores sem fios, abordando os seus fundamentos, os protocolos utilizados, as principais tecnologias, os seus sistemas operativos e as correspondentes ferramentas de desenvolvimento. Adequado quer como livro de texto para apoio a alunos das disciplinas de licenciatura ou mestrado, quer como referência para profissionais no ativo, quer ainda para autoestudo, este livro propicia não apenas uma sólida formação teórica, essencial para a compreensão das matérias, como também uma abordagem prática de todas as questões essenciais, apoiada em exercícios práticos com exemplos resolvidos e exercícios abertos para execução em laboratório.
Conceitos base; Camadas protocolares das redes de sensores sem fios; Tecnologias para redes de sensores sem fios; Aspetos complementares; O sistema operativo TinyOS; O sistema operativo Contiki.
Jorge Sá Silva
Redes de Sensores Sem Fios
Professor Auxiliar no Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra e Investigador do Grupo de Comunicações e Telemática do Centro de Informática e Sistemas da Universidade de Coimbra. As suas áreas de investigação incluem as redes de sensores sem fios, a mobilidade e os protocolos de redes. Participa ativamente em várias iniciativas e projetos europeus, e tem várias publicações nacionais e internacionais. É, ainda, membro da Ordem dos Engenheiros e do Institute of Electrical and Electronics Engineers.
Ricardo Mendão Silva
Doutorado em Ciências e Tecnologias de Informação pela Universidade de Coimbra e Mestre em Engenharia Informática na mesma instituição, tem nos últimos anos trabalhado no desenvolvimento e aplicação de redes de sensores sem fios em diversos casos práticos, com especial enfoque no suporte à mobilidade com fiabilidade em ambientes críticos. Possui uma extensa experiência no desenho e implementação de protocolos de comunicação para sistemas embebidos de baixa capacidade, entre outros. É autor ou coautor de diversos artigos científicos publicados tanto em revistas como em conferências, na sua grande maioria internacionais. É, ainda, membro do Institute of Electrical and Electronics Engineers.
Fernando Boavida Jorge Sá Silva Ricardo Mendão Silva Fernando Boavida
Uma obra que ajuda estudantes e profissionais a compreenderem os sistemas de gestão de bases de dados relacionais. Com apresentação dos conceitos fundamentais, inclui variados exemplos e exercícios. ISBN 978-972-722-830-0
9 789727 228300
www.fca.pt
C
O livro inclui vários exercícios de aplicação para TinyOS (24 exercícios) e ContikiOS (15 exercícios), a maioria dos quais resolvidos.
Jorge Sá Silva Ricardo Mendão Silva Fernando Boavida
Redes de Sensores Sem Fios
Um valioso recurso para docentes e estudantes do Ensino Superior; profissionais; e na preparação de Certificações Red Hat. Inclui a configuração completa de um cenário prático real.
Vivemos num mundo em que as tecnologias da informação e comunicação desempenham um papel fundamental não só no plano lógico, mas também no plano físico. Cada vez mais as aplicações informáticas recorrem a variáveis ambientais, sensoriais, enriquecendo o mundo virtual com o real e vice-versa. Os sensores, ligados através de redes sem fios, são essenciais para a fusão destes dois mundos e para permitirem que, através da rede Internet, tenhamos acesso a todo o tipo de variáveis físicas.
90mm x 240mm
FCA
FCA
Professor Catedrático da Faculdade de Ciências e Tecnologia da Universidade de Coimbra e docente do Departamento de Engenharia Informática da mesma instituição. Possui uma extensa experiência de ensino, investigação e engenharia nas áreas de informática, redes e protocolos de comunicação, planeamento e projeto de redes, redes móveis e redes de sensores. É membro da Ordem dos Engenheiros e do Institute of Electrical and Electronics Engineers. É, ainda, coautor dos livros Engenharia de Redes Informáticas (10.ª Edição Atualizada e Aumentada), Administração de Redes Informáticas (2.ª Edição Atualizada e Aumentada) e TCP/IP – Teoria e Prática publicados pela FCA.
EDIÇÃO FCA – Editora de Informática, Lda. Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 fca@fca.pt www.fca.pt DISTRIBUIÇÃO Lidel – Edições Técnicas, Lda. Rua D. Estefânia, 183, R/C Dto. – 1049-057 LISBOA Tel: +351 213 511 448 lidel@lidel.pt www.lidel.pt LIVRARIA Av. Praia da Vitória, 14 – 1000-247 LISBOA Tel: +351 213 511 448 * Fax: +351 213 173 259 livraria@lidel.pt Copyright © abril 2016, FCA – Editora de Informática, Lda. ISBN: 978-972-722-830-0 1.ª edição impressa: abril 2016 Paginação: Alice Simões Impressão e acabamento: Cafilesa -– Soluções Gráficas, Lda. -– Venda do Pinheiro Depósito Legal N.º 408040/16 Capa: José Manuel Reis Ilustração da capa: Miguel Montenegro
Marcas Registadas de FCA – Editora de Informática, Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções. Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de publicação da mesma. Os nomes comerciais referenciados neste livro têm patente registada. Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico, mecânico, fotocópia, digitalização, gravação, sistema de armazenamento e disponibilização de informação, sítio Web, blogue ou outros, sem prévia autorização escrita da Editora, exceto o permitido pelo CDADC, em termos de cópia privada pela AGECOP – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.
ÍNDICE GERAL AGRADECIMENTOS ...............................................................................................................................................................................IX 1
2
INTRODUÇÃO
1
1.1
MOTIVAÇÃO E ÂMBITO .................................................................................................................................................... 1
1.2
OBJETIVOS E ABORDAGEM .......................................................................................................................................... 2
1.3
ORGANIZAÇÃO DO PRESENTE TEXTO .....................................................................................................................3
CONCEITOS BASE 2.1
5
ORGANIZAÇÃO E COMPONENTES............................................................................................................................. 5
2.2 ESTRUTURA DE UM NÓ SENSOR ................................................................................................................................ 7 2.3 CARACTERÍSTICAS-CHAVE DAS RSSF.................................................................................................................... 8 2.4 MODELO DE REFERÊNCIA..............................................................................................................................................12 2.5 TOPOLOGIAS ...................................................................................................................................................................... 13 2.6 CONCLUSÃO ......................................................................................................................................................................... 17 BIBLIOGRAFIA ............................................................................................................................................................................... 18 3
CAMADAS PROTOCOLARES DAS RSSF 3.1
19
INTRODUÇÃO ...................................................................................................................................................................... 19
3.2 CAMADA FÍSICA .................................................................................................................................................................21 3.3 CAMADA DE LIGAÇÃO DE DADOS .......................................................................................................................... 24 3.3.1
CONCEITOS E MECANISMOS BASE........................................................................................................... 25 3.3.1.1
REQUISITOS DOS PROTOCOLOS MAC EM RSSF .............................................................. 25
3.3.1.2
DUTY-CYCLE ....................................................................................................................................... 25
3.3.1.3 SINCRONISMO .................................................................................................................................... 26 3.3.1.4 PARADIGMAS DE CONTROLO DE ACESSO AO MEIO FÍSICO ...................................... 28 3.3.1.5 O PROBLEMA DO NÓ ESCONDIDO ...........................................................................................30 3.3.2 PROTOCOLOS MAC........................................................................................................................................... 32 3.4 CAMADA DE REDE .......................................................................................................................................................... 33 3.4.1
MOTIVAÇÕES PARA O DESENVOLVIMENTO DO IPv6 ....................................................................34
3.4.2 PRINCIPAIS DIFERENÇAS EM RELAÇÃO AO IPv4 ..............................................................................35 3.4.3 SOLUÇÕES LoWPAN E 6LoWPAN .............................................................................................................. 36 3.4.4 O ENCAMINHAMENTO .....................................................................................................................................39 3.5 CAMADA DE TRANSPORTE ........................................................................................................................................44 3.6 AS APLICAÇÕES ................................................................................................................................................................ 51 3.7 CONCLUSÃO ........................................................................................................................................................................ 51 BIBLIOGRAFIA .............................................................................................................................................................................. 52 4
TECNOLOGIAS PARA RSSF 4.1
55
INTRODUÇÃO .................................................................................................................................................................... 55
4.2 SISTEMAS OPERATIVOS..............................................................................................................................................56 4.3 NORMALIZAÇÃO ..............................................................................................................................................................58
© FCA – EDITORA DE INFORMÁTICA
V
REDES DE SENSORES SEM FIOS
4.3.1
BLUETOOTH ......................................................................................................................................................... 58
4.3.2 NEAR FIELD COMMUNICATION ................................................................................................................... 60 4.3.3 IEEE 802.15.4 ....................................................................................................................................................... 60 4.3.4 ZIGBEE .................................................................................................................................................................... 68 4.3.5 WIRELESSHART ................................................................................................................................................. 70 4.3.6 ISA100 ..................................................................................................................................................................... 73 4.3.7 DASH7 .................................................................................................................................................................... 76 4.4 RELAÇÃO COM OUTRAS TECNOLOGIAS ...............................................................................................................77 4.4.1
REDES CELULARES ...........................................................................................................................................77 4.4.1.1
GSM ........................................................................................................................................................ 80
4.4.1.2 GPRS ...................................................................................................................................................... 80 4.4.1.3 UMTS........................................................................................................................................................81 4.4.2 REDES IEEE 802.11 (WI-FI)............................................................................................................................... 82 4.4.3 RADIO FREQUENCY IDENTIFICATION (RFID) ........................................................................................ 85 4.5 MIDDLEWARE PARA RSSF ......................................................................................................................................... 87 4.6 CONCLUSÃO ....................................................................................................................................................................... 89 BIBLIOGRAFIA .............................................................................................................................................................................. 89 5
ASPETOS COMPLEMENTARES 5.1
91
INTRODUÇÃO .......................................................................................................................................................................91
5.2 EFICIÊNCIA ENERGÉTICA .............................................................................................................................................. 92 5.3 MOBILIDADE ...................................................................................................................................................................... 93 5.3.1
TIPOS DE MOBILIDADE EM RSSF .............................................................................................................. 94
5.3.2 O PROTOCOLO MOBILE IP ............................................................................................................................. 98 5.3.3 A OTIMIZAÇÃO DE ROTAS E O PROCESSO DE REGISTO ............................................................. 102 5.3.4 MOBILIDADE DE REDES ................................................................................................................................ 106 5.4 QUALIDADE DE SERVIÇO .............................................................................................................................................. 111 5.5 SEGURANÇA ...................................................................................................................................................................... 113 5.6 PRIVACIDADE .....................................................................................................................................................................121 5.7 LOCALIZAÇÃO.................................................................................................................................................................. 122 5.8 PLANEAMENTO E MANUTENÇÃO........................................................................................................................... 124 5.9 CONCLUSÃO ...................................................................................................................................................................... 126 BIBLIOGRAFIA ............................................................................................................................................................................. 127 6
TINYOS 6.1
129
INTRODUÇÃO .................................................................................................................................................................... 129
6.2 INSTALAÇÃO DO TINYOS ............................................................................................................................................ 131 6.3 COMPONENTES E INTERFACES – O MEU PRIMEIRO PROGRAMA .......................................................... 134 6.4 COMPILAR E INSTALAR APLICAÇÕES .................................................................................................................. 138 6.5 O PROGRAMA BLINKC................................................................................................................................................... 141 6.6 COMPONENTES E INTERFACES DO NESC ........................................................................................................... 143 6.7 A EXPRESSÃO AS .......................................................................................................................................................... 146 6.8 COMPONENTES ÚNICAS E GENÉRICAS ................................................................................................................ 146 6.9 RELAÇÃO ENTRE COMPONENTES..........................................................................................................................148 VI
© FCA – EDITORA DE INFORMÁTICA
ÍNDICE GERAL 6.10 SHORTCUTS ...................................................................................................................................................................... 149 6.11
TIPOS DE DADOS ........................................................................................................................................................... 150
6.12 VARIÁVEIS.......................................................................................................................................................................... 151 6.13 INTERFACES ..................................................................................................................................................................... 153 6.14 TEMPORIZADORES ....................................................................................................................................................... 154 6.15 TAREFAS ........................................................................................................................................................................... 155 6.16 INDEPENDÊNCIA DE PLATAFORMAS ................................................................................................................... 156 6.17 IDENTIFICADORES E CANAIS ................................................................................................................................... 156 6.18 FERRAMENTA NESDOC ............................................................................................................................................... 157 6.19 MÚLTIPLAS LIGAÇÕES ................................................................................................................................................ 159 6.20 EXEMPLO DE SERVIDOR WEB ................................................................................................................................... 161 6.21 CONCLUSÃO ..................................................................................................................................................................... 169 WEBGRAFIA ................................................................................................................................................................................ 169 7
SISTEMA OPERATIVO CONTIKI 7.1 7.2
171
INTRODUÇÃO ......................................................................................................................................................................171 VISÃO GERAL ................................................................................................................................................................... 173 7.2.1
KERNEL .................................................................................................................................................................. 173
7.2.2 CARREGAMENTO DE PROGRAMAS ........................................................................................................ 174 7.2.3 SERVIÇOS ............................................................................................................................................................ 174 7.2.4 BIBLIOTECAS ...................................................................................................................................................... 174 7.2.5 COMUNICAÇÃO .................................................................................................................................................. 175 7.2.6 MULTI-THREADING ........................................................................................................................................... 175 7.3 PROTOTHREADS ............................................................................................................................................................. 176 7.4 SUPORTE DE IP ................................................................................................................................................................ 177 7.5 INSTALAÇÃO..................................................................................................................................................................... 177
DOWNLOAD DA FRAMEWORK CONTIKI ................................................................................................. 178 7.5.2 DOWNLOAD DA PLATAFORMA ................................................................................................................. 179 7.5.1
7.5.3 COMPILAÇÃO E INSTALAÇÃO DE APLICAÇÕES ................................................................................ 179 7.6 PROGRAMAÇÃO ............................................................................................................................................................ 183 7.7
SIMULADOR COOJA ..................................................................................................................................................... 184 7.7.1
CRIAR UMA SIMULAÇÃO.............................................................................................................................. 185
7.8 CONCLUSÃO ..................................................................................................................................................................... 190 BIBLIOGRAFIA .............................................................................................................................................................................. 191 8
EXERCÍCIOS 8.1
193
INTRODUÇÃO ................................................................................................................................................................... 193
8.2 EXERCÍCIOS PARA TINYOS ....................................................................................................................................... 193 8.2.1
EXERCÍCIO 1 – BLINK ....................................................................................................................................... 194
8.2.2 EXERCÍCIO 2 – HELLO WORLD................................................................................................................... 196 8.2.3 EXERCÍCIO 3 – TIMERS .................................................................................................................................. 197 8.2.4 EXERCÍCIO 4 – SENSORES ......................................................................................................................... 200 8.2.5 EXERCÍCIO 5 – ATUADORES ..................................................................................................................... 202 8.2.6 EXERCÍCIO 6 – COMUNICAÇÃO UART ................................................................................................... 204
© FCA – EDITORA DE INFORMÁTICA
VII
REDES DE SENSORES SEM FIOS
8.6.2.1 A INICIALIZAÇÃO ........................................................................................................................... 206 8.6.2.2 LEITURA E COMUNICAÇÃO.......................................................................................................207 8.2.7 EXERCÍCIO 7 – COMUNICAÇÃO RÁDIO ................................................................................................. 209 8.2.8 EXERCÍCIO 8 – BATERIA .................................................................................................................................211 8.2.9 EXERCÍCIO 9 – CONSOLIDAÇÃO ................................................................................................................ 215 8.2.10 EXERCÍCIO 10 – GERIR A ENERGIA ......................................................................................................... 220 8.2.11 EXERCÍCIO 11 – PROTOCOLO ...................................................................................................................... 220 8.2.12 EXERCÍCIO 12 – QUALIDADE DO SINAL RÁDIO .................................................................................. 227 8.2.13 EXERCÍCIO 13 – ANÁLISE DO SINAL RÁDIO ....................................................................................... 232 8.2.14 EXERCÍCIO 14 – 6LoWPAN .......................................................................................................................... 238 8.2.15 EXERCÍCIO 15 – NETCAT6 ............................................................................................................................. 241 8.2.16 EXERCÍCIO 16 – TOPOLOGIA EM ÁRVORE ............................................................................................ 241 8.2.17 EXERCÍCIO 17 – CONTROLO DE ERROS ................................................................................................ 255 8.2.18 EXERCÍCIO 18 – DISPATCHER E WEBSERVICE .................................................................................. 265 8.2.18.1 PARTE 1 – DISPATCHER E MIDDLEWARE .......................................................................... 265 8.2.18.2 PARTE 2 – WEB SERVICE ......................................................................................................... 272 8.2.19 EXERCÍCIO 19 – CONSOLIDAÇÃO .............................................................................................................279 8.2.20 EXERCÍCIO 20 – EVOLUÇÃO ....................................................................................................................... 281 8.2.21 EXERCÍCIO 21 – ALARMÍSTICA.................................................................................................................. 282 8.2.22 EXERCÍCIO 22 – MOBILIDADE ................................................................................................................... 282 8.2.23 EXERCÍCIO 23 – MONITORIZAÇÃO......................................................................................................... 282 8.2.24 EXERCÍCIO 24 – CONTROLO REMOTO ................................................................................................. 282 8.3 EXERCÍCIOS PARA CONTIKIOS ............................................................................................................................... 282 8.3.1
EXERCÍCIO 1 – HELLO WORLD ................................................................................................................... 283
8.3.2 EXERCÍCIO 2 – TIMERS ................................................................................................................................ 284 8.3.3 EXERCÍCIO 3 – LED ........................................................................................................................................ 285 8.3.4 EXERCÍCIO 4 – SENSORES ......................................................................................................................... 286 8.3.5 EXERCÍCIO 5 – SENSORES E LED ........................................................................................................... 288 8.3.6 EXERCÍCIO 6 – MULTISSENSORES ......................................................................................................... 290 8.3.7 EXERCÍCIO 7 – COMUNICAÇÃO RIME .................................................................................................... 292 8.3.8 EXERCÍCIO 8 – RECETOR RIME ................................................................................................................ 294 8.3.9 EXERCÍCIO 9 – UNICAST .............................................................................................................................. 296 8.3.10 EXERCÍCIO 10 – PROTOTHREADS ........................................................................................................... 299 8.3.11 EXERCÍCIO 11 – BATERIA .............................................................................................................................. 302 8.3.12 EXERCÍCIO 12 – IMPACTO DAS COMUNICAÇÕES E PROCESSAMENTO ................................ 304 8.3.13 EXERCÍCIO 13 – μIP E 6LoWPAN .............................................................................................................. 304 8.3.14 EXERCÍCIO 14 – WEBSERVER IPv6 ......................................................................................................... 304 8.3.15 EXERCÍCIO 15 – UDP ...................................................................................................................................... 305 8.4 CONCLUSÃO .................................................................................................................................................................... 306 BIBLIOGRAFIA ........................................................................................................................................................................... 306 ACRÓNIMOS ........................................................................................................................................................................................ 307 ÍNDICE REMISSIVO ............................................................................................................................................................................. 313
VIII
© FCA – EDITORA DE INFORMÁTICA
1 INTRODUÇÃO As redes de sensores sem fios (RSSF) estão a mudar a Internet. Com este tipo de redes a Internet estende-se ao mundo das grandezas físicas, reais, abrindo-se as portas para todo o tipo de aplicações como, por exemplo, aplicações de controlo de processos industriais, de monitorização ambiental, de apoio à gestão das cidades, de suporte à vida, ou de lazer. O presente livro foi escrito com o objetivo de proporcionar uma introdução a este tipo de redes, de utilidade para engenheiros, especialistas e técnicos que desenvolvam a sua atividade na área das tecnologias da informação e comunicação. Neste capítulo introdutório começa-se por detalhar a motivação e âmbito do presente livro. De seguida, explicam-se os seus objetivos, bem como a abordagem adotada para os atingir, e identifica-se o público-alvo. Por fim, descreve-se a estrutura de capítulos utilizada, fazendo-se uma breve introdução a cada um deles.
1.1 MOTIVAÇÃO E ÂMBITO Como se organizam as redes de sensores sem fios (RSSF) e quais são as suas principais componentes? Qual a estrutura de um nó sensor? Quais as características-chave deste tipo de redes? Qual o modelo de referência das RSSF e quais são as principais funções de cada camada protocolar desse modelo? Quais os principais sistemas operativos para redes de sensores sem fios? Quais as principais normas internacionais e quais as principais tecnologias? Qual a relação das RSSF com outras tecnologias semelhantes? Qual o impacto da mobilidade neste tipo de redes? Quais os principais problemas resultantes das restrições energéticas, dos requisitos de qualidade de serviço, e dos aspetos de privacidade e segurança? A resposta a estas e várias outras questões relacionadas é a principal motivação para o presente texto. As redes de sensores sem fios têm características muito específicas, decorrentes, no essencial, das restrições de hardware e software dos nós sensores. Essas características condicionam a sua organização, as topologias e a forma como as componentes do modelo de referência interagem e se organizam. Apesar das condicionantes das RSSF, que influenciam fortemente a comunicação neste tipo de redes, pode ser estabelecida uma correspondência entre as arquiteturas de comunicação utilizadas nas redes convencionais – como sejam a arquitetura TCP/IP (Transmission Control Protocol/Internet Protocol) e o modelo de referência OSI (Open
© FCA – EDITORA DE INFORMÁTICA
1
REDES DE SENSORES SEM FIOS
Systems Interconnection) – e a arquitetura de comunicação das redes de sensores, ainda que sujeita a adaptações que importa conhecer e analisar. Após um período inicial de uma certa instabilidade, as tecnologias para redes de sensores sem fios experimentam agora uma estabilização e consequente crescimento de utilização. Por um lado, existem sistemas operativos específicos para RSSF, que facilitam o desenvolvimento de aplicações. Por outro, existem normas que possibilitam a compatibilidade entre sistemas de diferentes fabricantes. O seu conhecimento é fundamental para lidar com este tipo de redes. Para além do modelo protocolar e das tecnologias, existem outros aspetos complementares de grande importância nas redes de sensores sem fios que interessa conhecer. A gestão de energia é, nestas redes, fundamental. Para além disso, há que ter em atenção que, em muitos cenários, os nós sensores e as próprias redes estão sujeitos a mobilidade. Por outro lado, questões como a qualidade de serviço, a segurança e a privacidade podem condicionar de forma determinante o planeamento e operação destas redes.
1.2 OBJETIVOS E ABORDAGEM São objetivos do presente livro a apresentação, análise e estudo dos diversos aspetos das redes de sensores sem fios, incluindo as suas tecnologias, mecanismos e protocolos. Trata-se, portanto, de um texto abrangente, que fornece uma visão simultaneamente global e detalhada deste tipo de redes de importância crescente na atual Internet, já que a estendem ao mundo das grandezas físicas e, ao fazê-lo, estão na base da chamada “Internet das Coisas”, ou seja, da Internet que possibilita a interação entre objetos sem intervenção humana, ou entre pessoas e objetos. Pretende-se, desta forma, não só introduzir o leitor às redes de sensores sem fios, mas também aprofundar todas as questões essenciais para a compreensão do modo como estas redes funcionam. Neste sentido, a abordagem adotada assenta em dois pilares: uma componente teórica e uma componente prática. Primeiramente, nos Capítulos 2 a 5, os conceitos são explicados com a profundidade necessária à sua compreensão, de forma a que o leitor perceba os problemas e as respetivas soluções. Estes capítulos podem ser lidos/estudados sem quaisquer preocupações em termos de abordagem ou estudo práticos. Subsequentemente, nos Capítulos 6 e 7 são abordados dois dos principais sistemas operativos para redes de sensores sem fios – o TinyOS e o Contiki – de uma perspetiva eminentemente prática. Complementarmente, no Capítulo 8 é apresentado um lote abrangente de exercícios para estes dois sistemas operativos, com o objetivo de facilitar o autoestudo e aprofundar os conhecimentos teóricos transmitidos nos primeiros capítulos.
2
© FCA – EDITORA DE INFORMÁTICA
INTRODUÇÃO
1
Tendo em atenção os aspetos anteriormente referidos, podem ser identificados vários públicos-alvo. Podem beneficiar deste livro docentes e estudantes de licenciatura e mestrado, em disciplinas na área das redes de computadores, redes de telecomunicações, gestão de sistemas e redes, sistemas de controlo e, ainda, sistemas e aplicações móveis. O livro é também adequado para profissionais com responsabilidades no desenvolvimento, instalação e administração de redes informáticas em empresas de pequena, média e grande dimensão, para profissionais que desenvolvam aplicações para dispositivos móveis e para profissionais que, não desenvolvendo a sua atividade na área de redes mas trabalhando em áreas aplicacionais nas quais se utilizem redes de sensores, queiram adquirir uma compreensão geral de como funciona este tipo de redes.
1.3 ORGANIZAÇÃO DO PRESENTE TEXTO Além do Capítulo 1, onde são apresentadas as motivações, âmbito, objetivos e público-alvo, o livro é composto por seis capítulos que abordam, sucessivamente, os conceitos base das redes de sensores sem fios, o modelo e camadas protocolares deste tipo de redes, as tecnologias, um conjunto de aspetos complementares relevantes para as RSSF, o sistema operativo TinyOS e, por fim, o sistema operativo Contiki. Além destes capítulos, que se centram nos fundamentos teóricos dos aspetos abordados, existe um último capítulo de natureza prática, exclusivamente composto por exercícios resolvidos, cobrindo a generalidade dos assuntos tratados nos capítulos teóricos. O Capítulo 2 – intitulado “Conceitos base das RSSF” – apresenta e explica uma série de aspetos essenciais das redes de sensores sem fios, nomeadamente, a organização e componentes, a estrutura dos nós sensores, as características-chave das RSSF, o modelo de referência deste tipo de redes e os tipos de topologias. O Capítulo 3 – ”Camadas Protocolares das RSSF“ – é dedicado às camadas protocolares das RSSF, utilizando como referência o modelo OSI da ISO (International Organization for Standardization), dado o seu carácter enquadrador. Neste capítulo são apresentadas, sucessivamente, a camada física, a camada de ligação de dados, a camada de rede, a camada de transporte e as aplicações. Na camada de ligação de dados é dada particular atenção ao controlo do acesso ao meio físico, considerando a sua importância neste tipo de redes. Já na camada de rede, dá-se ênfase à utilização do IPv6 (Internet Protocol version 6 ) e ao encaminhamento. Existem diversas tecnologias para redes de sensores sem fios, sendo que as principais são abordadas no Capítulo 4 – “Tecnologias para RSSF”. Neste capítulo começa-se por apresentar os principais sistemas operativos para RSSF. Segue-se a apresentação de um conjunto de tecnologias normalizadas, cujo conhecimento é fundamental para a implementação deste tipo de redes. São, também, referidas várias tecnologias relacionadas, já que, frequentemente, se utilizam em conjunto com as RSSF. Por fim, são identificados os principais tipos de middleware utilizados nestas redes.
© FCA – EDITORA DE INFORMÁTICA
3
REDES DE SENSORES SEM FIOS
O Capítulo 5 – “Aspetos Complementares” – é dedicado à apresentação de um conjunto de aspetos complementares de extrema importância para as redes de sensores sem fios, nomeadamente aspetos de eficiência energética, mobilidade de sensores e redes, qualidade de serviço, segurança e privacidade, localização e, ainda, planeamento e manutenção. Os Capítulos 6 e 7 – ”TinyOS e o Contiki“ – são dedicados à apresentação detalhada dos dois principais sistemas operativos para redes de sensores sem fios, respetivamente, o TinyOS e o Contiki. A apresentação é feita de um ponto de vista prático e inclui quer aspetos de instalação dos referidos sistemas operativos, quer da sua organização, serviços, ferramentas e utilização. Por fim, o Capítulo 8 – “Exercícios” – apresenta um conjunto alargado de exercícios resolvidos, desde exercícios de grande simplicidade até exercícios mais complexos, explorando não só as características de cada um dos sistemas operativos em causa – TinyOS e Contiki –, como também a capacidade sensorial dos nós, a implementação de diferentes estruturas e topologias de rede, os diferentes mecanismos de comunicação e a integração de aplicações através de web services. Além da resolução dos exercícios fornecem-se, em vários casos, notas explicativas. Este livro inclui ainda uma lista de siglas/acrónimos usados ao longo do livro.
4
© FCA – EDITORA DE INFORMÁTICA
2 CONCEITOS BASE As redes de sensores sem fios (RSSF) assentam num conjunto de conceitos próprios, que são determinantes para o seu potencial de aplicação e para a forma como são construídas. A flexibilidade que permitem está na base da sua grande aplicabilidade mas, simultaneamente, num conjunto importante de problemas e desafios, quer em termos de engenharia quer de investigação. Este capítulo tem por objetivo apresentar os principais conceitos subjacentes a este tipo de redes. Começa-se por abordar a organização e componentes das RSSF, ao que se segue a apresentação da estrutura tipo dos nós sensores. As características-chave das RSSF, decorrentes da sua organização e componentes, são apresentadas seguidamente. Em paralelo com a sua capacidade para funcionamento autónomo, a ligação das RSSF a outras redes, o modelo de referência das RSSF e as topologias são aspetos essenciais, sendo também alvo do presente capítulo. O capítulo termina com uma breve conclusão que resume os principais temas abordados e identifica alguns dos desafios mais importantes nesta área.
2.1 ORGANIZAÇÃO E COMPONENTES As RSSF podem ser descritas como conjuntos de dispositivos ou nós sensores que, apesar de poderem funcionar de forma isolada e autónoma, têm capacidade para se agruparem e formarem redes de elevada dimensão, com o objetivo de monitorizar um conjunto de fenómenos físicos. A Figura 2.1 apresenta um exemplo de uma RSSF, na qual vários sensores recolhem dados a armazenar num repositório central.
FIGURA 2.1 – EXEMPLO DE UMA REDE DE SENSORES SEM FIOS
© FCA – EDITORA DE INFORMÁTICA
5
REDES DE SENSORES SEM FIOS
Os ambientes de sensores revestem-se de características muito particulares. Uma RSSF elementar é constituída por nós sensores e uma ou mais estações de recolha à qual estão acoplados os nós sink. Estes executam um pequeno programa, chamado dispatcher, que envia a informação recebida dos nós sensores para a estação de recolha, e recebe desta os pacotes de informação para encaminhar para os nós. Na estação de recolha corre um programa (middleware) que interage com o dispatcher. Esta arquitetura é apresentada na Figura 2.2.
FIGURA 2.2 – ORGANIZAÇÃO TÍPICA E COMPONENTES DE UMA RSSF
Os nós sensores são o elemento básico de uma RSSF. Cada nó sensor é constituído por uma bateria, um microprocessador, uma memória, um sistema básico de transmissão/ /receção rádio e um conjunto de sensores específicos para a ou as aplicações à qual ou às quais se destina a RSSF. Nós mais complexos podem conter outras componentes como, por exemplo, painéis solares para carregamento energético dos nós, ou sistemas de GPS (Global Positioning System). Em cada sensor a memória existente é, tipicamente, limitada em termos de espaço e de rapidez de acesso, por forma a minimizar os consumos de energia desta componente. A título de exemplo, para a maioria dos nós sensores comerciais são necessários cerca de 13 milissegundos para ler ou escrever um bloco de dados de 512 bytes. As baterias utilizadas nos nós sensores acompanham as reduzidas dimensões destes dispositivos. De facto, atualmente o tamanho dos nós sensores é, maioritariamente, determinado pelo tamanho da bateria. No entanto, preveem-se desenvolvimentos importantes nos próximos tempos, tanto na redução destes sistemas como na utilização de fontes energéticas alternativas, já que a utilização de baterias constitui uma limitação importante destes dispositivos, fortemente condicionadora do seu tempo de vida útil.
6
© FCA – EDITORA DE INFORMÁTICA
CAMADAS PROTOCOLARES DAS RSSF
3
São muitos os serviços que a Internet oferece. Se anteriormente apenas era necessário suportar o transporte de dados (no sentido tradicional), na Internet de hoje existem sinais com variadas exigências temporais. Os desafios da futura Internet não se limitam apenas à oferta de grande largura de banda. Aliás, a largura de banda será sempre um requisito-chave face ao aumento de complexidade das aplicações, que se apresentam cada vez mais “devoradoras” de recursos. Segundo alguns autores, o tráfego que atualmente utiliza a Internet pode ser dividido em dois grandes grupos: tráfego mais sensível às perdas mas menos sensível ao atraso, e tráfego mais sensível ao atraso e menos sensível às perdas. No primeiro grupo inclui-se o tráfego de transferência de ficheiros, para o qual um tempo de trânsito com um acréscimo de alguns segundos não é significativo para o tempo total da transferência, mas já a perda de algum conjunto de bits poderá ser crítica. Por outro lado, na transmissão de voz sobre IP, por exemplo, já não será tão significativa a perda de alguns bits, porém, em contrapartida, os atrasos poderão revelar-se críticos. Conforme será abordado mais à frente nesta secção, o IPv6 também apresenta soluções na área da Qualidade de Serviço (QoS) e no suporte a sinais de diferentes exigências. De entre a multiplicidade de organizações envolvidas no desenvolvimento do IPv6 destacam-se as seguintes: n
n
Internet Society – organização internacional dedicada ao crescimento e evolução da Internet; nesta organização destaca-se a Internet Engineering Task Force (IETF) como a principal organização para a especificação dos protocolos da Internet; a IETF é constituída por diversos grupos de trabalho com funções específicas, onde se encontra o subgrupo IPng Working Group, responsável pelo desenvolvimento do IPv6; Laboratórios de investigação e empresas comerciais – embora a IETF seja responsável pela definição protocolar, são estas organizações que investigam, propõem novas soluções e desenvolvem produtos.
3.4.2 PRINCIPAIS DIFERENÇAS EM RELAÇÃO AO IPv4 As principais melhorias introduzidas pelo IPv6 foram: n
n
Expansão do espaço de endereçamento – enquanto o IPv4 utiliza 32 bits para codificar os endereços, o IPv6 utiliza 128 bits; para além disso, o espaço de endereçamento do IPv6 não apresenta a divisão estrutural em classes, o que possibilita uma gestão eficiente do espaço de endereçamento; Encaminhamento eficiente – com a implementação de políticas eficientes na atribuição dos endereços e com a introdução de novas funcionalidades, o IPv6 possibilita uma simplificação das tabelas de encaminhamento dos dispositivos, o que se traduz numa maior eficiência no encaminhamento; © FCA – EDITORA DE INFORMÁTICA
35
REDES DE SENSORES SEM FIOS
n
n
n
n
n
n
n
n
n
Introdução de endereços anycast – o IPv6 introduz uma gama de endereços que permite identificar um conjunto de sistemas terminais; esta funcionalidade poderá ter aplicabilidade em várias áreas, nomeadamente nos mecanismos de autoconfiguração; Possibilidade de utilização de endereços não globais – possibilidade de atribuição e utilização de endereços locais, não públicos, o que permite o não desperdício de endereços globais; Autoconfiguração de endereços IP – possibilidade de os próprios sistemas terminais construírem o seu próprio endereço, com validade global, o que permite a simplificação do processo de ligação dos sistemas terminais às redes; Alteração e simplificação da estrutura do cabeçalho – o IPv6 conduz a uma redução da complexidade do cabeçalho dos pacotes IP, passando muitos dos campos pouco utilizados no IPv4 para estruturas opcionais; Possibilidade de extensão do cabeçalho – é utilizada uma estrutura flexível com suporte para a introdução de funcionalidades futuras, consoante as necessidades; Capacidade multicast nativa – cada vez é maior o número de aplicações que requerem comunicação em modo multiponto; antevendo o crescimento desta necessidade, o IPv6 apresenta não só um espaço de endereçamento multicast mais amplo como novas funcionalidades nesta área; Suporte de QoS – o IPv6 oferece novas funcionalidades no suporte a diferentes classes de qualidade de serviço; Mobilidade – também na área dos sistemas sem fios, antevendo as exigências de mobilidade para os sistemas terminais, o IPv6 introduziu novas funcionalidades nativas; Segurança – dada a adesão da sociedade e das empresas à Internet, e com o aparecimento de novos modelos de negócio, é crucial a inclusão de técnicas de segurança nativas; os mecanismos disponíveis suportam diversos aspetos da segurança, como sejam a confidencialidade e a autenticação.
3.4.3 SOLUÇÕES LoWPAN E 6LoWPAN Enquanto nos últimos anos se tem assistido ao aumento da capacidade de processamento e de comunicação dos sistemas de informação, é defendido por muitos analistas que no futuro próximo se assistirá a uma inversão de tendências: os próximos anos ficarão marcados pela conquista dos últimos elementos resistentes ao fenómeno Internet: os nós sensores. No entanto, estes novos sistemas tecnológicos não se traduzirão em nós de elevada capacidade, mas em dispositivos simples, com capacidades de processamento, armazenamento e comunicação modestas.
36
© FCA – EDITORA DE INFORMÁTICA
TECNOLOGIAS PARA RSSF
4
4.3.6 ISA100 A norma ISA100.11a (ISA100) é outra das normas muito importantes nas RSSF, tendo sido desenhada para a monitorização e para o controlo de processos em ambientes industriais. É uma norma escalável, robusta e que funciona a 2.4 GHz. Define ainda um conjunto de especificações para segurança e para os processos de gestão, de acordo com o modelo OSI. É uma norma simples e flexível que suporta multissalto, redes em estrela e redes mesh. A norma ISA100.11a começou por definir seis classes de aplicações como base numa análise exaustiva a milhares de casos de estudo em ambientes industriais. Essas classes são apresentadas na Tabela 4.1. TABELA 4.1 – CLASSES DE APLICAÇÕES Segurança
Controlo
Classe 0: Emergência
Sempre crítico
Classe 1: Controlo regulador em malha fechada
Quase sempre crítico
Classe 2: Controlo supervisor em malha fechada
Normalmente não crítico
Classe 3: Controlo em malha aberta
Humano na malha Nota: Os lotes de nível 3 e 4 podem ser de classe 2, classe 1 ou mesmo de classe 0, dependendo da função O nível dos lotes é definido pela norma ISA S88; onde L3 = unidade e L4 = célula de processo
Monitorização
Classe 4: Alerta
Consequência operacional a curto prazo (por exemplo, manutenção baseada em eventos)
Classe 5: Registos, descarregamentos e carregamentos
Sem consequência operacional imediata (por exemplo, coleções de histórico, sequência de eventos, manutenção preventiva)
O tráfego da classe 0 é o de maior prioridade, enquanto o tráfego da classe 5 é o de menor prioridade. As seis classes distinguem ainda sinais de leitura simples e sinais de leitura com atuação, onde, neste último caso, os sistemas de monitorização podem também enviar sinais em sentido contrário para um controlador. De acordo com a norma ISA100.11a, as redes organizam-se em estrela ou em topologias mesh. As suas arquiteturas baseiam-se no modelo OSI da ISO, com as três camadas superiores – camadas de aplicação, apresentação e sessão – agrupadas numa única (Tabela 4.2).
© FCA – EDITORA DE INFORMÁTICA
73
REDES DE SENSORES SEM FIOS
A norma ISA100.11a utiliza uma comunicação TDMA através da definição de uma frame cíclica, com um número de slots configurável. Por sua vez, a duração temporal dos slots é também configurável, conseguindo-se assim um sistema flexível e adaptável a vários requisitos. No entanto, a utilização de comunicação por IEEE 802.15.4 permite também CSMA/CA, o que viabiliza a redução de colisões e a coexistência com outro tipo de protocolos, nomeadamente o IEEE 802.11. Assim, os dispositivos ISA100 podem facilmente coexistir com soluções Wi-Fi.
4.3.7 DASH7 O DASH75 é uma norma baseada na norma ISO 18000-7, com forte adoção nos ambientes industriais, nomeadamente em termos de tecnologias RFID. No entanto, esta norma tem a particularidade de funcionar a 433 MHz. Embora esta seja uma faixa de frequências que suporta menores larguras de banda, possibilita, em contrapartida, maior imunidade ao ruído e distâncias de propagação superiores. Tanto a potência de transmissão como a taxa de transmissão podem ser ajustadas, conseguindo distâncias que vão até aos 10 Km, com taxas de transmissão até 200 Kbps. O processo de comunicação do DASH7 (Figura 4.19) é muito simples, recorrendo a um método simétrico no qual cada nó pode desempenhar as funções de tag ou de interrogador.
FIGURA 4.19 – COMUNICAÇÃO DASH7
Os nós tags acordam de forma periódica. Assim, quando um nó interrogador pretender comunicar com o nó tag, seja para receber ou para enviar informação, terá de se manter acordado durante um intervalo de tempo superior a 2,4 s de forma a detetar o período ativo da tag. A partir desse momento, os nós poderão proceder à troca da informação. Após a definição da norma DASH7, foram definidas extensões e criados grupos de trabalho para dotar a norma de mecanismos de segurança suportados por chaves públicas AES de 128 bits.
5
http://www.dash7-alliance.org.
76
© FCA – EDITORA DE INFORMÁTICA
ASPETOS COMPLEMENTARES
5
As principais mensagens do Mobile IPv6 são: n
n
n
Binding Update Message – mensagem enviada pelo MN para informar outros nós, HA ou CN, do seu CoA; Binding Acknowledgement Message – mensagem devolvida por um nó depois de receber uma mensagem de Binding Update Message do MN. Esta mensagem de confirmação só é enviada se a mensagem de Binding Update solicitar confirmação de resposta; Binding Error Message – sempre que o CN detetar um problema relacionado com a mobilidade do CN ou com a associação de binding envia ao MN este tipo de mensagem.
A comunicação entre o MN e o CN pode recorrer a dois processos distintos: a mecanismos de túneis bidirecionais e às técnicas de encapsulamento (encaminhamento triangular), e não necessita das funcionalidades diretas do IPv6 Móvel; ou a técnicas de otimização de rota. No primeiro caso, a informação que é enviada do CN para o MN e do MN para o CN passa obrigatoriamente pelo HA. No segundo caso, utilizam-se técnicas nativas do IPv6 Móvel que permitem a comunicação direta entre CN e MN (Figura 5.8). Neste caso, quando o CN pretender enviar uma mensagem para o MN, verifica se existe na sua cache uma associação (binding) entre o IP fixo do MN e o atual CoA. Se existir, utiliza este endereço diretamente.
FIGURA 5.8 – ENCAMINHAMENTO TRIANGULAR E OTIMIZAÇÃO DE ROTA EM IPv6
O envio direto da informação entre o CN e o MN resolve não só o problema do encaminhamento triangular, como reduz a carga computacional do HA e evita eventuais consequências, caso existam problemas no HA. Os endereços de 128 bits permitem identificar de forma única todos as interfaces dos sistemas terminais. Esta propriedade reveste-se de grande importância quer na implementação de mecanismos de segurança eficazes, quer na identificação dos intervenientes não só no caso dos sistemas fixos, mas também no caso dos equipamentos móveis. A não necessidade de utilização de mecanismos de NAT permite a imple© FCA – EDITORA DE INFORMÁTICA
105
REDES DE SENSORES SEM FIOS
Os parâmetros de QoS nas RSSF são, na maioria das vezes, diferentes daqueles que são usados nas redes de dados convencionais. Enquanto nestas últimas o atraso, o jitter e a taxa de perdas são os parâmetros normalmente utilizados, nas RSSF é também necessária a análise de outros parâmetros, tais como: n
n
n
n
n
Fiabilidade de deteção – é necessário garantir que os nós colocados no local detetam e/ou avaliam o fenómeno a monitorizar de forma fiável; Cobertura da área de monitorização – o número de nós e o seu local de colocação vão determinar a área abrangida pela monitorização da RSSF; Exatidão das medidas – dependendo da aplicação, é necessário maior ou menor rigor nas medições efetuadas; Fiabilidade na comunicação dos dados – os dados recolhidos pelos sensores são transmitidos à estação de recolha. No processo de transmissão é necessário assegurar que os dados não são perdidos nem alterados; Tolerância a falhas – em muitas aplicações é necessário garantir a robustez do sistema.
O processo inicialmente adotado para suportar alguma QoS nas RSSF recorria à redundância dos nós. A existência de um número de nós superior ao estritamente necessário não teria um impacto significativo no custo total do sistema dado o baixo custo (inicialmente estimado) dos nós. Por outro lado, através da redundância dos dados seria possível ultrapassar a possível falha de algum dos nós do sistema e contornar leituras erróneas ou problemas de transmissão dos dados pelo tratamento estatístico dos valores recolhidos. Assim, com a adição de um número superior de nós era possível aumentar a cobertura de monitorização, melhorar a exatidão das medições e aumentar a fiabilidade do sistema. No entanto, este método não só não otimiza o custo do sistema, como não responde a outros requisitos também importantes para algumas aplicações. Como acontece na maioria das redes convencionais, um dos requisitos comuns em determinadas aplicações de RSSF é a resposta em tempo real. A exatidão da resposta produzida nesses sistemas depende não apenas dos resultados, mas também do tempo de resposta em que estes são apresentados. Estes requisitos obrigam a computação e comunicações em tempo real. Por sua vez, é necessário gerir recursos, através do correto dimensionamento do sistema, da gestão das filas de espera, da escolha de protocolos de encaminhamento, da escolha de técnicas de acesso ao meio e do estabelecimento de diferentes prioridades. A fiabilidade é outro importante requisito em muitas das aplicações para RSSF para as quais não é suficiente dispor de nós em número superior ao estritamente necessário. Em muitos casos como, por exemplo, em meios ruidosos ou na presença de más condições ambientais, poderão ser necessários cuidados adicionais para que o sistema responda como desejado. Os mecanismos de robustez a implementar numa RSSF englobam não só a escolha cuidada dos sistemas de hardware, como também dos sistemas de software. É necessário garantir que estes últimos utilizam técnicas e paradigmas de programação com gestão de exceções e tolerância a falhas. 112
© FCA – EDITORA DE INFORMÁTICA
TINYOS
6
Adicionado o repositório, é necessário atualizar a lista de pacotes, versões e dependências através do comando: sudo apt-get update
Após a atualização da lista, o utilizador pode então instalar o compilador nesC, executando o seguinte comando: sudo apt-get install nesc
Posteriormente, é necessário instalar no sistema o suporte para as diversas plataformas existentes, permitindo assim compilar código para essas plataformas diretamente a partir da consola. As plataformas principais são baseadas em processadores AVR ou MSP430, sendo necessário instalar diferentes ferramentas para cada uma das plataformas. Em Debian/Ubuntu o comando a executar será o seguinte: sudo apt-get install msp430-tinyos avr-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos
Descarregado o TinyOS e instalados o compilador e as ferramentas pretendidas, é ainda necessário compilar as ferramentas do sistema. O método de compilação (‘make’) do TinyOS obriga, desde a versão 3, à recompilação das ferramentas do sistema (‘tools’). Para tal, será necessário posicionar-se na diretoria ‘tools’ e executar os seguintes comandos: ./Bootstrap ./configure make all make install
A referida versão 3 remove as variáveis de sistema, até então requeridas, substituindo-as por variáveis automaticamente inseridas no sistema de build. No entanto, para versões anteriores, os utilizadores poderão continuar a configurar as variáveis de sistema tradicionais (Quadro 6.2). QUADRO 6.2 – VARIÁVEIS DO SISTEMA NAS VERSÕES ANTERIORES À VERSÃO 3 DO MAKE Comando
Variáveis TOSROOT TOSDIR
/opt/tinyos-2.x $TOSROOT/tos
CLASSPATH
$TOSROOT/support/sdk/java/tinyos.jar:.
MAKERULES
$TOSROOT/support/make/Makerules
PATH
/opt/msp430/bin:/opt/jflashmm:$PATH (caso opte pela plataforma msp430)
© FCA – EDITORA DE INFORMÁTICA
133
REDES DE SENSORES SEM FIOS
O caminho definido em TOSROOT corresponde à diretoria para a qual se descarregou o TinyOS-2.x a partir do git. Caso se tenha definido outra localização, deverá alterar-se o caminho de forma a apontar para essa nova localização. Antes de definir as novas variáveis de sistema, deverá, ainda, alterar as permissões da diretoria /opt/tinyos-2.x e, se necessário, das portas físicas onde irá ligar o dispositivo a programar. Para tal, dever-se-á garantir que a diretoria /opt/tinyos-2.x se encontra sob o seu domínio, alterando assim o utilizador. Ou seja, poderá recorrer ao seguinte comando: chown –R <nome utilizador>.<nome utilizador> /opt/tinyos-2.x
Na versão de compilação (make) 3, as variáveis de ambiente são substituídas por variáveis automaticamente definidas na build. A Tabela 6.1 compara ambas as versões.1 TABELA 6.1 – VARIÁVEIS DE AMBIENTE NAS VERSÕES 2 E 3 DO MAKE Versão 2
Versão 3
Referência
TOSROOT
TINYOS_ROOT_DIR
Relativo ao Makefile da aplicação
TOSDIR
TINYOS_OS_DIR
$TINYOS_ROOT_DIR/tos
TINYOS_MAKE_PATH
TINYOS_MAKE_DIR
$TINYOS_ROOT_DIR/support/make
MAKERULES
TINYOS_MAKERULES
$TINYOS_MAKE_DIR/Makerules
TINYOS_MAKELOCAL
TINYOS_MAKELOCAL
$TINYOS_MAKE_DIR/Makelocal
TINYOS_MAKEDEFAULTS
TINYOS_MAKEDEFAULTS
$TINYOS_MAKE_DIR/Makedefaults
TOSMAKE_PATH
TINYOS_ROOT_DIR_ADDITIONAL
Sem definição
n/a
TINYOS_NO_DEPRECATION_WARNING
Sem definição
Deste modo, fica concluída a instalação do TinyOS-2.x. A próxima secção apresenta os procedimentos para compilar e instalar uma aplicação num nó micaZ.
6.3 COMPONENTES E INTERFACES – O MEU PRIMEIRO PROGRAMA Esta secção ilustra a estrutura básica de um programa em nesC. Começa-se por apresentar as componentes principais que têm de existir em qualquer programa e a forma de interligar estas componentes. Esta é uma secção introdutória que pretende dar a conhecer os princípios básicos. As secções seguintes irão, de uma forma metódica, analisar a sintaxe de programação do nesC. As aplicações em nesC recorrem a dois elementos fundamentais: as componentes e as interfaces bidirecionais. Uma componente usa interfaces quando pretende utilizar funcionalidades de outras componentes e disponibiliza interfaces para que outras componentes possam utilizar as suas funcionalidades. É através destas interfaces que as várias componentes constituintes do programa nesC se ligam e interagem. 1
Fonte: https://github.com/tinyos/tinyos-main/blob/master/support/make/README.md.
134
© FCA – EDITORA DE INFORMÁTICA
SISTEMA OPERATIVO CONTIKI
7
FIGURA 7.15 – GERAR E POSICIONAR MOTES DO TIPO ANTERIORMENTE GERADO
A título de exemplo, pretendem gerar-se 10 motes com posição aleatória. Ao clicar em Create and Add, os 10 nós serão criados e aleatoriamente posicionados, tal como apresentado na Figura 7.16.
FIGURA 7.16 – VISUALIZAÇÃO DOS 10 NÓS ALEATORIAMENTE DISTRIBUÍDOS
A janela View permite configurar diversos parâmetros de visualização, acessíveis através do botão superior Select visualizer skins, como apresenta a Figura 7.16. De seguida clica-se no mote número 10 e pode observar-se o resultado apresentado na Figura 7.17.
FIGURA 7.17 – VISUALIZAÇÃO DOS 10 NÓS COM ALGUNS ATRIBUTOS ATIVOS E COM O NÓ 2 SELECIONADO © FCA – EDITORA DE INFORMÁTICA
189
REDES DE SENSORES SEM FIOS
Configurado o cenário de simulação, regressa-se ao painel de controlo da simulação e clica-se em Start. Na janela Log Listener, podem observar-se as mensagens “Hello, world” escritas por cada mote, juntamente com todas as mensagens de debug implementadas no sistema e na aplicação. Para além desta janela, ainda existe uma Timeline onde se pode observar a atividade do rádio, LED e watchpoints (Figura 7.18).
FIGURA 7.18 – EXECUÇÃO DA SIMULAÇÃO
Para além das funções base apresentadas, o simulador Cooja permite ainda adicionar inúmeros plugins como, por exemplo, plugins de suporte de mobilidade dos nós.
7.8 CONCLUSÃO Desenhado para sistemas com recursos de processamento, memória e energia limitados, o sistema operativo Contiki tem crescido de modo sustentável não só devido à enorme comunidade que o suporta e utiliza, mas também pela equipa que está na sua génese e que tem acompanhado e gerido ativamente todo o desenvolvimento deste sistema operativo. Neste capítulo apresentámos o referido sistema operativo e as suas características principais, incluindo uma visão geral sobre a sua estrutura nuclear, modo de instalação, características de programação e simulador. Apresentaram-se vários conceitos centrais 190
© FCA – EDITORA DE INFORMÁTICA
8 EXERCÍCIOS Nos capítulos anteriores foram apresentados dois dos sistemas operativos mais populares em redes de sensores sem fios, nomeadamente o TinyOS e o ContikiOS. Após terem sido analisados os fundamentos de cada um, é importante iniciar, na prática, a programação de aplicações para ambos os ambientes. Como tal, neste capítulo apresenta-se um conjunto de exercícios, de complexidade crescente, tanto para TinyOS como para ContikiOS. A maior parte dos exercícios está acompanhada pelas respetivas soluções.
8.1 INTRODUÇÃO Neste capítulo apresenta-se um amplo conjunto de exercícios que vão desde exemplos muito simples, como o típico “Hello World”, até exemplos de aplicações mais complexas, explorando não só as características de cada um dos dois sistemas operativos abordados nos Capítulos 6 e 7, como também a capacidade sensorial de cada nó, a implementação de novas estruturas e topologias de rede, a implementação de diferentes mecanismos de comunicação, incluindo o 6LoWPAN e, ainda, a integração de aplicações através de web services. Para além da diversidade de exercícios, este capítulo aposta, ainda, na heterogeneidade de plataformas de hardware nas quais as soluções apresentadas se baseiam. Como tal, este capítulo está organizado da seguinte forma: a secção 8.2 apresenta 24 exercícios para o sistema operativo TinyOS (Levis, 2005), 19 dos quais resolvidos. As resoluções apresentadas nesta secção baseiam-se na plataforma micaZ, utilizando como placa sensorial a mda100cb e como base station a placa mib520. Todas as plataformas podem ser consultadas em MEMSIC (2015). A secção 8.3, por sua vez, apresenta 15 exercícios para o sistema operativo Contiki (Dunkels, 2004), 11 dos quais resolvidos. Neste caso, a plataforma de hardware utilizada foi o TelosB. Por fim, a secção 8.4 conclui este capítulo.
8.2 EXERCÍCIOS PARA TINYOS Esta secção é composta por um conjunto de exercícios para o sistema operativo TinyOS, que permitirão ao leitor aplicar alguns dos conceitos explicados nos capítulos anteriores. No entanto, tal como em qualquer linguagem na área das ciências de computação, as soluções apresentadas são uma de muitas possíveis. © FCA – EDITORA DE INFORMÁTICA
193
REDES DE SENSORES SEM FIOS
8.2.1 EXERCÍCIO 1 – BLINK Enunciado Desenvolva uma aplicação que coloque o LED vermelho a piscar a cada 1 segundo.
Resolução Para implementar uma aplicação que responda ao que é pretendido é necessário: n
Utilizar a interface que permite o acesso aos LED;
n
Utilizar a interface timer para definir o intervalo de 1 segundo.
Assim, começa-se por criar o ficheiro do novo módulo ao qual se vai chamar Exercicio1C.nc. Como referido no Capítulo 6, o ficheiro é dividido em duas secções:
module e implementation. Na secção module irão ser indicadas as interfaces de sistema que se utilizarão. Embora, habitualmente, seja também nesta secção que se apresentam as interfaces oferecidas pelo módulo, neste exercício tal não é necessário, pois o módulo a desenvolver não disponibilizará nenhuma. Conforme referido, será apenas necessário recorrer às interfaces Leds e Timer. Como qualquer aplicação em TinyOS-2.x, a interface Boot irá também ser necessária para iniciar a aplicação. Assim, a secção module contém o seguinte código: module Exercicio1C { uses interface Timer<TMilli> as Timer; uses interface Leds; uses interface Boot; }
A biblioteca Time.h é necessária para se poder utilizar a interface Timer. Após completar a secção module, prossegue-se com o código da secção implementation: implementation { event void Boot.booted() { call Timer.startPeriodic(1024); } (cont.)
194
© FCA – EDITORA DE INFORMÁTICA
ACRÓNIMOS 3GPP – 3rd Generation Partnership Project 6LoWPAN – IPv6 over Low-power Wireless Personal Area Networks ACK – Acknowledgement ADC – Analog to Digital Converter AES – Advanced Encryption Standard AMPS – Advanced Mobile Phone Service AODV – Ad hoc On-Demand Distance Vector AP – Access Point API – Application Programming Interface ARQ – Automatic Repeat Request AuC – Authentication Center B-Mac – Berkeley-MAC bps – Bits per second (Bits por segundo) BS – Base Station BSC – Base Station Controller BTS – Base Transceiver Station CAP – Contention Access Period CDMA – Code Division Multiple Access (Acesso Múltiplo por Divisão em Código) CN – Core Network CN – Correspondent Node CoA – Care of Address CoAP – Constrained Application Protocol CPU – Central Processing Unit CRC – Cyclic Redundancy Check CSMA – Carrier Sense Multiple Access CSMA/CA – Carrier Sense Multiple Access with Collision Avoidance CSMA/CD – Carrier Sense Multiple Access with Collision Detection CTS – Clear to Send
© FCA – EDITORA DE INFORMÁTICA
307
90mm x 240mm
40mm
167 x 240mm
17mm
167 x 240mm
Redes de Sensores Sem Fios
M
Y
CM
MY
Através dos vários exemplos resolvidos, sumários da matéria abordada e exercícios teóricos e práticos, construa e desenvolva os seus programas em Python. Para estudantes e profissionais.
CY
CMY
K
Este livro, com múltiplos exemplos práticos, apresenta as bases e os conceitos que permitem compreender e aplicar as várias fases do desenvolvimento iterativo de uma boa interface utilizador.
Principais aspetos das redes de sensores sem fios abordados no livro:
. . . . . .
Este livro tem por objetivo proporcionar uma introdução, abrangente e atualizada, às redes de sensores sem fios, abordando os seus fundamentos, os protocolos utilizados, as principais tecnologias, os seus sistemas operativos e as correspondentes ferramentas de desenvolvimento. Adequado quer como livro de texto para apoio a alunos das disciplinas de licenciatura ou mestrado, quer como referência para profissionais no ativo, quer ainda para autoestudo, este livro propicia não apenas uma sólida formação teórica, essencial para a compreensão das matérias, como também uma abordagem prática de todas as questões essenciais, apoiada em exercícios práticos com exemplos resolvidos e exercícios abertos para execução em laboratório.
Conceitos base; Camadas protocolares das redes de sensores sem fios; Tecnologias para redes de sensores sem fios; Aspetos complementares; O sistema operativo TinyOS; O sistema operativo Contiki.
Jorge Sá Silva
Redes de Sensores Sem Fios
Professor Auxiliar no Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra e Investigador do Grupo de Comunicações e Telemática do Centro de Informática e Sistemas da Universidade de Coimbra. As suas áreas de investigação incluem as redes de sensores sem fios, a mobilidade e os protocolos de redes. Participa ativamente em várias iniciativas e projetos europeus, e tem várias publicações nacionais e internacionais. É, ainda, membro da Ordem dos Engenheiros e do Institute of Electrical and Electronics Engineers.
Ricardo Mendão Silva
Doutorado em Ciências e Tecnologias de Informação pela Universidade de Coimbra e Mestre em Engenharia Informática na mesma instituição, tem nos últimos anos trabalhado no desenvolvimento e aplicação de redes de sensores sem fios em diversos casos práticos, com especial enfoque no suporte à mobilidade com fiabilidade em ambientes críticos. Possui uma extensa experiência no desenho e implementação de protocolos de comunicação para sistemas embebidos de baixa capacidade, entre outros. É autor ou coautor de diversos artigos científicos publicados tanto em revistas como em conferências, na sua grande maioria internacionais. É, ainda, membro do Institute of Electrical and Electronics Engineers.
Fernando Boavida Jorge Sá Silva Ricardo Mendão Silva Fernando Boavida
Uma obra que ajuda estudantes e profissionais a compreenderem os sistemas de gestão de bases de dados relacionais. Com apresentação dos conceitos fundamentais, inclui variados exemplos e exercícios. ISBN 978-972-722-830-0
9 789727 228300
www.fca.pt
C
O livro inclui vários exercícios de aplicação para TinyOS (24 exercícios) e ContikiOS (15 exercícios), a maioria dos quais resolvidos.
Jorge Sá Silva Ricardo Mendão Silva Fernando Boavida
Redes de Sensores Sem Fios
Um valioso recurso para docentes e estudantes do Ensino Superior; profissionais; e na preparação de Certificações Red Hat. Inclui a configuração completa de um cenário prático real.
Vivemos num mundo em que as tecnologias da informação e comunicação desempenham um papel fundamental não só no plano lógico, mas também no plano físico. Cada vez mais as aplicações informáticas recorrem a variáveis ambientais, sensoriais, enriquecendo o mundo virtual com o real e vice-versa. Os sensores, ligados através de redes sem fios, são essenciais para a fusão destes dois mundos e para permitirem que, através da rede Internet, tenhamos acesso a todo o tipo de variáveis físicas.
90mm x 240mm
FCA
FCA
Professor Catedrático da Faculdade de Ciências e Tecnologia da Universidade de Coimbra e docente do Departamento de Engenharia Informática da mesma instituição. Possui uma extensa experiência de ensino, investigação e engenharia nas áreas de informática, redes e protocolos de comunicação, planeamento e projeto de redes, redes móveis e redes de sensores. É membro da Ordem dos Engenheiros e do Institute of Electrical and Electronics Engineers. É, ainda, coautor dos livros Engenharia de Redes Informáticas (10.ª Edição Atualizada e Aumentada), Administração de Redes Informáticas (2.ª Edição Atualizada e Aumentada) e TCP/IP – Teoria e Prática publicados pela FCA.