Você está na página 1de 102

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Programa de Pós-Graduação em Informática

Rede de Sensores sem Fio para Monitoramento


de Equipamentos Eletrônicos

Ilo Amy Saldanha Rivero

Belo Horizonte
2011
Ilo Amy Saldanha Rivero

Rede de Sensores sem Fio para Monitoramento


de Equipamentos Eletrônicos

Dissertação apresentado ao Programa de


Pós-Graduação em Informática da Pontifí-
cia Universidade Católica de Minas Gerais,
como requisito parcial para a obtenção do
Grau de Mestre em Informática.

Orientadora: Profa. Raquel Aparecida de


Freitas Mini

Belo Horizonte
2011
FICHA CATALOGRÁFICA
Elaborada pela Biblioteca da Pontifícia Universidade Católica de Minas Gerais

Rivero, Ilo Amy Saldanha


R621r Rede de sensores sem fio para monitoramento de equipamentos eletrônicos /
Ilo Amy Saldanha Rivero. Belo Horizonte, 2011.
101f.: il.

Orientadora: Raquel Aparecida de Freitas Mini


Dissertação (Mestrado) – Pontifícia Universidade Católica de Minas Gerais.
Programa de Pós-Graduação em Informática.

1. Sensoriamento remoto. 2. Computação móvel 3. Sistemas de comunicação


sem fio. 4. Radiofreqüência. I. Mini, Raquel aparecida de Freitas. II. Pontifícia
Universidade Católica de Minas Gerais. Programa de Pós-Graduação em
Informática. III. Título.

CDU: 528.7
Para minha filha Giovana.
AGRADECIMENTOS

Agradeço primeiramente a Deus por ter feito com que várias pessoas cruzassem o meu
caminho e me ajudassem nessa caminhada. Agradeço especialmente à minha esposa Silvia
pelo apoio, amor, dedicação, coragem e pela paciência enquanto estávamos distante um do
outro e de nossa filha, e sem o qual o Mestrado não seria possível. À minha mãe Anete, pelo
apoio incondicional, em todos os momentos, para que eu conseguisse atingir meus objetivos. À
minha prima Elaine, pelo acolhida inicial em Belo Horizonte.

À minha orientadora, Profa. Raquel Mini, meus agradecimentos especiais por confiar
e acreditar no meu trabalho, pela paciência nas inúmeras correções e ajustes necessários para
melhorar esta dissertação e, também, pelo apoio e incentivo para que eu pudesse voltar para BH
para trabalhar e possibilitar, com isso, o ingressar no Doutorado. Obrigado por tornar esse sonho
realidade. Ao Prof. Loureiro pelas palavras de incentivo na defesa e pelo voto de confiança para
o ingresso no Doutorado. Ao Max do Val, que indicou o excelente aluno da graduação Marcelo
Abi-Acl, que tanto ajudou no desenvolvimento desse trabalho e a quem também estendo os
agradecimentos.

Aos professores do Mestrado da PUC Minas, meus sinceros agradecimentos, pois aprendi
muitas coisas sobre computação: Prof. Mark, que me fez entender o que realmente era computa-
ção; Prof. Humberto, que me ensinou a como fazer com que os computadores me entendessem;
Prof. Henrique, que me ensinou como os computadores funcionavam por dentro; Profs. Ze-
nilton e Ana, que me ensinaram a como escrever e falar corretamente sobre os computadores;
Profa. Fátima, que me ensinou tudo sobre as siglas em telecomunicações, mostrando como os
computadores conversam; Prof. Silvio, que me ensinou o que era trivial e o que era não trivial
para os computadores (e que eles gostam de matemática); e, de novo, Profa. Raquel, que me
ensinou que os computadores vão desaparecer...

Agradeço também à Giovana Cássia pelo apoio, paciência e competência para resolver
as minhas demandas na secretaria. Meus agradecimentos ao Prof. Sandro Jerônimo, do MIC,
pelas oportunidades de trabalho e treinamento oferecidas. Ao pessoal do CRC/Prodabel, em
especial Conceição, Samir, Márcio e Geordana. Aos colegas e amigos da turma de 2009 do
Mestrado, Anna, Angelo, André, Cláudia, Francisco, Henrique, Kleber, Pedro, e também do
lab, Gabriel, Luciana e Felipe e a todos que colaboraram direta ou indiretamente para que este
trabalho fosse possível.
“Seu trabalho vai preencher uma parte grande
da sua vida, e a única maneira de ficar real-
mente satisfeito é fazer o que você acredita ser
um ótimo trabalho. E a única maneira de fazer
um excelente trabalho é amar o que você faz.”

Steve Jobs
RESUMO

A modernização das salas de aula permitiu novas metodologias de ensino, mas também
tornou o gerenciamento dos equipamentos eletrônicos utilizados como ferramentas de apren-
dizagem muito mais complexo. Problemas como controle do consumo de energia elétrica, de
utilização dos equipamentos e roubos estão se tornando comuns nas instituições de ensino. Este
trabalho propõe o desenvolvimento de uma Rede de Sensores sem Fio (RSSF), com o objetivo
de monitorar equipamentos eletrônicos, permitindo a uma instituição de ensino um controle
patrimonial em tempo real. O projeto de uma rede de sensores sem fio para monitoramento
de equipamentos eletrônicos exige não somente o desenvolvimento e montagem dos módulos
sensores, mas também precisa contemplar o desenvolvimento do software para gerenciar e tra-
tar os dados coletados, transformando-os em uma fonte de informação útil e confiável para os
administradores de um campus universitário. Foram desenvolvidos algoritmos para otimizar
as tarefas de identificação dos tipos de dados sensoreados e diminuir a quantidade de dados
redundantes transmitidos pela RSSF, melhorando o tempo de resposta da rede a um evento e
diminuindo o consumo de energia. Os experimentos realizados neste trabalho culminaram no
desenvolvimento de um nó sensor com um menor consumo de energia, se comparado aos nós
sensores utilizados inicialmente. O desenvolvimento do nó sensor, em conjunto com os algo-
ritmos desenvolvidos, permitiu um aumento no tempo de vida de um módulo sensor acima de
500%, além da redução do envio de dados redundantes em cerca de 59,7%. O desenvolvimento
do hardware do novo nó sensor também possibilitou uma redução de pouco mais de 40% no
custo de aquisição de módulos de RSSF, em relação aos nós sensores utilizados inicialmente
neste trabalho.

Palavras-chave: Computação ubíqua, rede de sensores sem fio, zigbee, equipamentos


eletrônicos, monitoração.
ABSTRACT

The classrooms modernization have enabled new teaching methods, but also made the
electronic devices management, used as tools for learning, much more complex. Issues such
as power consumption control, equipment utilization and thefts are becoming commonplace in
educational institutions. This paper proposes the development of a Wireless Sensor Network
(WSN), in order to monitor electronic equipments, allowing a real time equity control for edu-
cational institutions. The design of a wireless sensor network for environmental monitoring
requires not only the development and installation of sensor modules, but also must include
the software development to manage and process the data collected, turning them into a source
of reliable information for the college campus administrators. Algorithms were developed to
optimize the tasks of sensor type identification and decrease in the amount of redundant data
transmitted by the WSN, improving the network response time to an event and reducing energy
consumption. The experiments in this work culminated in the development of a new sensor
node, with a lower power consumption if compared to the sensor nodes used initially. The sen-
sor node development, together with the algorithms developed, allowed an increase in the sensor
module lifetime above 500%, while reducing the redundant data transmission about 59.7%. The
new sensor node development also provided a cost savings of up to 40% in WSN new modules
acquisition, compared to those originally used in this work.

Keywords: Ubiquitous computing, wireless sensor networks, zigbee, electronic equipa-


ment, monitoring.
LISTA DE FIGURAS

FIGURA 1 Sala de aula com projetor LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

FIGURA 2 Projetor LCD com gaiola e cadeado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

FIGURA 3 Componentes de um Nó Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

FIGURA 4 Exemplo de Topologia de uma Rede ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . 25

FIGURA 5 Camadas ZigBee e IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

FIGURA 6 Tipos de topologias da rede ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

FIGURA 7 Módulos de rádio XBee e tipos de antenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

FIGURA 8 Quadro de dados da API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

FIGURA 9 Quadro de Dados da API ID 0x90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

FIGURA 10 Programa X-CTU - Teste de Conexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

FIGURA 11 Configuração dos Parâmetros do Rádio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

FIGURA 12 Pinagem do Rádio XBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

FIGURA 13 Modos de Operação do XBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

FIGURA 14 Configuração dos Pinos do ATMega 328 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

FIGURA 15 Diagrama em blocos do sistema de clock do ATMega . . . . . . . . . . . . . . . . . . 38

FIGURA 16 Placa Arduino Duemilanove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

FIGURA 17 Arduino com XBee Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

FIGURA 18 Segurança Física de um Projetor LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

FIGURA 19 Exemplo de um nó sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44


FIGURA 20 Nó sensor U3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

FIGURA 21 Nó sensor SquidBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

FIGURA 22 Planta do local de monitoramento e topologia da rede . . . . . . . . . . . . . . . . . . 50

FIGURA 23 Módulos Sensores pra Monitoramento de Ambientes . . . . . . . . . . . . . . . . . . 51

FIGURA 24 Caixa de proteção do nó roteador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

FIGURA 25 Disposição do nó roteador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

FIGURA 26 Sensor de presença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

FIGURA 27 Operação de concatenação de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

FIGURA 28 Algoritmo dos Níveis de Alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

FIGURA 29 Aplicação PUCAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

FIGURA 30 Nó sensor para monitoramento de projetores LCD . . . . . . . . . . . . . . . . . . . . . 62

FIGURA 31 Experimento da Aplicação de Monitoramento . . . . . . . . . . . . . . . . . . . . . . . . . 63

FIGURA 32 Experimento para medir o tempo de vida do nó sensor . . . . . . . . . . . . . . . . . 64

FIGURA 33 Ciclo de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

FIGURA 34 Tela da aplicação para teste de tempo de vida do nó sensor . . . . . . . . . . . . . 66

FIGURA 35 Módulo sob descarga Contínua da bateria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

FIGURA 36 Módulo sensor Arduino com rádio no modo cyclic sleep . . . . . . . . . . . . . . . 68

FIGURA 37 Placa Modulino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

FIGURA 38 Consumo de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

FIGURA 39 Diagrama esquemático da placa Modulino . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

FIGURA 40 Módulo sensor modulino com dormência cyclic sleep . . . . . . . . . . . . . . . . . . 74

FIGURA 41 Módulo sensor Modulino com algoritmo de níveis de alerta . . . . . . . . . . . . 75


FIGURA 42 Tempo de vida do nó sensor (horas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

FIGURA 43 Quantidade de dados transmitidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

FIGURA 44 Transmissões efetuadas por minuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78


LISTA DE TABELAS

TABELA 1 Faixas de frequência do protocolo IEEE 802.15.4. . . . . . . . . . . . . . . . . . . . . 24

TABELA 2 Configuração dos Nós Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

TABELA 3 Tipos de Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

TABELA 4 Consumo de Energia - valores em miliamperes . . . . . . . . . . . . . . . . . . . . . . . 63

TABELA 5 Orçamento dos componentes da placa Modulino . . . . . . . . . . . . . . . . . . . . . . 81

TABELA 6 Orçamento da Placa Arduino e Rádio XBee . . . . . . . . . . . . . . . . . . . . . . . . . . 81


LISTA DE ABREVIATURAS E SIGLAS

ADC Analog Digital Converter

AES Advanced Encryptation System

ALU Aritmetic Logic Unit

API Application Programming Interface

CSMA/CA Carrier Sense Multiple Access with Collision Avoidance

CTS Clear-to-Send

DIP Dual In-line Package

E/S Entrada e Saída

FFD Full Function Device

FTDI Future Technology Devices International

Ghz Gigahertz

IEEE Institute of Electrical and Electronics Engineers

kbps Kilobits por segundo

LCD Liquid Crystal Display - Tela de Cristal Líquido

LED Light Emission Diode

LSB Least Significant Byte

MAC Medium Access Control

Mhz Megahertz

MSB Most Significant Byte

PIR Passive Infrared

PWM Pulse Width Modulation

RF Rádio Frequência
RFD Reduced Function Device

RISC Reduced Instruction Set Computer

RSSF Rede de Sensores sem Fio

RSSI Received Signal Strength Indicator

RTS Request-to-Send

SMD Surface Mount Device

USART Universal Synchronous Asynchronous Receiver Transmitter

ZDO ZigBee Device Objects


SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 FUNDAMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.1 Rede de Sensores sem Fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 Padrão ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.1 Protocolo IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.2 Funcionamento do ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.3 Camadas do ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.3 Rádio XBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.2 Formato de Envio e Recepção de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3.3 Configuração do Rádio XBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3.4 Portas de Entrada/Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.5 Modos de Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.4 Microcontrolador ATMega 328 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.4.2 Portas de Entrada/Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.4.3 Gerenciamento de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.4.4 Plataforma Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.4.5 XBee Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1 Monitoramento de Ambientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2 Aplicações em Redes Sensores Sem Fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3 Desenvolvimento e Adaptação de Módulos de RSSF . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.4 Economia de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4 MONITORAMENTO DE EQUIPAMENTOS ELETRÔNICOS . . . . . . . . . . . . . . . . . 49

4.1 Implantação da RSSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.1.1 Análise do Ambiente a ser Monitorado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.1.2 Configuração da Rede de Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2 Desenvolvimento da Aplicação de Monitoramento . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.1 Visão Geral da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.2 Algoritmo de Integração de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.2.3 Algoritmo de Níveis de Alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.2.4 Aplicação PUCAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.3 Resultados Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.3.1 Aplicação de Monitoramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.3.2 Consumo de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.3.3 Tempo de Vida do Nó Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.3.4 Análise do Consumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.4 Nó Sensor Modulino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5 RESULTADOS OBTIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2 Tempo de Vida da Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.3 Quantidade de Bytes Transmitidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.4 Tempo de Resposta a um Evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.5 Custo do Nó Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82


REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

APÊNDICE A -- CONFIGURAÇÃO DO RÁDIO XBEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

APÊNDICE B -- CÁLCULO DO DUTY CYCLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

APÊNDICE C -- MAPEAMENTO DAS PORTAS DO ARDUINO PARA O MICRO-


CONTROLADOR ATMEGA 328 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

APÊNDICE D -- RELATO: ASPECTOS POSITIVOS E NEGATIVOS DO DESEN-


VOLVIMENTO DA RSSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

ANEXO A -- DIAGRAMA ESQUEMÁTICO DO ARDUINO . . . . . . . . . . . . . . . . . . . . . . . 98

ANEXO B -- DIAGRAMA ESQUEMÁTICO DO XBEE SHIELD . . . . . . . . . . . . . . . . . . . 99

ANEXO C -- ARQUITETURA DO MICROCONTROLADOR ATMEGA 328 . . . . . . . 100


18

1 INTRODUÇÃO

1.1 Motivação

Há alguns anos, as salas de aula eram simples, compostas apenas por mesas, carteiras e
um quadro negro. Com a tecnologia chegando às salas de aula, os ambientes de ensino estão
mais complexos, com aulas sendo ministradas através de projetores Liquid Crystal Display -
Tela de Cristal Líquido (LCD), apresentações de vídeos em aparelhos de DVD e computadores
com acesso à internet, como pode ser observado na figura 1. Apesar dos benefícios no ensino,
essa nova infraestrutura presente em algumas escolas e universidades torna mais complexo o
gerenciamento do patrimônio.

Figura 1: Sala de aula com projetor LCD

Fonte: Elaborado pelo autor

Um problema enfrentado por instituições de ensino é o furto de equipamentos eletrôni-


cos de dentro das salas de aula. Um projetor LCD é um equipamento eletrônico leve, de valor
elevado e de dimensões compactas, podendo ser carregado dentro de mochilas ou bolsas. O
custo e a portabilidade de um projetor LCD o torna um alvo potencial para a ação de crimino-
19

sos. Para uma instituição de ensino, o furto de um projetor LCD acarreta não somente o prejuízo
financeiro relativo ao equipamento, mas também causa um prejuízo no ensino, causando trans-
torno a professores e alunos. O furto de equipamentos também leva a um aumento dos gastos
em segurança e na reparação do patrimônio afetado, aumentando, por consequência, o custo
para a manutenção das atividades de ensino.

Dentre as soluções utilizadas para coibir o furto de projetores LCD destacam-se a uti-
lização de meios físicos de proteção, como armários, gaiolas com cadeado (figura 2) e travas
Kensington. Apesar dessas soluções tornarem a ação criminosa mais difícil, são tecnologias
passivas, não alertando os órgãos de segurança das instituições sobre um furto em andamento.
Um criminoso pode utilizar ferramentas como serras e alicates para cortar um cabo de aço ou
cadeado. Uma proposta para alertar a central de segurança de um campus universitário a res-
peito de um possível furto é a utilização de tecnologias de comunicação sem fio, permitindo o
monitoramento em tempo real de qualquer atividade suspeita.

Figura 2: Projetor LCD com gaiola e cadeado

Fonte: Elaborado pelo autor

A Rede de Sensores sem Fio (RSSF) é uma tecnologia de comunicação sem fio que uti-
liza dispositivos de rede de baixo consumo de energia. Esses dispositivos de rede transmitem
dados coletados por sensores, permitindo monitorar tanto o estado de utilização de um equi-
pamento eletrônico quanto o ambiente em que esse equipamento está inserido, com pouco ou
nenhum impacto físico nesse ambiente (MINI; LOUREIRO, 2008). Os dispositivos de rede
de uma RSSF são também chamados de módulos sensores e são compostos por um rádio de
comunicação, uma unidade de processamento, por sensores e por baterias. Uma vez que os
módulos sensores são alimentados por baterias, o tempo de monitoramento de um equipamento
20

eletrônico é limitado pela capacidade de carga dessas baterias. Em um campus universitário,


um equipamento eletrônico pode permanecer inativo nos períodos de recesso escolar. Para a
utilização de uma RSSF para o monitoramento de equipamentos eletrônicos, é primordial que
o módulo sensor possua o menor consumo possível de energia, sem prejudicar a atividade de
monitoramento e que possibilite esse monitoramento durante os períodos de recesso escolar.

Uma solução para diminuir o consumo de energia é o desenvolvimento de uma aplicação


no módulo sensor para controlar a atividade do rádio de comunicação, componente que mais
consome energia. Uma análise do consumo de energia de cada componente do módulo sensor
bem como a adaptação desse módulo para que ele atenda aos requisitos necessários para realizar
a atividade de monitoramento também são abordagens possíveis para economizar o máximo de
energia possível.

Uma infraestrutura de rede de sensores sem fio é composta de módulos sensores, mó-
dulos roteadores e um módulo coordenador para receber e processar as informações transmiti-
das pela rede. A implementação de uma infraestrutura de RSSF em um campus universitário
permite não apenas o monitoramento de equipamentos eletrônicos, mas também permite o de-
senvolvimento de aplicações com características de Computação Ubíqua (WEISER, 1991). A
computação ubíqua tem como principal característica a computação presente nos ambientes,
interagindo com os seres humanos de forma transparente.

Com a infraestrutura de RSSF implementada em um ambiente, é possível utilizá-la para


atividades como controlar o consumo de energia elétrica, apurar a presença de alunos e pro-
fessores nas salas de aula, bem como controlar os acessos dos mesmos aos laboratórios ou
ambientes de acesso restrito. O monitoramento de equipamentos eletrônicos através da RSSF
permite não somente melhorar a segurança patrimonial de um campus universitário, mas per-
mite também que a infraestrutura de rede utilizada para esse monitoramento possa ser utilizada
no desenvolvimento de novas formas de interação entre entre os envolvidos na atividade de
ensino, através da aplicação dos conceitos da computação ubíqua.
21

1.2 Objetivos

O objetivo deste trabalho é desenvolver uma rede de sensores sem fio para monitorar pro-
jetores LCD em um campus universitário, utilizando módulos de RSSF baseados na plataforma
de prototipagem rápida Arduino (ARDUINO, 2009a) e no rádio de comunicação XBee (DIGI,
2009a), tendo como protocolo de comunicação da RSSF o padrão ZigBee (ALLIANCE, 2009).
Para atingir o objetivo proposto, este trabalho apresenta experimentos para verificar o tempo de
vida de um módulo sensor e efetividade da atividade de monitoramento proposta. Com base
na análise dos experimentos, este trabalho apresenta um algoritmo para maximizar o tempo de
vida da rede e um novo módulo de RSSF, chamado Modulino, com menor consumo de energia
e menor custo em relação ao Arduino.

Os resultados deste trabalho mostram que é possível utilizar uma RSSF baseada no pro-
tocolo ZigBee para realizar o monitoramento de equipamentos eletrônicos. O desenvolvimento
de um novo módulo sensor, chamado Modulino, permite um aumento do tempo de vida da rede
de mais de 500%, em comparação à solução de mercado adotada no início neste trabalho. O
nó sensor Modulino, em conjunto com o desenvolvimento de algoritmos de concatenação de
dados e de níveis de alerta, reduzem a quantidade de dados transmitidos em mais de 59,7%, ao
mesmo tempo que permitem uma diminuição do consumo de energia do nó sensor. As soluções
apresentadas neste trabalho permitem uma melhor escalabilidade e um aumento no tempo de
vida da rede, além de uma redução de 40% no custo de desenvolvimento do nó sensor.

1.3 Organização do Trabalho

Este trabalho está dividido da seguinte forma: no capítulo 2 é apresentada a fundamen-


tação teórica, envolvendo redes de sensores sem fio, consumo de energia e os componentes da
rede de sensores. No capítulo 3, são apresentados os trabalhos relacionados, onde são citados os
trabalhos sobre monitoramento de ambientes, aplicações em redes sensores sem fio, adaptação
de módulos de RSSF e economia de energia. No capítulo 4, é descrita a infraestrutura da rede
para monitoramento de ambientes, bem como os resultados preliminares do funcionamento da
rede e é feita a proposta de um novo módulo de rede. No capítulo 5, são apresentados os re-
sultados da implementação da rede. Por fim, no capítulo 6, são apresentadas as conclusões e
trabalhos futuros.
22

2 FUNDAMENTOS

Neste capítulo é apresentado o referencial teórico utilizado neste trabalho. A seção 2.1
apresenta os conceitos sobre rede de sensores sem fio, sua composição e arquitetura. O padrão
de comunicação ZigBee e sua implementação sobre o protocolo IEEE 802.15.4 é apresentado
na seção 2.2. Os módulos de RSSF neste trabalho utilizam o rádio de comunicação XBee,
apresentado na seção 2.3, onde é mostrada a arquitetura do rádio de comunicação, o formato
das mensagens enviadas e recebidas, a configuração e os modos de operação do rádio. Na seção
2.4 é apresentado o microcontrolador ATMega 328, utilizado em conjunto com o rádio XBee
no módulo sensor, o funcionamento das portas de entrada e saída e o gerenciamento de energia
do microcontrolador, sendo descritas também as placas Arduino e XBee Shield, utilizadas como
solução de mercado para RSSF.

2.1 Rede de Sensores sem Fio

A Rede de Sensores sem Fio (RSSF) é uma tecnologia de comunicação sem fio que
utiliza dispositivos de rede de baixo consumo de energia. Esses dispositivos de rede, também
denominados nós sensores, transmitem dados coletados por sensores, permitindo sensorear o
ambiente em que esse equipamento está inserido, com pouco ou nenhum impacto físico nesse
ambiente. Mini e Loureiro (2008) citam que as RSSF diferem das redes tradicionais ad hoc e
sem fio (WiFi e WiMax) por diversos fatores: limitação de energia, localização dinâmica, não
possuem uma topologia previamente definida, podem ser extremamente densas e trabalham de
forma colaborativa, uma vez que um nó sensor encaminha as informações para outro nó sensor
até que essa informação chegue ao destino.

Um nó sensor é composto por um rádio de comunicação para transmissão e recepção


de dados, conectado a uma antena, e um microcontrolador para controlar a entrada e saída
de dados, efetuar o processamento dos sinais recebidos dos sensores através de conversores
analógicos-digitais (BIGNELL; DONOVAN, 1995). Um módulo de nó sensor pode também
possuir dispositivos atuadores, como por exemplo relés, lâmpadas LED ou motores, podendo
ativá-los e desativá-los de acordo com os dados recebidos pelo rádio. Por fim, a bateria, que
fornece a energia necessária para o funcionamento de todo o módulo (figura 3).
23

Figura 3: Componentes de um Nó Sensor

Fonte: Elaborado pelo autor

Quando um dado é coletado pelo sensor, ele passa pelo conversor analógico digital e é
preparado para o envio para o rádio (TX). Os rádios de comunicação possuem buffers tanto para
envio quanto para recepção de dados, permitindo controlar o fluxo de transmissão e recepção
(RX). O rádio converte os sinais recebidos pela antena Rádio Frequência (RF) em bytes para
serem transmitidos de forma serial. Tanto o rádio quanto o microcontrolador possuem sistemas
para o controle e gerenciamento de energia, permitindo a economia de energia quando não
estão em uso. A recepção e a transmissão de RF pela antena não ocorre de forma simultânea,
por este motivo é utilizada uma chave RF para alternar o rádio para os modos de recepção ou
de transmissão.

O componente que consome mais energia em uma RSSF é o rádio de comunicação (MINI;
LOUREIRO, 2008). Transmitir um bit de informação, em termos de consumo de energia, é
equivalente ao processamento de 3000 instruções (MASRI; MAMMERI, 2007). Em RSSF,
uma solução para economizar energia é analisar e processar as informações dos sensores no
microcontrolador módulo sensor, transmitindo apenas os dados que estão de acordo com os
requisitos do projeto da rede, tendo também um importante papel na agregação de dados (HA-
DIM; MOHAMED, 2006). Neste trabalho, o microcontrolador realiza o tratamento dos dados
antes da transmissão, permitindo economizar energia ao enviar apenas informações que sejam
relevantes para o objetivo da rede.

2.2 Padrão ZigBee

Esta seção apresenta o padrão ZigBee, padrão este desenvolvido com base no protocolo
IEEE 802.15.4. O protocolo IEEE 802.15.4 é apresentado na seção 2.2.1. O funcionamento do
ZigBee é descrito na seção 2.2.2, onde são apresentadas as topologias utilizadas e a descrição
24

dos componentes que da rede. Na seção 2.2.3, é apresentada a arquitetura em camadas do


padrão ZigBee.

2.2.1 Protocolo IEEE 802.15.4

O protocolo IEEE 802.15.4 foi ratificado pelo Institute of Electrical and Electronics
Engineers (IEEE) (IEEE, 2009) como padrão para redes de baixa velocidade e baixo consumo
de energia, sendo por esta razão utilizado em RSSF. As redes IEEE 802.15.4 operam na faixa
de frequência de 2, 4 Gigahertz (Ghz) - de 2400 a 2483,5 Megahertz (Mhz), e com taxa de
transmissão de 250 Kilobits por segundo (kbps). Outras faixas de frequência são permitidas pelo
protocolo, com variação do número de canais de comunicação e da velocidade de transmissão,
como pode ser observado na tabela 1.

Tabela 1: Faixas de frequência do protocolo IEEE 802.15.4.


Frequência 868,3 Mhz 902-928 Mhz 2400 a 2483,5 Mhz
No de Canais 1 10 16
Data Rate (kbps) 20 40 250
Local Europa América Mundial
Fonte: Kohvakka et al. (2006)

O protocolo IEEE 802.15.4 implementa camadas física e Medium Access Control (MAC),
deixando as camadas de rede e superiores livres para implementação de acordo com a utilização.
A camada física é a responsável pela interligação do protocolo com o rádio de comunicação e
provê serviços para a camada imediatamente superior, que controla o acesso à rede, a camada
MAC (FARAHANI, 2008). Como o IEEE 802.15.4 define apenas estas duas camadas, ele per-
mite que outros protocolos o utilizem como base para a implementação de camadas superiores,
como é o caso do protocolo ZigBee, visto na seção 2.2.2.

O protocolo IEEE 802.15.4 opera com dois tipos de dispositivos físicos: o Full Function
Device (FFD), que é responsável pelo roteamento na rede, sendo que um nó FFD é utilizado
como coordenador da rede, controlando a topologia e endereçamento dos nós e também como
roteador, fazendo o encaminhamento de mensagens; e o Reduced Function Device (RFD), que
é um dispositivo de baixo custo, não faz roteamento e só pode se conectar a um nó FFD de
cada vez. O roteamento permite que um nó encaminhe uma mensagem de um nó RFD ou FFD
para outros nós FFD até o nó coordenador e normalmente tanto os nós FFD para roteamento
quanto os nós FFD coordenadores necessitam de uma fonte de energia constante, pois neces-
sitam estar ativos a todo o momento para a transmissão de mensagens, diferente dos nós RFD
que normalmente são alimentados por baterias e necessitam economizar o máximo de energia
possível.
25

2.2.2 Funcionamento do ZigBee

O padrão ZigBee (ALLIANCE, 2009) foi especificado pela ZigBee Alliance em 2006
e utiliza as camadas física e MAC do protocolo IEEE 802.15.4, adicionando as camadas de
rede e aplicação, além de criptografia AES de 128 bits e pode endereçar até 65535 nós por
sub-rede. Um exemplo deste tipo de topologia pode ser visto na figura 4, em que o nó ZigBee
Coordinator (C) e ZigBee Router (R) são implementados como nós FFD e o ZigBee End Device
(E) é implementado como nó RFD, uma vez que não faz roteamento. Neste trabalho, o nó
ZigBee End Device é denominado nó sensor.

Figura 4: Exemplo de Topologia de uma Rede ZigBee

Fonte: Elaborado pelo autor

O funcionamento de uma rede ZigBee é descrito a seguir. O nó coordenador inicializa


a rede, selecionando um canal de comunicação e um identificador para essa rede, denominado
PAN ID. O nó coordenador permite que nós roteadores e nós sensores ingressem na rede, auxi-
liando o roteamento de dados e o armazenamento de pacotes para os nós que não estejam ativos
(em dormência). Por esse motivo, o nó coordenador deve estar sempre ativo e com uma fonte
constante de alimentação. Os nós roteadores podem começar a transmitir, receber ou rotear da-
dos após terem ingressado em uma rede iniciada pelo coordenador. Os nós roteadores também
permitem que outros roteadores e nós sensores ingressem na rede. Assim como o nó coorde-
nador, os nós roteadores devem estar sempre ativos, devido ao roteamento e ao armazenamento
de pacotes destinados aos nós não ativos.

Os nós sensores devem ingressar em uma rede através de um roteador ou de um coor-


denador antes de começarem a transmitir e receber dados. Outros nós participantes não podem
ingressar na rede através de um nó sensor e, ao contrário dos nós coordenador e roteador, o nó
sensor sempre deve transmitir e receber dados através do nó pelo qual ele ingressou na rede (nó
pai). O nó sensor também pode entrar em modo de economia de energia para aumentar o tempo
de vida da rede.

Na rede ZigBee, existe apenas um nó coordenador por rede, independentemente do tipo


da topologia utilizada. Ao iniciar uma rede, o nó coordenador estabelece um identificador único
26

da rede (PAN ID). Esse identificador será comum a todos os outros nós que ingressarem nessa
rede. Normalmente os dispositivos ZigBee são pré-configurados com um endereço PAN ID para
serem adicionados a uma rede existente, mas podem também selecionar um PAN ID de alguma
rede próxima para solicitar o ingresso. O PAN ID é composto por dois endereços, um de 16 bits
e outro de 64 bits. A quantidade de combinações do endereço de 16 bits (65535 possibilidades)
faz com que exista a possibilidade de duas redes diferentes utilizarem o mesmo PAN ID e por
este motivo também é utilizado o endereço de 64 bits como identificador da rede.

2.2.3 Camadas do ZigBee

Esta seção apresenta a arquitetura de camadas da rede ZigBee, importante para entender
o funcionamento do protocolo e sua implementação sobre o protocolo IEEE 802.15.4. No
trabalho de Adams (2006) é descrito o funcionamento das camadas física e MAC do protocolo
IEEE 802.15.4, além citar como a camada de rede é implementada em conjunto com o protocolo
ZigBee. Tanto o protocolo IEEE 802.15.4 quanto o protocolo ZigBee foram alvo de uma análise
e de uma simulação em cenários de larga escala no trabalho de Kohvakka et al. (2006). Na
figura 5 é apresentada a estrutura de camadas da rede ZigBee, onde pode ser visualizada a
implementação do padrão ZigBee sobre o protocolo IEEE 802.15.4.

Figura 5: Camadas ZigBee e IEEE 802.15.4

Fonte: Adaptado de (FARAHANI, 2008)

Na camada física é definida a sensibilidade de recepção, número de canais, rejeição de


um canal e a especificação da taxa de transmissão de dados. As redes ZigBee operam na faixa
de frequência de 2, 4 Ghz e com taxa de transmissão de 250 kbps, a mesma do protocolo IEEE
802.15.4, visualizada na tabela 1.
27

Na camada MAC é realizado o gerenciamento da transmissão de dados entre nós vi-


zinhos, por difusão, incluindo serviço de reenvio de transmissões e de técnicas de prevenção
de colisão Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) (FARAHANI,
2008), provendo também serviços de associação e desassociação de nós na rede.

A camada de rede adiciona a capacidade de roteamento, permitindo que pacotes de da-


dos trafeguem por múltiplos dispositivos, da origem até o destino. Apenas os nós coordenadores
e roteadores possuem a capacidade da descoberta de rotas, escolhendo o melhor caminho para
os dados dos nós sensores. No nó coordenador, a camada de rede é responsável pelo estabeleci-
mento inicial da rede, pela definição da topologia utilizada, como mesh, estrela ou árvore(figura
6), e pela atribuição dos endereços da rede a todos os participantes.

Figura 6: Tipos de topologias da rede ZigBee

Fonte: Elaborado pelo autor

A rede ZigBee trabalha com vários tipos de roteamento. No trabalho de Sun et al. (2007),
é apresentada uma descrição das topologias mesh, estrela e árvore, bem como os protocolos
de roteamento AODV, Cluster Tree e roteamento integrado, além de fazer uma análise dos
protocolos com foco no mecanismo de roteamento, custo e manutenção. Cuomo et al. (2008)
apresentam uma análise do funcionamento das topologias de rede no protocolo IEEE 802.15.4,
fazendo uma simulação nos cenários com um único destino e com múltiplos destinos, para os
pacotes que trafegam na rede.

A camada de suporte de aplicação interliga a camada de rede à camada de aplicação


também provê a funcionalidade, junto com a camada de rede, de segurança e criptografia de 128
bits Advanced Encryptation System (AES) através de uma chave única. A camada de suporte
de aplicação fornece o suporte para a camada mais alta do protocolo ZigBee, a camada de
aplicação, onde são definidos os perfis de aplicação, que podem ser públicos ou privados. A
camada de suporte de aplicação fornece suporte para até 240 perfis de aplicação, nesta camada
denominados endpoints.

Os perfis públicos são mantidos pela ZigBee Alliance e descrevem funcionalidades e


tipos de dispositivos utilizados em cada perfil (ALLIANCE, 2009), como por exemplo, auto-
mação doméstica, gerenciamento de energia (smart energy), automação de prédios comerciais,
28

dentre outros. No perfil de gerenciamento de energia, são definidos, por exemplo, dispositivos
como termostato e controle de carga. O perfil de gerenciamento de energia define também a
funcionalidade requerida por cada dispositivo, como, por exemplo, um controle de carga deve
responder a um comando padronizado para ser ativado ou desativado. Isto permite que diferen-
tes fabricantes de dispositivos possam interagir com diferentes fabricantes de nós ZigBee. Os
fabricantes podem, também, desenvolver perfis privados, para aplicações proprietárias e espe-
cíficas, mas devem manter a compatibilidade com o padrão ZigBee.

Em cada dispositivo compatível com o padrão ZigBee é implementado o ZigBee Device


Objects (ZDO), como sendo o endpoint 0, utilizado para a descoberta e gerenciamento do perfil.
Como gerenciamento, o ZDO pode inicializar as camadas de suporte de aplicação e de rede,
bem como o serviço de segurança e criptografia. Como serviço de descoberta, o ZDO pode
solicitar, por exemplo, a identificação de todos os dispositivos na rede para a camada de rede.
Neste trabalho, foi utilizado o perfil padrão do protocolo ZigBee, adotado no rádio XBee, visto
na seção 2.3.

2.3 Rádio XBee

2.3.1 Introdução

Esta seção apresenta o rádio XBee, utilizado neste trabalho como rádio de comunicação
da RSSF proposta. Os módulos XBee foram escolhidos por terem representante oficial no Brasil
e por serem utilizados em trabalhos de domótica (BOLZANI; MONTAGNOLI; NETTO, 2006)
e em aplicações de RSSF (LOUSADA, 2009) (LIBELIUM, 2009). Em (EADY, 2007), são
apresentadas implementações de hardware de rádios de comunicação ZigBee, de fabricantes
como Texas Instruments, Maxstream (Digi International) e Freescale.

Os módulos de comunicação XBee (DIGI, 2009a), denominado rádio XBee neste traba-
lho, adotam os protocolos IEEE 802.15.4 e ZigBee. A fabricante do rádio XBee, a Digi Interna-
tional, disponibiliza dois modelos de rádio XBee. O primeiro modelo implementa estritamente
o protocolo IEEE 802.15.4, modelo este denominado Series 1. O segundo modelo, denominado
Series 2, utilizado neste trabalho, além do IEEE 802.15.4, implementa o padrão ZigBee, e, ao
contrário do modelo Series 1, permite a utilização de redes do tipo Mesh.

Segundo Farahani (2008), o rádio XBee não possui controle de potência, ou seja, não
importa a distância entre o nó sensor e o nó coordenador, a potência utilizada para a transmissão
dos dados é a mesma. Por este motivo, o controle do estado de atividade do rádio é muito
importante, pois permite que o rádio seja desligado sempre que estiver ocioso. Os módulos
podem ser fornecidos com as implementações de antena de fio, conector para antena externa
padrão U.FL (conector coaxial em miniatura) e antena de chip (figura 7), utilizados de acordo
29

Figura 7: Módulos de rádio XBee e tipos de antenas

Fonte: Digi (2009b)

com a necessidade da aplicação.

Na seção 2.3.2, são descritos os formatos de envio e recepção de dados dos rádios XBee.
Na seção 2.3.3, são apresentadas as formas de configuração do rádio. Na seção 2.3.4, é descrita
a configuração das portas de entrada e saída do módulo de configuração. Por último, na seção
2.3.5, os modos de operação e de economia de energia do rádio XBee são apresentados.

2.3.2 Formato de Envio e Recepção de Dados

O rádio XBee trabalha com dois modos de operação de transmissão e recepção de da-
dos. No primeiro modo, Transparent Operation ou AT, os dados são enviados e recebidos
diretamente pela porta serial, tendo uma interface simples e sendo mais fácil o desenvolvimento
de aplicações, bastando a aplicação se conectar à porta serial do módulo e enviar os dados uti-
lizando comandos AT. Este modo, apesar de simples, não é escalável para enviar dados para
múltiplos destinatários e também não permite o envio de configurações remotas de módulos.

O segundo modo, que é utilizado neste trabalho, é o modo Application Programming In-
terface (API), baseado no envio e recepção de quadro de dados, especificando como comandos,
respostas de comandos e mensagens sobre o estado de funcionamento do módulo são enviados
e recebidos, permitindo um aumento na escalabilidade da rede. Comandos AT também podem
ser enviados e recebidos através do modo API, permitindo a coexistência dos dois modos em
uma rede. A estrutura do quadro de dados é descrita na figura 8 e as aplicações que utilizem o
modo API devem estar em conformidade com esta estrutura.

O quadro de dados da API tem como delimitador inicial 1 byte com o valor 0x7E,
seguidos por dois bytes com o tamanho do quadro de dados, dividido em Most Significant
Byte (MSB) - Byte Mais Significativo e Least Significant Byte (LSB) - Byte Menos Significativo.
No tamanho do quadro de dados não está incluso o último byte, de checksum.

Dependendo do tipo da API, o tamanho do quadro de dados pode variar significativa-


mente. Na versão do firmware do módulo utilizado neste trabalho, estão disponíveis dezoito
30

Figura 8: Quadro de dados da API

Fonte: Adaptado de Digi (2009a)

tipos de APIs, e, dependendo do firmware utilizado no rádio, a quantidade de APIs existentes e


o formato do quadro de dados podem variar. Um exemplo de quadros de dados e identificadores
de API podem ser observados na tabela 7 do Apêndice A.

A aplicação para monitoramento de uma rede de sensores deve reconhecer e tratar os


dados recebidos, uma vez que nem todas as API IDs são necessárias para implementar uma rede.
Neste trabalho, para a aplicação de monitoramento receber os dados enviados pelos sensores,
é utilizada a API ID 0x90 (ZigBee Receive Packet) e, como todas as outras API IDs, segue a
especificação apresentada na figura 8.

Na API ID 0x90, os primeiros 8 bytes (5 a 12) do quadro após o cmdID (neste caso
0x90) são referentes ao endereçamento de 64 bits e os dois bytes subsequentes (13 e 14) são
referentes ao endereçamento de 16 bits, todos do nó que envia o pacote de dados. Com essas
informações é possível identificar a origem do pacote, sabendo de qual sensor os dados foram
enviados.

Figura 9: Quadro de Dados da API ID 0x90

Fonte: Adaptado de Digi (2009a)

O byte 15, Opções de Recebimento, indica o tipo do pacote recebido, se é reconhecido


(código 0x01), se é um pacote de broadcast (0x02), se é um pacote criptografado (0x20) e se o
pacote foi enviado por um nó end device (0x40). Os códigos podem ser combinados, com por
exemplo, se é recebido um código 0x61, significa que foi um pacote reconhecido, encriptado e
31

Figura 10: Programa X-CTU - Teste de Conexão

Fonte: Elaborado pelo autor

enviado por um nó end device. A estrutura da API ID 0x90 pode ser observada na figura 9.

2.3.3 Configuração do Rádio XBee

A configuração do módulo XBee é efetuada através do programa X-CTU (DIGI, 2010),


desenvolvido pelo fabricante do rádio XBee. Para configurar o módulo (figura 10) é necessário
inicialmente selecionar a porta serial, taxa de transferência (bauds/bps), controle de fluxo (flow
control), bits de dados (data bits), paridade (parity) e bits de parada (stop bits).

Após a configuração das opções de conexão, deve-se realizar o teste de conexão, através
do botão Test/Query. Caso esteja correta a configuração, deverá aparecer uma janela com a frase
Communication with modem OK, o tipo do modem (Modem type) e a versão do firmware (Mo-
dem firmware version). Outras opções do programa X-CTU incluem Range Test, para testar a
conexão entre módulos, Terminal, utilizado para verificar a recepção de dados da porta serial e
interagir com o módulo no modo AT e, por último, Modem Configuration, onde são realizadas
as configurações dos parâmetros do modem, atualização e escolha do firmware, do conjunto de
funções do módulo (coordenador, roteador ou nó sensor) e salvar e recuperar esses parâmetros
em arquivo. Os principais parâmetros para realizar a comunicação de dados utilizada neste
trabalho são apresentados a seguir.
32

Figura 11: Configuração dos Parâmetros do Rádio

Fonte: Elaborado pelo autor

Os parâmetros de configuração ou comandos XBee (DIGI, 2009a) são divididos em gru-


pos, como endereçamento, rede, segurança, interface de RF, interface serial, comandos de E/S,
diagnóstico, comandos de dormência e comandos de execução, e podem ser configurados tanto
pelo modo API quanto pelo modo AT. Os comandos de endereçamento são responsáveis por
identificar o nó na rede. Os principais comandos estão descritos na tabela 8 no apêndice A.

Os comandos de rede definem o endereço identificador da rede, canais de comunicação a


serem utilizados, busca por canais, dentre outras operações. Os principais comandos utilizados
neste trabalho, CH e ID são descritos na tabela 9 no apêndice A. Os comandos de interface RF
são responsáveis pela sensibilidade do sinal do rádio e pelos modos de transmissão e recepção,
e os principais os comandos, PL e DB, são descritos na tabela 9 no apêndice A.

Os comandos de interface serial são responsáveis pela comunicação entre o rádio XBee
e o microcontrolador ou dispositivo serial conectado a ele, onde é definido o modo API e con-
figurações da taxa de transmissão de dados. Além dos comandos de interface serial, na tabela
10 no apêndice (LIBELIUM, 2009) são descritos comandos para verificar o nível de tensão,
configurar o modo de dormência do módulo e os comandos de execução, para identificação dos
nós da rede. Na figura 11 podem ser observadas algumas configurações de um nó coordenador
no programa X-CTU.
33

2.3.4 Portas de Entrada/Saída

O módulo XBee possui 13 portas de E/S (DIO0 a DIO12), algumas possuindo mais
de uma função, que podem ser configuradas através do programa X-CTU. O diagrama com a
pinagem do módulo XBee e suas respectivas funções é apresentado na figura 12. A alimentação
do módulo é realizada através do pino 1 (VCC) e deve ser suprida a tensão de 3,3 volts e o terra
/ ground através do pino 10.

A entrada e saída de dados são realizadas através das portas DIN (pino 3) e DOUT (pino
2) respectivamente. Esses pinos podem ser conectados ao microcontrolador, para o envio e
recepção de dados dos sensores. A função de RESET do módulo XBee é executada conectando-
se uma chave do tipo push-button entre o pino 5 (RESET ) e o pino 10(Ground). O pino 6, além
da função DIO10, pode ser utilizado para medir o sinal RSSI da última transmissão recebida
pelo módulo. O pino 8 é de uso reservado, não devendo ser conectado. O pino 9, além da porta
DIO8, pode ser utilizado para ativar/desativar o estado de dormência do módulo. Esta porta,
quando em nível alto, ou seja, quando existe um nível de tensão aplicado a ela coloca o módulo
no estado de dormência e, quando está em nível baixo ou conectado ao pino 10 (Ground), o
módulo passa a operar normalmente.

Figura 12: Pinagem do Rádio XBee

Fonte: Adaptado de (DIGI, 2009a)

Os pinos 4 (DIO12), 7 (DIO11) e 11 (DIO4) são utilizados como entrada ou saída digital
e possuem apenas esta função. Os pinos 12 (CT S/DIO7) e 16 (RT S/DIO6) podem ser utilizados
para controle de fluxo Clear-to-Send (CTS) e Request-to-Send (RTS) respectivamente. O pino
13 (ON/SLEEP), além da função E/S Digital 9 (DIO9) pode ser utilizada como indicativo do
status de funcionamento do módulo, utilizando um LED que, quando ligado indica o funcio-
namento normal e quando desligado indica que o módulo se encontra em estado de dormência
(SLEEP). O pino 15 possui um funcionamento semelhante, mas indicativo do status da asso-
ciação do módulo com a rede, além da função E/S Digital 5 (DIO5). Se o módulo não está
associado a uma rede, o LED permanece ligado. Quando o módulo está associado a uma rede,
34

ele deverá piscar em um intervalo regular, de 500 ms para nós coordenadores e de 250 ms para
nós roteadores e end devices.

O módulo XBee também possui quatro portas que podem ser utilizadas como E/S digital
ou como entrada analógica apenas, das portas 17 a 20, respectivamente, AD3/DIO3, AD2/DIO2,
AD1/DIO1 e AD0/DIO0. A última porta, 20, pode também ser usada como botão de comissio-
namento, quando conectada a um botão do tipo push-button e este à porta 10 (Ground). Quando
o módulo está em uma rede, ao pressionar o botão uma vez, um módulo end device acorda du-
rante 30 segundo e envia uma transmissão de broadcast com a identificação do nó. Ao se
pressionar o botão duas vezes, o módulo envia uma transmissão de broadcast permitindo ao co-
ordenador e a todos os outros nós a ingressar na rede durante 1 minuto. Pressionar quatro vezes
o botão força o módulo a deixar a PAN, restaurando parâmetros de ID da rede e de procura de
canais (SC) para os valores default e tenta se conectar a PAN utilizando esses valores.

2.3.5 Modos de Operação

Na figura 13 são apresentados os cinco modos de operação do rádio XBee: Idle, Trans-
mit, Receive, Command e Sleep. Ele permanece, por padrão, no modo Idle quando não está em
operação de envio e recebimento de dados. A partir desse modo, ele poderá mudar para os mo-
dos Transmit, quando necessita transmitir dados; Receive, quando um pacote de dados válido
é recebido pela antena; Command, quando está em modo para receber instruções de controle e
configuração do rádio e Sleep, em que o rádio fica em estado de dormência, explicados a seguir.

Figura 13: Modos de Operação do XBee

Fonte: Digi (2009a)

O rádio XBee possui o parâmetro de configuração SM, que especifica o modo de opera-
ção Sleep Mode. Abaixo são explicados os modos de economia de energia. Os parâmetros são
35

alterados utilizando o software X-CTU.

a) 0 - No Sleep: sem modo de dormência, o rádio fica ligado o tempo inteiro, modo indicado
quando o coordenador está ligado a um computador para recepção de dados. Não é indicado
para o uso com baterias sem utilizar um dos modos de dormência, pois tem alto consumo de
energia (típico ≥ 60 mA).

b) 1 - Pin Hibernate: entra do modo de dormência após receber um nível alto de tensão no
pino 9 do rádio. O tempo necessário para mudar do modo de dormência para o modo ativo
(wake-up) é de 13,2 ms. É o modo com maior economia de energia. O rádio pode, então,
ser controlado externamente por um evento ou por um microcontrolador ligado ao pino 9.
Tem um consumo de energia menor do que 10 µA quando no estado de dormência. Nesse
modo, quando é aplicado um nível de tensão CMOS de 3, 3 volts, o rádio entra no estado
de dormência e quando esse nível de tensão é retirado, ele volta à sua condição normal de
operação. O rádio, no entanto, só volta ao nível de dormência após todos os dados em seu
buffer sejam transmitidos.

c) 2 - Pin Doze: entra do modo de dormência após receber um nível alto de tensão no pino 9
do rádio, sendo que tem um tempo de wake-up menor que o do Pin Hibernate, em torno de
2 ms, mas com uma economia de energia menor. Tem um consumo de energia menor do
que 50 µA quando no estado de dormência.

d) 3 - Reservada

e) 4 - Cyclic Sleep Remote: possui o mesmo nível de economia de energia do Pin Doze, para
entrar em estado de dormência após um determinado tempo ocioso, configurado pelo parâ-
metro ST e acorda durante um período, especificado pelo parâmetro SP. Os valores tanto para
o coordenador quando para o nó sensor devem ser iguais. Esse modo possui um consumo
de energia menor do que 50 µA quando no estado de dormência.

f) 5 - Cyclic Sleep Remote with Pin Wake-up: equivalente ao Cyclic Sleep Remote, entretanto o
rádio acorda tanto em função dos parâmetros ST e SP quanto pela atividade do pino 9. Esse
modo possui um consumo de energia menor do que 50 µA quando no estado de dormência.

Neste trabalho, os principais modos utilizados foram o Pin Hibernate e o Cyclic Sleep. O
modo Pin Hibernate é o que permite a maior economia de energia. O modo Cyclic Sleep Remote
with Pin Wake-up não foi utilizado devido à rede experimental transmitir apenas quando o
microcontrolador ativa o rádio e envia os dados e o rádio XBee só voltar ao estado de dormência
após terminar o envio.
36

Figura 14: Configuração dos Pinos do ATMega 328

Fonte: Atmel (2010)

2.4 Microcontrolador ATMega 328

2.4.1 Introdução

O microcontrolador ATMega 328 é um processador de 8 bits, baseado em arquitetura


Reduced Instruction Set Computer (RISC). O ATMega 328 possui um conjunto de 131 instru-
ções, a maioria executada em um ciclo de clock, opera na faixa de tensão entre 1,8 a 5,5 volts e
na faixa de temperatura de -40o C e 85o C (ATMEL, 2010). O ATMega 328 é o microcontrolador
utilizado na plataforma Arduino, utilizada neste trabalho.

Um conjunto de 32 registradores de propósito geral estão presentes no ATMega 328.


Estes registradores estão conectados diretamente à Aritmetic Logic Unit (ALU) - Unidade de
Lógica e Aritmética, permitindo ao processador trabalhar com dois registradores simultanea-
mente em apenas um ciclo de clock (ATMEL, 2010). O diagrama da arquitetura interna do
microcontrolador pode ser observado no anexo C, figura 1.

Na seção 2.4.2 são apresentadas as configurações e funções dos pinos do microcontro-


lador. Na seção 2.4.3 é apresentado o funcionamento do gerenciamento de energia do ATMega
328. Na seção 2.4.4 é descrita a plataforma Arduino. Por fim, na seção 2.4.5, é apresentada a
placa XBee Shield, que interliga o Arduino ao rádio XBee.

2.4.2 Portas de Entrada/Saída

O ATMega 328 é fornecido em quatro versões de configuração de pinos, sendo três delas
utilizando montagem de superfície (Surface Mount Device (SMD)) e uma através da montagem
através de duas linhas paralelas de pinos (Dual In-line Package (DIP)), que é a utilizada neste
trabalho. A configuração dos pinos pode ser observada na figura 14. As portas de E/S do
microcontrolador são divididas em três grupos, PB0 a PB5, PC0 a PC6 e PD0 a PD7.
37

O pino 1 (PC6) do microcontrolador possui a função de RESET, que, quando conectado


ao pino terra (8 ou 22) reinicializa o microcontrolador. A alimentação de energia é realizada
através dos pinos 7 (VCC) e 20 (AVCC - utilizada pelo conversor analógico digital), bem como
o pino 21 (AREF). Os pinos 9 (PB6) e 10 (PB7) devem ser conectados a um cristal oscilador,
responsável por fornecer a frequência do sinal de clock para o microcontrolador.

Os pinos 2 (PD0 - RXD) e 3 (PD1 - TXD) são utilizados para comunicação serial com
outros dispositivos, como, por exemplo, o rádio XBee descrito na seção 2.3. As portas PD2
a PD4 (pinos 4 a 6), PD5 a PD0 (pinos 11 a 13) e PB0 a PB5 (pinos 14 a 19) correspon-
dem, respectivamente, à portas digitais 2 a 13 do Arduino. Os pinos 23 a 28 (PC0 a PC5) são
responsáveis por prover a funcionalidade de portas de entrada e saída analógicas, através de
conversores analógico-digitais de 10 bits para cada porta.

2.4.3 Gerenciamento de Energia

A arquitetura em blocos do microcontrolador ATMega 328 pode ser analisada na figura


2, no anexo C. O microcontrolador ATMega possui uma unidade de controle do sinal de clock
que o distribui para cinco áreas distintas. Isto permite uma redução do consumo de energia por
que nem todas essas partes necessitam estar ativas a todo o momento e cada parte é desativada
quando o sinal de clock para ela é interrompido. Os modos de economia de energia do micro-
controlador são descritos a seguir e na figura 15 é exposto o diagrama em blocos da estrutura
de clock do ATMega 328.

a) CPU Clock (clkCPU ) : operação do núcleo do processador e memória RAM;

b) I/O Clock(clkI/O ): utilizado pelos módulos de I/O como Contadores e Universal Synchro-
nous Asynchronous Receiver Transmitter (USART) - unidade responsável pela transmissão
e recepção de dados de forma serial, além do módulo de interrupção externa;

c) Flash Clock(clkFLASH ) : utilizado na operação da interface da memória Flash; Asynchro-


nous Timer Clock (clkASY ): permite que um contador assíncrono possa ser sincronizado
diretamente de uma fonte externa de clock, permitindo que seja um utilizado um contador
de tempo real mesmo quando o microcontrolador está em sleep mode;

d) ADC Clock(clkADC ): permite a suspender o clock da CPU e I/O para reduzir o ruído gerado
pelo circuito digital, permitindo uma maior precisão ao conversor analógico digital (Analog
Digital Converter (ADC)).

O ATMega possui seis modos de economia de energia. Cada modo permite uma maior
ou menor economia de energia, de acordo com as áreas do sinal de clock desabilitadas. Neste
trabalho são utilizados basicamente dois modos, Power-save e Power-down, por serem os modos
38

Figura 15: Diagrama em blocos do sistema de clock do ATMega

Fonte: Atmel (2010)

que permitem a maior economia de energia. Os modos de economia de energia são descritos a
seguir.

a) Idle Mode: basicamente suspende a operação do clkCPU e clkFLASH , mas mantendo todos
os outros sinais de clock funcionando normalmente, habilitando o microcontrolador a ser
acordado por interrupções externas ou mesmo internas, como USART e Timer Overflow;

b) ADC Noise Reduction Mode: suspende clkI/O , clkCPU e clkFLASH ;

c) Power-down Mode: nesse modo, o oscilador externo é suspenso, enquanto os serviços de


Watchdog e interrupções externas continuam operando. Suspende todas as operações de
todos os clocks do microcontrolador, permitindo apenas a operação de módulos assíncronos;

d) Power-save Mode: permite que o microcontrolador entre em um sleep mode semelhante ao


Power-down Mode, mas com a diferença de que se um circuito de Timer/Counter estiver
habilitado (figura 15), ele poderá ser utilizado para acordar o microcontrolador;

e) Standby Mode e Extended Standy Mode: esses dois últimos modos trabalham de maneira
semelhante ao Power-down Mode e Power-save Mode respectivamente, mas não desligam
o oscilador, permitindo o retorno ao modo normal em seis ciclos de clock. Este modo é
recomendado somente quando forem utilizados osciladores externos.
39

A alteração dos modos de energia é realizada através da configuração dos bits SM2,
SM1 e SM0 do registrador SMCR do microcontrolador. Estes parâmetros são utilizados para
tornar possível a hibernação do microcontrolador.

2.4.4 Plataforma Arduino

A plataforma de prototipagem rápida Arduino (ARDUINO, 2009a), utilizada neste tra-


balho, é baseada em hardware aberto, ou seja, é possível desenvolver produtos utilizando-o
como base sem o pagamento de royalties, permitindo assim a customização e adaptação da
rede de sensores de acordo com a necessidade da pesquisa, permitindo prototipagem rápida. O
módulo Arduino é composto por um microcontrolador ATMega 328, um chip de comunicação
USB Future Technology Devices International (FTDI) - fabricante do chip (FTDI, 2010) para
interligação com um microcomputador e reguladores de voltagem que permitem a utilização de
fontes de energia entre 5 e 12 volts, como pode ser visto na figura 16. O diagrama esquemático
do Arduino pode ser observado na figura 1, no anexo A.

Figura 16: Placa Arduino Duemilanove

Fonte: Elaborado pelo autor

O Arduino possui 14 portas digitais programáveis, enumeradas de 0 a 13. As portas 0 e 1


são utilizadas para comunicação serial, como por exemplo, com um rádio de comunicação. As
portas 2 e 3, além da função normal de Entrada e Saída (E/S) podem ser utilizadas para disparar
eventos de interrupção no microcontrolador. Caso um sensor de presença esteja, por exemplo,
conectado a esta porta, quando ocorrer um evento nesse sensor um tratamento especial pode ser
dado, como por exemplo, enviar uma mensagem de emergência ou tirar o microcontrolador do
estado de dormência.

As outras portas podem ser utilizadas para sensores que retornem valores booleanos,
como verdadeiro ou falso, ativar e desativar relés/transistores para controlar dispositivos de
maior potência ou tensão, além de ligar e desligar lampadas Light Emission Diode (LED) -
40

Diodo Emissor de Luz. As portas digitais 3, 5, 6, 9, 10 e 11 podem ser utilizadas como portas
Pulse Width Modulation (PWM) - Modulação por Largura de Pulso.

Além das portas digitais, o Arduino possui 6 portas analógicas, cada porta com um con-
versor analógico-digital de 10 bits. Estes conversores funcionam medindo a tensão existente em
cada porta, fornecendo um valor entre 0, sem sinal, e 1023, equivalente a 3,3 volts ou 5 volts,
de acordo com o nível de tensão utilizado. Podem ser acopladas a estas portas sensores como
luminosidade, umidade, temperatura, gás e sísmico/acelerômetro. Outros componentes impor-
tantes da placa Arduino são o botão de reset, para a reinicialização do módulo, e os conectores
com tensão regulada em 3,3 volts e 5 volts, para utilização em sensores e/ou placas acopladas à
placa principal do Arduino.

A plataforma oferece o conceito de shields, que são placas que podem ser adicionadas
ao Arduino para aumentar sua funcionalidade. Existem shields para conexão do Arduino com
módulos Bluetooth, Ethernet, relés para controle de potência. A placa utilizada neste trabalho,
denominada XBee Shield, permite a interligação do Arduino ao rádio XBee, e é descrita na
seção 2.4.5. O fabricante do Arduino também fornece um software para o desenvolvimento de
aplicações, baseadas na linguagem C, permitindo a programação em alto nível. Existem várias
versões customizadas do Arduino desenvolvidas em diversos países (ARDUINO, 2009b), dentre
as quais uma placa desenvolvida no Brasil, a Arduino Severino (AKASHI, 2010), que utiliza a
porta serial para comunicação com o microcomputador. Este trabalho apresenta o Modulino,
uma versão do Arduino com menor consumo de energia.

2.4.5 XBee Shield

A placa XBee Shield (LIBELIUM, 2010) tem por função permitir a conexão entre o
rádio XBee e a placa Arduino, apresentada na seção 2.4.4. A placa mantém a funcionalidade
das portas de E/S do Arduino, como pode ser visto na figura 17, mas pela disposição da placa
não é possível ter acesso às saídas de tensão de 3,3 volts, 5 volts e terra (GND), sobrepostas
pela placa XBee Shield. A sobreposição ocorre também com o botão de reset e por este motivo,
a placa XBee Shield tem um botão de reset adicional. A placa também possui um regulador de
tensão, para manter os 3,3 volts necessários para o funcionamento do rádio XBee, além de um
LED indicador do estado da conexão da rede, conectado ao pino 15 (DIO5), descrito na seção
2.3.4.

Um par de jumpers é utilizado na placa XBee Shield para a seleção do modo de co-
municação. Quando a placa XBee Shield é utilizada sem o microcontrolador ATMega 328 na
placa Arduino, o conjunto pode ser utilizado como nó coordenador (gateway), conectado a um
computador. Nesse caso utiliza-se os jumpers na posição USB, onde todo o tráfego de dados
recebido pelo rádio é direcionado para o microcomputador. Os jumpers nessa posição também
41

Figura 17: Arduino com XBee Shield

Fonte: Elaborado pelo autor

permitem que o microcomputador possa configurar o rádio XBee através do software X-CTU.

Não é possível, entretanto, realizar a configuração do rádio XBee com o microcontrola-


dor ATMega 328 presente na placa Arduino, sendo permitida apenas a programação do micro-
controlador através da porta USB. Com os jumpers na posição XBee, todo o tráfego de dados da
placa é feito entre o microcontrolador e o rádio XBee, configuração utilizada nos nós roteadores
e end device. O diagrama esquemático da placa XBee Shield pode ser observado na figura 1
no anexo B. Neste trabalho, a análise dos diagramas esquemáticos das placas Arduino e XBee
Shield permitiu o desenvolvimento do nó sensor Modulino, que integra essas duas placas em
apenas uma, com o objetivo de economizar o máximo de energia possível no hardware.

A seguir, no capítulo 3, são apresentados os trabalhos relacionados aos objetivos deste


trabalho. São abordados os temas de monitoramento de ambientes, as aplicações em RSSF, o
desenvolvimento e a adaptação de nós sensores e a economia de energia em uma RSSF.
42

3 TRABALHOS RELACIONADOS

Nesta seção são discutidos os trabalhos relacionados ao objeto desta dissertação. Na


seção 3.1, são descritos os trabalhos na área de segurança e monitoramento de ambientes. Na
seção 3.2, são apresentados os trabalhos relativos à aplicações em redes de sensores. Na seção
3.3, são apresentados os trabalhos sobre adaptação e desenvolvimento de nós sensores. E, na
seção 3.4, estão descritos os trabalhos referentes ao consumo e economia de energia.

3.1 Monitoramento de Ambientes

Para monitorar equipamentos eletrônicos, como proposto neste trabalho, é necessário


entender os conceitos relativos ao monitoramento de ambientes. Relacionado ao monitora-
mento de ambientes, Chagas et al. (2010) apresentam um middleware para controle de con-
sumo de energia elétrica e utilização de laboratórios de informática. Baseado em sensibilidade
ao contexto e ambientes inteligentes, o middleware libera o acesso a cada laboratório de acordo
com a demanda, evitando o desperdício de energia com luzes e computadores em salas com
poucos usuários. Entretanto, a rede de sensores e atuadores utilizada é baseada em cabeamento
padrão ethernet e também não foi medido o impacto do consumo da rede de sensores, apesar
da economia de energia com um todo. Neste trabalho, além do monitoramento do ambiente em
que o equipamento eletrônico está inserido, foram utilizadas técnicas para diminuir o consumo
de energia da rede de sensores de monitoramento e foi utilizada uma solução sem fio para a
comunicação de dados.

O conceito de ambientes inteligentes (DUCATEL et al., 2009) permite um entendimento


melhor da estrutura de software e recursos de sensoreamento local para poder modelar de ma-
neira adequada a integração entre o ambiente e a rede de sensores, o protocolo de comunicação
a ser utilizado, os requisitos do ambiente e dos usuários nele presente. Kaasinen, Tuomisto e
Valkkynen (2005) descrevem ambientes inteligentes em casos de uso e requisitos de usuários,
com redes sem fio e de sensores provendo dados para dispositivos móveis de acordo com o
contexto, fazendo a conexão entre os conceitos de engenharia de software e sua aplicação em
computação ubíqua. A infraestrutura proposta neste trabalho permite que aplicações sensíveis
ao contexto a utilizem para prover ubiquidade no ambiente.
43

As características das RSSF, apresentadas na seção 2.1, permitem a sua utilização como
uma plataforma para controle patrimonial e segurança de ambientes. No trabalho de Buttyan
et al. (2010) são abordados os desafios para se construir uma infraestrutura de proteção contra
ameaças, como ataques terroristas, de criminosos ou mesmo catástrofes e discute os aspectos
que tornam as redes de sensores sem fio confiáveis para o monitoramento da segurança de um
ambiente. Esses aspectos envolvem a própria segurança do módulo e segurança da comunicação
da rede, para tornar fidedigno todo o tráfego de dados.

O furto de equipamentos eletrônicos, como notebooks, é abordado no trabalho de Dim-


kov, Pieters e Hartel (2010), onde são descritos mecanismos contra roubo em organizações
abertas, como um campus universitário, e foram realizados testes em mecanismos de segurança
sociais e em mecanismos de segurança físicos, que influenciam os roubos de notebooks. Ainda
segundo Dimkov, mecanismos de segurança de apenas um domínio são limitados e que a efetivi-
dade da segurança física depende de seu alinhamento com os mecanismos de segurança sociais.
Isto mostra que não basta apenas ter o controle patrimonial informatizado, mas também formas
de avisar e ativar os mecanismos de segurança sociais. Projetores LCD possuem características
similares aos notebooks, pois possuem dimensões reduzidas e um alto valor agregado e com-
partilham do mesmo problema de roubo com os notebooks em organizações abertas. A aborda-
gem neste trabalho propõe uma complementação do mecanismo de segurança físico, através de
RSSF, permitindo o acionamento, em tempo real, dos mecanismos de segurança sociais.

Figura 18: Segurança Física de um Projetor LCD

Fonte: Elaborado pelo autor

A preocupação com furtos também influencia os fabricantes de equipamentos eletrôni-


cos a buscar soluções para o problema. Um exemplo é o projetor Mitsubishi XL5900 (MITSU-
BISH, 2011), lançado em setembro de 2003, e que possui um sistema de alarme audível, com
sensor de movimento e acionado através de uma chave de segurança. Uma abordagem seme-
lhante (SECUREIT, 2010), também utiliza um alarme audível, mas sem detector de movimento,
e pode ser adicionado a qualquer equipamento eletrônico.
44

Uma solução utilizada em dispositivos eletrônicos para proteção contra furtos de equi-
pamentos, denominada trava Kensington (KENSINGTON, 2010), consiste de um cabo de aço
e uma trava com cadeado que é conectado ao dispositivo eletrônico. Na figura 18 pode ser vi-
sualizado um exemplo de segurança física de um projetor LCD, onde são utilizadas uma gaiola
de proteção com cadeado e uma trava Kensington acoplada ao aparelho eletrônico.

3.2 Aplicações em Redes Sensores Sem Fio

As aplicações no sensoreamento sem fio são das mais diversas. Akyildiz et al. (2002)
citam algumas: aplicações militares, como vigilância e patrulhamento, monitoramento e de-
tecção de armas químicas e biológicas; aplicações ambientais, como detecção de incêndios em
florestas, detecção de inundações, mapeamento da bio complexidade em um ambiente; aplica-
ções na área da saúde, como tele monitoramento de dados fisiológicos de pacientes, localização
de médicos e pacientes em hospitais. Um exemplo de um nó sensor é apresentado na figura 19.

Figura 19: Exemplo de um nó sensor

Fonte: Elaborado pelo autor

Zucatto et al. (2007) realizam uma comparação entre Bluetooth e ZigBee, ao apresentar
os requisitos utilizados no desenvolvimento de uma rede ZigBee de controle residencial. Lin,
Liu e Fang (2007) estudam a aplicabilidade do ZigBee em indústrias, apresentando os requisitos
necessários para aplicações industriais, como alcance desejado, e suas características. Lee e
Moon (2009) fazem um estudo sobre a utilização de uma RSSF padrão IEEE 802.15.4 em
um ambiente industrial, apresentando uma diminuição de custo e de tempo parado na troca de
máquinas industriais, em relação a máquinas conectadas através de rede cabeada.

A captura do sinal Received Signal Strength Indicator (RSSI) (Indicador da Intensidade


do Sinal Recebido) dos rádios de comunicação presentes neste trabalho permitem localizar os
equipamentos eletrônicos dentro do campus da Universidade, permitindo conhecer em tempo
real em qual sala está cada aparelho, como projetores LCD e televisores. Dentre os trabalhos
relacionados nesta área, Sottile et al. (2008) apresenta um sistema para localização de nós sen-
sores adotando um algoritmo baseado no sinal RSSI, presente nas camadas física e MAC do
45

Figura 20: Nó sensor U3

Fonte: Adaptado de Kawahara et al. (2003)

padrão IEEE 802.15.4. A arquitetura proposta neste trabalho tem como ambiente as salas de
aula de um campus universitário, sendo importante considerar o funcionamento da rede em
ambientes fechados. Gonçalo e Helena (2009) fazem uma proposta para localização dos nós
sensores em ambientes indoor, com os modelos de propagação e atenuação de sinais levando
em consideração as paredes entre as salas.

Uma aplicação de redes ZigBee em um campus universitário foi feita por Huang (2009),
em que cita que os maiores desafios na implementação de uma RSSF ubíqua recaem sobre a
administração de banco de dados e das interfaces utilizadas. Nesse trabalho, são exploradas
as questões sobre a melhor localização dos nós ZigBee, fluxo de dados, além do design do
banco de dados e seu processo de análise on line (OLAP). Duran-Faundez, Aguilera-Carrasco e
Norambuena (2010) utilizam sinais RSSI para detectar a movimentação de pallets em ambientes
industriais. Os experimentos demonstraram que quanto maior a potência do sinal, menor a
interferência e melhor a precisão das medições. Foram utilizados módulos ZigBee modelo
XBee, semelhantes aos utilizados neste projeto de pesquisa.

3.3 Desenvolvimento e Adaptação de Módulos de RSSF

Kawahara et al. (2003) cita que é desejável que um nó sensor seja construído em mó-
dulos, provendo flexibilidade no desenvolvimento e adaptação dos nós sensores para diferentes
necessidades em RSSF. Kawahara desenvolveu um nó sensor sem fio, denominado U 3 (figura
20),com sensores de movimento, luminosidade e temperatura, utilizando módulos separados
de processador, rádio de comunicação, de gerenciamento de energia e placa com sensores. O
nó sensor U 3 tem a dimensão de um cubo de 5cm, com taxa de transmissão de 100 kbps e
alimentado por três baterias recarregáveis tamanho AAA.
46

Figura 21: Nó sensor SquidBee

Fonte: Libelium (2011)

Os rádios de comunicação XBee utilizados neste trabalho são versáteis, podendo ser in-
terligado com diversos microcontroladores. No trabalho de Yussoff et al. (2010) é utilizado um
microcontrolador de propósito geral PIC interligado a um rádio XBee 802.15.4 para o monito-
ramento de temperatura em vários pontos de um ambiente, transmitindo essas informações para
um nó coordenador. Apesar da utilização da linguagem C para programação do microcontrola-
dor e da implementação do hardware, ou seja, a interligação entre o microcontrolador e o rádio
XBee, serem bem semelhantes à utilizada neste trabalho, somente é possível a compatibilidade
na camada de comunicação de dados, se forem utilizados rádios utilizando o mesmo protocolo,
IEEE 802.15.4 ou ZigBee, uma vez que tanto a pinagem quanto a implementação do software
do microcontrolador são diferentes. No trabalho de (SARIJARI et al., 2008) é utilizado um
rádio XBee para automação doméstica, no qual o coordenador da rede é conectado a um rádio
GSM para o envio e recepção de mensagens SMS para controle da rede.

Neste trabalho, inicialmente, foram adquiridos módulos de sensores da marca Squid-


Bee (LIBELIUM, 2009) para desenvolver a rede de monitoramento descrita na seção 4.1. Esses
módulos são baseados na plataforma de hardware livre Arduino (ARDUINO, 2009a). No tra-
balho de (BERGMANN; WALLACE; CALIA, 2010) é descrita a prototipagem de um módulo
sensor utilizando o Arduino e o rádio XBee como sendo importante para redução de custos na
pesquisa e desenvolvimento de uma rede de sensores sem fios para um sistema de sensores ma-
rinhos. Na figura 21 pode ser visualizado o nó sensor SquidBee, com os sensores de umidade,
luminosidade e temperatura.

O SquidBee é utilizado no trabalho de Bagula et al. (2009), que utiliza de 9 volts em


paralelo para obter cerca de 72 horas de funcionamento da rede de testes, com o consumo
47

do módulo em 70 mAH quando enviando dados e 14 mAH quando no modo de economia de


energia e utiliza o método de economia de energia de Yarza e Gascon (2008). O módulo foi
modificado para trabalhar com duas baterias recarregáveis de 3, 7 volts de polímero de lítio,
permitindo a utilização do módulo por cerca de 100 horas. Bagula também relata que até a uma
distância de 70 metros não houve significativa perda de pacotes, em ambiente outdoor, com
pouca ou nenhuma variação do sinal RSSI em relação ao nível de tensão do módulo e foram
testadas várias taxas de amostragem em relação ao tempo, com intervalos de transmissão de 5,
10, 30, 60 e 240 segundos em cada teste.

3.4 Economia de Energia

Segundo Mini e Loureiro (2008), o gerenciamento da energia é um dos fatores mais


importantes em uma RSSF. As tarefas que mais consomem energia em uma RSSF são a trans-
missão e recepção de dados. A ocorrência de uma transmissão consome mais energia do que
o processamento de dados (AKYILDIZ et al., 2002), (ARAUJO; VILLAS; BOUKERCHE,
2007). Por este motivo, uma das abordagens utilizadas neste trabalho para economizar energia
em uma RSSF é a utilização de métodos que minimizem a quantidade de transmissões. Um
algoritmo visando a economia de energia em RSSF utilizando a diminuição na quantidade de
transmissões de dados é proposto na seção 4.2.3.

Uma rede de sensores sem fio semelhante à utilizada neste trabalho foi alvo do trabalho
de Lousada (2009), em que o foco principal foi o consumo de energia dos módulos XBee para
a utilização de uma RSSF na medição do consumo de energia elétrica. A medição do consumo
de energia do nó XBee foi semelhante a utilizada neste trabalho, mas o módulo de processa-
mento que envia as informações à rede possui sua própria fonte de energia, não sendo possível
controlar o consumo integrado entre processamento e rádio.

Uma proposta de envio de amostras de dados em intervalos de tempo é feita por Al-
Karaki e Kamal (2004), onde é utilizada a correlação espaço-temporal das amostras medidas
pelos nós, com o intuito de reduzir a quantidade de transmissões. Os nós, na proposta de Al-
Karaki, podem passar para um estado de inatividade (ou economia de energia) e, com isso,
prolongar o tempo de vida da rede. Um conceito que pode ser explorado com o intuito de mini-
mizar o número de transmissões e, portanto, economizar energia é a Taxa de Inovação (HENRI-
QUES; LOVISOLO; GONC, 2009). Os nós apenas transmitiriam medidas que apresentassem
uma determinada quantidade de inovação, ou um determinado nível de variação entre amostras
do sinal medido. O algoritmo de níveis de alerta, visto na seção 4.2.3, utiliza uma abordagem
semelhante, mas dependendo do tipo do sensor que fez a leitura, o ciclo de trabalho do nó sensor
é alterado.

Os componentes de um sistema computadorizado consomem energia mesmo quando


48

estão ociosos, devido à potência estática presente nos circuitos. Uma das técnicas utilizadas
para reduzir o consumo de energia pode ser a hibernação de recursos (JUNIOR, 2007). A
vantagem dessa técnica é a redução do consumo de energia estática do sistema para próximo
de zero, pois ela permite transições entre modos de operação que irá inibir a passagem de
corrente para partes do circuito. O impacto da hibernação temporária é normalmente bastante
expressivo no consumo de energia, entretanto, alguns cuidados devem ser tomados, por exemplo
o custo de reativação e o tempo de hibernação do sistema. A abordagem deste trabalho é alterar
dinamicamente o ciclo de trabalho do nó sensor, hibernando o microcontrolador e o rádio de
comunicação de forma integrada.

Em (CASTILHO, 2009) são abordadas as características não lineares das baterias, em


que a taxa constante de descarga de uma bateria diminui consideravelmente o tempo de vida do
nó sensor. Castilho desenvolveu um protocolo ciente das características não lineares, permitindo
o desligamento do nó de tempos em tempos para que a bateria possa reordenar os íons (efeito de
recarga), provendo um aumento do tempo de atividade da rede. Isto reforça a necessidade de se
desligar ou pelo menos, hibernar, todos os componentes da rede por um determinado período.
Ao se ter uma alta taxa de consumo de energia, o fato de cessar ou pelo menos diminuir esse
consumo por um determinado período pode aumentar o tempo de vida do nó sensor. Neste
trabalho, o desenvolvimento do nó sensor Modulino (seção 4.4), permitiu uma diminuição da
taxa de consumo do nó sensor, além de economizar o máximo de energia possível quando no
modo de hibernação, permitindo um aproveitamento melhor do efeito recarga da bateria.

No capítulo 4 é apresentada a proposta da rede de monitoramento de equipamentos


eletrônicos. É apresentada uma visão geral da aplicação de monitoramento e do ambiente a ser
monitorado, bem como são apresentados os algoritmos utilizados no nó sensor e a aplicação de
monitoramento. Por fim, são apresentados os resultados preliminares da rede de monitoramento
e o nó sensor Modulino.
49

4 MONITORAMENTO DE EQUIPAMENTOS ELETRÔNICOS

Neste capítulo é apresentada a RSSF para monitoramento de equipamentos eletrônicos.


Na seção 4.1, é descrita a implantação da rede, com a análise do ambiente a ser monitorado e
a configuração dos nós sensores. Na seção 4.2, é apresentada a aplicação de monitoramento,
com os algoritmos dos nós sensores e a aplicação que recebe as informações enviadas pelos
nós sensores. Na seção 4.3, são apresentados os resultados dos experimentos para verificar o
funcionamento da atividade de monitoramento e do consumo de energia da rede. E, na seção
4.4, é apresentada a proposta de um novo nó sensor, com menor consumo de energia.

4.1 Implantação da RSSF

Nesta seção é apresentado o desenvolvimento da infraestrutura da RSSF utilizada para


o monitoramento de equipamentos eletrônicos. Na seção 4.1.1, é apresentada a análise do
cenário utilizado para os experimentos da solução proposta e na seção 4.1.2, é apresentada a
configuração dos nós sensores para a execução dos experimentos.

4.1.1 Análise do Ambiente a ser Monitorado

A análise do ambiente de monitoramento é necessária para a melhor disposição dos


nós sensores e roteadores. Para implementar uma RSSF para monitoramento de equipamentos
eletrônicos, foram utilizados quatro nós sensores, três nós roteadores e um nó coordenador,
também chamado de gateway ou sink. Estes nós foram dispostos no terceiro andar do prédio
do Mestrado em Informática da Pontifícia Universidade Católica de Minas Gerais, localizado
no bloco L do campus da unidade de São Gabriel. As salas 306, 308 e 309, por terem um
bom fluxo de entrada e saída de alunos, foram as escolhidas para a instalação dos nós sensores
para monitoramento do ambiente e de equipamentos eletrônicos, como projetores LCD. O nó
coordenador foi alocado na sala 303, no laboratório de redes de computadores. Um mapa
informativo com a localização dos sensores pode ser visto na figura 22.

A escolha do local para posicionamento dos nós roteadores foi feita após a realização de
experimentos para verificar o alcance do sinal entre o nó sensor mais distante, na sala 308 e o nó
coordenador, na sala 303. Foi verificado que o nó coordenador não recebia pacotes de dados do
50

Figura 22: Planta do local de monitoramento e topologia da rede

Fonte: Elaborado pelo autor

nó sensor situado na sala 308. Optou-se pela colocação de três nós roteadores, para permitir um
fluxo melhor de dados e também para facilitar o sensoreamento da sala 306 e eventualmente,
da sala 305. No corredor, próximo às salas 308 e 309, foi instalado o primeiro nó roteador,
permitindo o roteamento dos dados destas duas salas.

Na frente da sala 305 foi colocado o segundo nó roteador e na frente da sala 303 foi
posicionado o terceiro nó roteador. Na figura 23 pode ser visualizado três nós roteadores, qua-
tro nós sensores SquidBee, o nó coordenador e três placas Arduino conectados à placas XBee
Shield. As três placas Arduino foram utilizadas apenas como apoio nos experimentos de al-
cance e configuração dos nós, não sendo utilizadas diretamente na rede. Os nós sensores foram
denominados PUC0001, PUC0002, PUC0003, PUC0004 e PUC0005, os nós roteadores de-
nominados ROTEADOR001, ROTEADOR002 e ROTEADOR003 e o nó coordenador como
COORDENADOR.

O nó coordenador e os nós roteadores possuem a mesma configuração, sendo que o nó


coordenador é conectado através da interface USB ao computador com a aplicação de moni-
toramento. Tanto o coordenador quanto os roteadores não possuem microcontroladores, tendo
suas funções controladas exclusivamente pelos rádios de comunicação XBee neles instalados.
Os nós roteadores e os nós sensores tem os parâmetros de endereço de nó destino configurados
com o endereço único de 64 bits do nó coordenador. Todas as mensagens que chegam a esses
nós são obrigatoriamente roteadas para o coordenador.

O nó sensor SquidBee é baseado em hardware aberto, sendo possível desenvolver pro-


dutos utilizando-o como base sem o pagamento de royalties. A customização e adaptação de
51

Figura 23: Módulos Sensores pra Monitoramento de Ambientes

Fonte: Elaborado pelo autor

uma rede de sensores SquidBee pode ser realizada de acordo com a necessidade de pesquisa. O
SquidBee tem como base de comunicação a plataforma Arduino e um módulo de comunicação
XBee (DIGI, 2009a).

Uma vez que os nós roteadores ficaram expostos no corredor, foi necessário construir
uma caixa metálica para acomodar cada módulo roteador. As três caixas metálicas foram fixadas
nos locais escolhidos, com os nós roteadores nelas inseridos. O acesso físico aos nós roteadores
dentro das caixas metálicas é realizado através de uma tampa com cadeado. A caixa metálica
com um nó roteador pode ser visualizada na figura 24. A figura 25 mostra a caixa metálica com
o nó roteador (PUC0001), fixada no teto do corredor do prédio do Mestrado em Informática.

Para monitorar um projetor LCD, foi desenvolvido um nó sensor com um sensor de pre-
sença do tipo Passive Infrared (PIR) e com um sensor sísmico, que consegue detectar pequenas
variações de movimento. O nó sensor, denominado PUC0001 pode ser visualizado na figura
26. O sensor PIR emite uma luz infravermelha, invisível aos olhos humanos, e mede a reflexão
da emissão dessa luz. Caso uma pessoa entre em um ambiente monitorado por um sensor PIR,
irá ocorrer uma variação na intensidade da luz refletida e medida pelo sensor, ativando a porta
do microcontrolador responsável por monitorar presença.

O módulo sensor deve estar disposto sobre o aparelho eletrônico a ser monitorado. Caso
ocorra algum evento que altere o estado de repouso do módulo sensor, como por exemplo, uma
tentativa de roubo de um projetor LCD, o nó sísmico detecta essa alteração de estado e envia
uma mensagem ao nó coordenador com a intensidade da variação do repouso.
52

Figura 24: Caixa de proteção do nó roteador

Fonte: Elaborado pelo autor

Figura 25: Disposição do nó roteador

Fonte: Elaborado pelo autor


53

Figura 26: Sensor de presença

Fonte: Elaborado pelo autor

4.1.2 Configuração da Rede de Sensores

Para execução dos experimentos, os nós foram configurados sem criptografia de dados,
identificação da rede número 3332, canal 0xD, modo API nível 2, nível da potência de rádio 4
(máximo) e velocidade de comunicação com a interface serial a 9600 bps, sem paridade, 1 bit de
parada e sem controle de fluxo, sendo que o nó coordenador foi configurado com a velocidade
de comunicação serial a 115200 bps. Na tabela 2 são apresentados os endereços de 16 e 64 bits
dos nós sensores utilizados, bem como a função exercida por cada nó (sensor ou roteador) e
o nome de identificação do nó. Neste trabalho, o endereço de 16 bits e o de 64 bits H são os
mesmos para todos os dispositivos, seguindo a configuração padrão do fabricante do módulo.

Tabela 2: Configuração dos Nós Sensores


Nome do Nó End. 16 bits End. 64 bits H End. 64 bits L Tipo do Nó
COORDENADOR FFFE 13A200 404B3AD0 Roteador
ROTEADOR01 FFFE 13A200 404B3ACD Roteador
ROTEADOR02 FFFE 13A200 405335FE Roteador
ROTEADOR03 FFFE 13A200 404B3ACE Roteador
PUC0001 FFFE 13A200 405533A4 Sensor
PUC0002 FFFE 13A200 404B9126 Sensor
PUC0003 FFFE 13A200 404B3AC5 Sensor
PUC0004 FFFE 13A200 404B3AC0 Roteador
PUC0005 FFFE 13A200 404B3AC6 Roteador
Fonte: Elaborado pelo autor

Para verificar o funcionamento da rede, foi realizado um experimento, onde os nós sen-
sores enviaram informações sobre o ambiente para o nó coordenador. Ocorreu o roteamento dos
pacotes de dados de cada módulo sensor, fornecendo as informações de temperatura, umidade
e luminosidade de cada ambiente sensoreado. Notou-se, porém, que muitos dados eram envi-
ados de forma repetida, em um intervalo de tempo constante. Na configuração proposta pelo
fabricante do SquidBee, os dados de cada sensor, de cada módulo, são separados pelo caractere
k com o número do sensor. Consta, ainda, um número sequencial de transmissão e um código
para identificar o nó sensor. A faixa de valores aceitáveis dos sensores de umidade e lumino-
sidade podem variar entre 0 e 100% e a temperatura possui valores aceitáveis entre -25◦ C e
54

125◦ C.

Os sensores convertem os valores medidos no ambiente em níveis de tensão, que por


sua vez, são tratados pelos conversores analógico-digitais do microcontrolador. Os conversores
analógico-digitais do ATMega 328, como citado anteriormente, possuem resolução de 10 bits,
transformando os níveis de tensão fornecidos pelos sensores em valores decimais, com variação
desses valores entre 0 e 1023. A aplicação de monitoramento que recebe estas informações
pode, então, converter esses valores no formato percentual ou em graus celsius.

Um tutorial explicando esse procedimento é disponibilizado por (LIBELIUM, 2011),


onde é apresentado o código-fonte original da aplicação de do SquidBee e as fórmulas de con-
versão dos valores decimais para percentual e graus celsius. O formato dos dados enviados
pelo nó sensor, proposto pelo fabricante do SquidBee, possui um tamanho de 37 bytes, podendo
sofrer alterações de acordo com os valores lidos e com um número sequencial, que identifica os
pacotes transmitidos. O SquidBee não vem configurado originalmente com os sensores sísmico
e de presença, sendo esta uma modificação realizada para atender aos requisitos deste trabalho.

4.2 Desenvolvimento da Aplicação de Monitoramento

Esta seção apresenta o desenvolvimento da aplicação de monitoramento e dos algorit-


mos para tratamento e envio dos dados dos nós sensores para o nó coordenador. A seção 4.2.1
apresenta uma visão geral sobre os requisitos de uma aplicação de monitoramento de equipa-
mentos eletrônicos. Na seção 4.2.2, é apresentada a proposta de um algoritmo para identificar o
tipo do sensor que captura as informações. Na seção 4.2.3, é apresentado o algoritmo de níveis
de alerta, utilizado para enviar apenas as informações relevantes à atividade de monitoramento.
Na seção 4.2.4, é apresentada a aplicação PUCAdmin, responsável por receber, através do nó
coordenador, as informações enviadas pelos nós sensores.

4.2.1 Visão Geral da Aplicação

Os módulos SquidBee, utilizados pela solução proposta na seção 4.1, possuem uma pe-
quena aplicação para a captura de informações dos sensores neles conectados, desenvolvida
pelo fabricante do módulo. As informações são enviadas em uma ordem pré-determinada, em
formato texto separadas por ponto-e-vírgula, tendo um tamanho do pacote de dados de 37 bytes,
por transmissão. A aplicação original do SquidBee envia as informações a cada cinco segun-
dos, não possuindo nenhum tipo de tratamento dos dados e nenhuma técnica para economia de
energia do módulo.

No experimento de implantação da rede de sensores, verificou-se a necessidade de se


identificar qual módulo SquidBee enviou os dados dos sensores. Essa identificação, na aplica-
55

ção original do SquidBee, é realizada através da alteração da própria aplicação, tornando mais
complexa a instalação de múltiplos sensores em um ambiente. O quadro de dados no padrão AT,
utilizado pelo SquidBee, não possui o endereço físico do nó sensor. Pelos motivos apresentados
acima, verificou-se a necessidade de desenvolver uma aplicação para o nó sensor que satisfaça
os seguintes requisitos:

a) Permita a identificação do tipo do dado sensoreado, evitando erros de interpretação e de


tratamento de dados;

b) Efetue o tratamento dos dados sensoreados, eliminando informações repetidas;

c) Envie os dados somente quando necessário, evitando a ativação do rádio;

d) Diminua a quantidade de informações enviadas, diminuindo o tempo de ativação do rádio;

e) Utilize as técnicas de economia de energia, presentes tanto no rádio XBee quanto no micro-
controlador;

f) Permita a identificação do módulo sensor que está enviando as informações ao nó coordena-


dor;

Na seção 4.2.2, é apresentado o algoritmo para identificar qual o tipo de dado que está
sendo sensoreado pelo nó sensor (requisito 1). Este algoritmo permite que a aplicação de moni-
toramento identifique qual o tipo do dado recebido, possibilitando a devida conversão dos dados
para valores que possam ser interpretados pelos usuários responsáveis pelo monitoramento de
ambientes.

Na seção 4.2.3, é apresentando o algoritmo que envia os dados ao nó coordenador, efe-


tuando o tratamento dos dados (requisito 2), utilizando uma política pré-definida de monitora-
mento para enviar os dados somente quando necessário (requisito 3) e na quantidade necessária
(requisito 4). O algoritmo, denominado Níveis de Alerta, utiliza as técnicas de economia de
energia do rádio e do microcontrolador (requisito 5) para ficar em estado de dormência, de
acordo com a alteração dos dados sensoreados.

O modo API do rádio XBee permite que, através das informações contidas na recepção
de um quadro de dados (figura 9), a aplicação de monitoramento possa identificar qual o nó
sensor que enviou a informação, satisfazendo o requisito 6. A aplicação desktop para o monito-
ramento da rede de sensores, denominada PUCAdmin, é proposta na seção 4.2.4. A PUCAdmin
deve tratar os dados enviados pelos nós sensores, permitindo a identificação do tipo do dado en-
viado e qual o nó sensor que enviou a informação, através das informações contidas no quadro
de dados no padrão API.
56

4.2.2 Algoritmo de Integração de Dados

Para o monitoramento de ambientes, é desejável que uma aplicação de monitoramento


identifique qual o tipo de dado que o nó sensor está enviando. Isto permite que os módulos
sensores enviem apenas as informações que sofreram alterações, principalmente quando cada
módulo sensor possui mais de um tipo de sensor, como por exemplo, temperatura, umidade,
movimento. O algoritmo de integração de dados, proposto neste trabalho, permite que a infor-
mação sobre o tipo do sensor seja transmitido em conjunto com o valor lido pelo sensor.

A abordagem inicial para a identificação dos dados era agregar mais um byte à infor-
mação coletada pelos módulos sensores, permitindo a identificação da origem de cada valor
transmitido. Foi verificado que o microcontrolador do módulo sensor possui um conversor
analógico-digital de 10 bits, percebendo valores entre 0 e 1023. Por este motivo, ao enviar os
valores captados por cada sensor do módulo, são necessários 2 bytes para o envio da informa-
ção. Os dois bytes podem ser divididos em dois grupos de oito bits, fazendo com que pelo
menos 6 bits de informação não sejam utilizados.

Para tornar a transmissão da informação mais eficiente, verificou-se a possibilidade de


serem utilizados 6 bits para identificar o tipo do sensor que está enviando a informação, permi-
tindo a identificação de 128 tipos de sensores. É possível também identificar módulos atuadores,
permitindo que, além da captura de dados, possam ser enviados comandos ao módulo sensor
para que seja possível controlar outros dispositivos, em futuras aplicações. Atualmente foram
mapeados dez tipos de sensores disponíveis para aplicação de monitoramento, como pode ser
verificado na tabela 3. Optou-se por não utilizar o valor decimal 0 para a identificação do tipo
do nó sensor e também não especificar os valores acima de 11, permitindo implementações
futuras.

Tabela 3: Tipos de Sensores


Tipo do Sensor Valor Decimal Código Binário
Disponível 0 000000
Luminosidade 1 000001
Umidade 2 000010
Temperatura 3 000011
Presença 4 000100
Sismico 5 000101
Inclinação 6 000110
Acelerômetro 7 000111
Energia USB 8 001000
Bateria 9 001001
RSSI 10 1010
Disponível 11 em diante 1011
Fonte: Elaborado pelo autor

O algoritmo para a integração de dados consiste na divisão do valor de 10 bits em dois


57

bytes separados. O valor do tipo do sensor é deslocado dois bits para a esquerda e é adicio-
nado ao byte mais significativo (MSB). O valor do byte menos significativo (LSB) permanece
inalterado. Posteriormente, quando esses dois bytes forem transmitidos para a aplicação de
monitoramento, será feita a extração do tipo do sensor e a reconstrução do valor original senso-
reado.

O exemplo apresentado na figura 27 mostra como funciona o algoritmo de concatenação


de dados. Parte da informação lida pelo sensor, no caso 00000010, é alocada no MSB e a
outra parte da informação, 11010110, no LSB. O código do sensor utilizado no exemplo é
00101011, mas como são utilizados somente 6 bits para representar esse código, o algoritmo faz
o deslocamento à esquerda de dois bits, alterando o valor do código do sensor para 10101100.
O valor do MSB é mesclado com o código do sensor alterado, resultando no valor 10101110.
Esse valor passa a ser o MSB e é enviado junto com o LSB para a aplicação de monitoramento,
através da RSSF. A aplicação de monitoramento faz o processo inverso, extraindo os dois bits
menos significativos do MSB para recompor a informação de 10 bits do sensor e deslocando os
6 bits mais significativos à direita, para recompor o valor com o código do sensor.

Figura 27: Operação de concatenação de dados

Fonte: Elaborado pelo autor

A identificação do tipo do sensor, quando transmitido em conjunto com o valor senso-


reado, permite que não seja preciso que os dados estejam em uma ordem pré-definida para que
a aplicação que recebe esses dados possa tratá-los. Os dados sensoreados podem ser enviados
de acordo com a necessidade da aplicação, permitindo que dados diferentes sejam lidos em
intervalos diferentes de tempo. Com isso, é possível diminuir o tamanho do pacote de dados
transmitido do nó sensor para o nó coordenador, diminuindo também o tráfego de dados nos
roteadores.

4.2.3 Algoritmo de Níveis de Alerta

Para identificar quando o envio dos dados lidos pelos sensores é necessário, é proposto o
algoritmo de níveis de alerta. O algoritmo de níveis de alerta incorpora o algoritmo de integra-
ção de dados apresentado anteriormente, permitindo que os dados identificados de acordo com
o tipo do sensor que realizou a medição. Para tratar a necessidade de informações, de acordo
com os requisitos da rede, podem ser estabelecidos níveis de alerta em cada módulo sensor,
58

permitindo que um nó sensor tenha um ciclo de trabalho variável. Os níveis de alerta permi-
tem que, de acordo com a atividade de sensoreamento, um nó sensor possa entrar em estado
de dormência, acordar apenas áreas do microcontrolador ou do rádio, de acordo com critérios
dinâmicos de alteração dos valores lidos. Neste trabalho, optou-se por configurar o módulo
sensor com quatro níveis de alerta, onde a transmissão de dados irá ocorrer somente quando
forem constatadas as seguintes situações:

a) Dormência: nível padrão do módulo. O sensor acorda a cada 8 segundos, verifica o estado
das medições e, não havendo alterações, volta a hibernar. Quando repetir esse ciclo por
3 vezes, ele envia para o nó coordenador informações sobre o nível de tensão da bateria.
O módulo sai deste ciclo ao detectar qualquer variação considerada anormal em relação à
política de monitoramento adotada nos requisitos da rede.

b) Crítico: quando ocorrer alteração na leitura de sensores considerados essenciais para o mo-
nitoramento, e, no caso deste trabalho, a detecção de movimento foi considerada essencial.
Foi especificado um intervalo de 2 segundos entre envios das informações.

c) Importante: quando o sensor detectar alguma alteração que deva ser comunicada à aplicação
de monitoramento, como por exemplo, a presença de alguma pessoa no ambiente mas sem
a alteração no movimento. O módulo passa a enviar informações com um intervalo de 4
segundos, com um tempo de dormência maior que o do nível crítico.

d) Relevante: quando é detectada uma alteração relevante nos dados, como por exemplo, uma
alteração de 2% na temperatura, em relação à leitura anterior. O tempo de dormência é
alterado para 8 segundos.

O algoritmo de níveis de alerta é apresentado na figura 28 e o cálculo do ciclo de tra-


balho do algoritmo é apresentado no apêndice B. Devem ser especificados previamente, nos
requisitos da aplicação de sensoreamento, quais sensores podem alterar o nível de alerta do
módulo sensor. Quando o nó sensor é inicializado, o algoritmo faz uma leitura inicial de todas
as portas de entrada do microcontrolador. No primeiro ciclo de trabalho não existem leituras
anteriores. Um pacote com todos os valores medidos pelos sensores é enviado para o nó coor-
denador e o módulo permanece no nível de alerta crítico. Após o envio, o rádio é desligado e
o microcontrolador hiberna. Ao acordar, o microcontrolador faz uma nova leitura dos valores e
compara com os valores lidos anteriormente.

Os sensores que apresentaram uma variação acima de um limite estabelecido nos re-
quisitos são classificados de acordo com o nível de alerta a ele atribuído, alterando o ciclo de
trabalho (duty cycle) do módulo sensor. Caso a alteração seja classificada como crítica, o al-
goritmo prepara novamente os dados para envio, repetindo o processo inicial. Caso a alteração
seja classificada como importante, o ciclo de trabalho é alterado para um tempo de dormência
59

Figura 28: Algoritmo dos Níveis de Alerta

Fonte: Elaborado pelo autor


60

maior, repetindo o processo de ligar o rádio, transmitir os dados, desligar o rádio e hibernar o
microcontrolador de acordo com o novo nível de alerta. A mesma situação ocorre para o nível
de alerta de alteração de dados.

Após o microcontrolador repetir o ciclo três vezes, sem alteração nos valores lidos pelos
sensores, o rádio é ligado e são enviadas as informações sobre o nível de tensão da bateria. Essa
é uma medida necessária para manter o coordenador ciente de que um determinado nó está
ativo. O algoritmo permite que o rádio hiberne de forma independente do microcontrolador,
sendo ativado somente quando existem alterações nos valores medidos pelos sensores.

A quantidade de ciclos que o algoritmo utiliza para enviar informações sobre o nível
de tensão pode ser alterada, de acordo com a necessidade da aplicação de monitoramento.
Optou-se por utilizar o valor três, que permite uma dormência do rádio de aproximadamente
24 segundos, por se aproximar do tempo máximo recomendado de 30 segundos do rádio XBee.
Após 30 segundos sem receber nenhuma comunicação do nó sensor, o nó coordenador entende
que o nó sensor não faz mais parte da rede, fazendo com que em uma próxima conexão, o nó
sensor gaste mais tempo para se reconectar à RSSF.

4.2.4 Aplicação PUCAdmin

Para monitorar os dados de múltiplos sensores de uma RSSF, foi desenvolvida uma
aplicação para tratar os dados recebidos pelo nó coordenador. A aplicação PUCAdmin recebe
informações do nó coordenador através da porta USB do microcomputador. As informações
recebidas foram divididas em dois grupos. O primeiro grupo trata as informações relativas aos
nós da RSSF, como a identificação do nó sensor, os endereços de 16 e 64 bits, o atraso do sinal
na rede e o tipo do nó (roteador ou nó sensor). O segundo grupo de informações são relacionadas
às medições realizadas pelos nós sensores, como dados de temperatura, luminosidade, presença,
luminosidade e movimento/trepidação. A tela da aplicação em desenvolvimento no programa
Visual Studio pode ser vista na figura 29.

Quando a aplicação PUCAdmin é executada, é realizada uma varredura na RSSF para


identificar todos os nós sensores e roteadores que estão dentro do alcance do nó coordenador.
Cada nó ativo da rede envia ao nó coordenador os endereços de 64 bits e de 16 bits do padrão
ZigBee, o tipo do nó (sensor ou roteador) e o nome identificador do nó. A aplicação PUCAdmin
também registra a data e a hora do último pacote de dados recebido pelo nó coordenador.

A aplicação PUCAdmin permite que os nós sensores e roteadores sejam alocados visual-
mente em um mapa do ambiente sensoreado. Quando uma informação sobre uma determinada
sala é enviada pelo nó sensor ao nó coordenador, essa informação é atualizada automaticamente
na aplicação. Isto permite que, quando um sensor detecta presença em um ambiente através
de um sensor PIR, essa informação seja encaminhada imediatamente à aplicação de monitora-
61

Figura 29: Aplicação PUCAdmin

Fonte: Elaborado pelo autor

mento.

4.3 Resultados Preliminares

Nesta seção são descritos os resultados dos experimentos para verificar o funcionamento
da RSSF proposta. Na seção 4.3.1, é apresentado o experimento para verificar o funcionamento
da aplicação PUCAdmin e a recepção dos dados enviados pelos nós sensores, que utilizaram
os algoritmos de níveis de alerta e de concatenação de dados. Na seção 4.3.2, é realizada a
avaliação do consumo de energia dos nós sensores utilizados na RSSF proposta. A seção 4.3.3
apresenta o experimento para verificar o tempo de vida do nó sensor. Na seção 4.3.4, é realizada
uma análise do consumo de cada componente do nó sensor.

4.3.1 Aplicação de Monitoramento

Para verificar o funcionamento da aplicação de monitoramento e dos algoritmos propos-


tos na seção 4.2, foi realizado um experimento com a RSSF proposta no cenário apresentado
pela figura 22. Na figura 30, pode ser visualizada a disposição do nó sensor para monitoramento
de projetores LCD, na sala 309. O experimento consistiu em receber as informações de todos
62

Figura 30: Nó sensor para monitoramento de projetores LCD

Fonte: Elaborado pelo autor

os nós sensores da rede e verificar alterações no estado do nó sensor para monitorar o projetor
LCD.

A aplicação envia um pacote para a rede solicitando a informação sobre a atividade


de cada nó sensor e mede o atraso entre enviar a solicitação e receber a informação de volta,
mas como essa abordagem gera um tráfego adicional na rede, foi utilizada apenas para testar
o tempo de resposta. O tempo de resposta ficou abaixo de 1 segundo durante o experimento.
Os nós sensores enviaram as informações sobre temperatura, umidade e luminosidade das salas
303, 307 e 311.

Na sala 308 foi disposto o nó para o monitoramento de um projetor LCD. O experimento


teve a duração de duas horas, sendo que, nesse intervalo de tempo, ocorreu a entrada de pessoas
na sala e a movimentação do projetor LCD, simulando uma tentativa de furto, que foi detectada
pela aplicação PUCAdmin. A aplicação registra a presença de pessoas na sala com a mensagem
“Presença Detectada” e a simulação de tentativa de furto do projetor LCD com a mensagem
“Movimento Detectado”. A tela com a aplicação sendo executada pode ser visualizada na
figura 31, onde podem ser visualizadas as mensagens de alerta na sala 308.

4.3.2 Consumo de Energia

Foi realizado um experimento, nos módulos sensores, para verificar o consumo da ener-
gia. Este experimento é necessário para estimar o tempo de vida dos módulos sensores quando
da utilização de baterias e serviu para dois propósitos: inicialmente, saber em condições nor-
mais qual era o consumo de energia em miliampere/hora, e, também para verificar qual o tipo
de alimentação permitiria o maior tempo de vida da rede.

Foram testados dois níveis de tensão, simulando as alimentações de três baterias recar-
63

Figura 31: Experimento da Aplicação de Monitoramento

Fonte: Elaborado pelo autor

regáveis de 1, 2 volts em corrente contínua cada, totalizando 3, 6 volts e quatro baterias recar-
regáveis de 1, 2 volts cada, totalizando 4, 8 volts. Como valor de referência, foram testadas as
placas com e sem o microcontrolador, e com e sem os módulos de comunicação, além dos mó-
dulos sensores utilizados na rede. Os experimentos foram realizados com a placa Arduino sem
nenhum sensor, pois cada nó sensor pode ter uma quantidade de sensores diferente, de acordo
com o tipo da aplicação. Os resultados podem ser vistos na tabela 4.

Tabela 4: Consumo de Energia - valores em miliamperes


Consumo (mA) 3,6 volts 4,8 volts
Arduino sem Microcontrolador 6,5 9,1
Arduino com Microcontrolador 16,7 26,2
Arduino/Mód.XBee e Microcontr. (Sensor) 59,5 70,5
Arduino/Mód.XBee (Roteador) 48,8 56,8
Fonte: Elaborado pelo autor

Verificou-se que os módulos sensores apresentaram um consumo de energia menor


quando alimentados por três baterias de 1, 2 volts cada. Nos testes em laboratório verificou-
se que o módulo sensor para de funcionar quando o nível de tensão fica abaixo de 3 volts. O
nível de tensão recomendado pelo fabricante (LIBELIUM, 2009) permite uma variação entre
5 a 12 volts. Os testes foram realizados utilizando-se uma fonte de alimentação de energia
64

constante. Para estimar o tempo de vida de um nó sensor, é necessário realizar experimentos


utilizando-se baterias ou pilhas. O experimento do tempo de vida do nó sensor é apresentado
na seção 4.3.3.

4.3.3 Tempo de Vida do Nó Sensor

Foram realizados dois experimentos para verificar quanto tempo os módulos sensores
ficariam ativos utilizando-se baterias, de acordo com o consumo medido na seção 4.3.4. Para
verificar o tempo de vida dos módulos sensores, foi projetada uma rede de testes com o objetivo
de medir o consumo de cada nó sensor. Devido à especificação de tensão mínima recomendada
pelo fabricante, optou-se por utilizar o nível de tensão de quatro baterias recarregáveis de 1,2
volts.

O cenário de cada experimento compreende uma rede com dois nós: um módulo Ar-
duino conectado a um rádio XBee configurado como RFD, através de uma placa XBee Shield e
alimentados por quatro baterias de 1, 2 volts de 2000 mAH cada totalizando 4, 8 volts e por um
módulo Arduino sem o microcontrolador e também conectado ao rádio XBee através da placa
XBee Shield, este configurado como FFD e conectado a um microcomputador através da porta
USB. Este nó FFD é responsável por receber os dados enviados pelo nó FFD e enviá-los pela
porta USB para a aplicação de monitoramento. Na figura 32 pode ser visualizado o experimento
para medir o tempo de vida do nó sensor.

Figura 32: Experimento para medir o tempo de vida do nó sensor

Fonte: Elaborado pelo autor

Para coletar, processar e enviar os dados, foi desenvolvida uma aplicação para ser execu-
tada no microcontrolador, com a função inicializar o modo de dormência do microcontrolador,
capturar uma informação, no caso o nível de tensão interna do ATMega 328, ativar o rádio,
transmitir a informação coletada, desligar o rádio e entrar em modo de dormência power-down.
Após o período de tempo especificado na inicialização do modo de dormência, o microcontro-
lador retorna à atividade normal e repetindo o ciclo de trabalho na leitura do nível de tensão
interna, como pode ser observado na figura 33. O tempo do watchdog timer foi estipulado com
65

o valor máximo permitido pelo microcontrolador, que é de 8 segundos.

Figura 33: Ciclo de trabalho

Fonte: Elaborado pelo autor

Foi desenvolvida uma aplicação para monitorar o nível de tensão da bateria do nó sensor.
A aplicação foi desenvolvida utilizando a linguagem de programação C# e a ferramenta Visual
Studio 2010, além do framework XBee.NET, que permite uma integração entre a plataforma
.NET e o rádio XBee. A tela da aplicação pode ser visualizada na figura 34.

Inicialmente, o rádio XBee foi configurado para permanecer ativo 100% do tempo. O
parâmetro SM do rádio XBee SM foi configurado com o valor 0 - No Sleep Mode, nunca sendo
desligado, e também nenhuma técnica hibernação do microcontrolador foi utilizada. Foram
utilizadas quatro baterias recarregáveis de 1, 2 volts, totalizando 4, 8 volts e 2000 mAh de ca-
pacidade total. O experimento teve a duração de 21 horas e 15 minutos e recebeu um total de
69371 transmissões do módulo sensor, como pode ser visto na figura 35.

No segundo experimento, foi alterado o parâmetro SM para o valor 4 - cyclic sleep


e também os parâmetros ST e SP do rádio XBee foram alterados para permitir que o rádio
alternasse entre o estado de dormência e o estado livre, permitindo a comunicação de dados.
Foi utilizada a mesma configuração de baterias e mesmo tamanho de pacote de transmissão
de dados utilizado no experimento anterior, mas a duração total foi de 29 horas e 29 minutos
e 29 segundos, com um total de 36257 amostras recebidas, visto na figura 36. No final deste
experimento, é possível verificar o efeito de recarga da bateria, causando uma variação no nível
de tensão.

Os resultados preliminares mostraram um alto consumo de energia, se comparado ao


66

Figura 34: Tela da aplicação para teste de tempo de vida do nó sensor

Fonte: Elaborado pelo autor

consumo de energia de 40 mA especificado no manual do rádio XBee (DIGI, 2009a), fazendo


com que os módulos ficassem ativos por pouco mais de vinte e quatro horas, quando utilizando
o modo Cyclic Sleep. A relação entre o consumo do rádio XBee e o total consumido pelo mó-
dulo utilizando o nível de tensão de 4, 8 volts (70, 5 mA) mostra que um total de 30, 5 mA foram
consumidos pelo circuito para prover alimentação de energia e processamento dos dados dos
sensores ao rádio. Desse total, ainda utilizando como referência o nível de tensão de 4, 8 volts,
9, 1 mA são consumidos pela placa Arduino sem o microcontrolador e 26, 2 mA com o micro-
controlador. Os 4, 3 mA restantes são consumidos pela placa XBee Shield, responsável por fazer
a interface entre a placa Arduino e o rádio XBee.

Para monitorar equipamentos eletrônicos em um campus universitário, a solução pro-


posta não consegue manter a RSSF funcionando durante um final de semana, quando normal-
mente não existem atividades de ensino. Devido ao alto consumo de energia, é necessário
realizar uma análise de cada componente do nó sensor para reduzir esse consumo e permitir um
tempo de vida maior para a RSSF proposta. Uma análise do consumo dos componentes do nó
sensor é realizada na seção 4.3.4.

4.3.4 Análise do Consumo

Em uma análise da capacidade de carga de baterias, realizada por Park, Savvides e Sri-
vastava (2001), foi verificada a influência dos reguladores de tensão no consumo de um nó
67

Figura 35: Módulo sob descarga Contínua da bateria

Fonte: Elaborado pelo autor

sensor, pois mesmo com os rádios de comunicação em estado de dormência, os reguladores


de tensão continuavam consumindo energia. Foi realizada uma análise do diagrama esquemá-
tico do Arduino (figura 1) e do XBee Shield (figura 1) e foi constatada a presença do circuito
integrado FTDI FT232R, responsável por permitir a comunicação entre a placa Arduino e o mi-
crocomputador através da porta USB e de circuitos reguladores de tensão, estes tanto na placa
Arduino quanto na placa XBee Shield. Um regulador de tensão permite que vários níveis di-
ferentes de tensão externa, como baterias de 4, 8 volts, 5 volts e 9 volts alimentem uma placa
de circuito impresso, mas mantendo a tensão constante nos componentes internos. Na placa
Arduino, a tensão necessária é de 5 volts e, para o rádio XBee, 3, 3 volts.

O circuito integrado FT232R é utilizado apenas quando é necessária a transferência de


dados do microcontrolador para um microcomputador ou quando é necessário programar o mi-
crocontrolador. Segundo a especificação do fabricante (FTDI, 2010), quando em utilização o
FT232R consome 15 mA. O circuito integrado FT232R também possui reguladores de tensão
internos, fornecendo tensões de 5 volts, 3, 3 volts, 2, 8 volts e 1, 8 volts. Nos experimentos rea-
lizados, os circuitos não foram alimentados pela porta USB, não sendo considerado o consumo
do circuito integrado FTDI no total consumido pela placa Arduino.

O circuito integrado LM358D é utilizado no Arduino possui um consumo de 1, 5 mA


a 3 mA de acordo com a especificação do fabricante (MOTOROLA, 2010a). O regulador de
68

Figura 36: Módulo sensor Arduino com rádio no modo cyclic sleep

Fonte: Elaborado pelo autor

tensão, o MC33269, é utilizado tanto na placa Arduino quanto na placa XBee Shield, e possui
um consumo de 5, 5 mA a 8 mA quando não está em uso (quiescent current ou corrente de
repouso), segundo a especificação do fabricante (MOTOROLA, 2010b). O total do consumo
teórico, especificado pelos fabricantes dos reguladores de tensão e somando-se os valores mí-
nimos e máximos de consumo, tem uma variação entre 12, 5 mA mínimo e 19 mA máximo,
confirmando o valor medido no experimento, de 9, 1 mA são consumidos pela placa Arduino
sem o microcontrolador e 4, 3 mA consumidos pela placa XBee Shield, totalizando 13, 4 mA.

Uma característica dos reguladores de tensão é a tensão de desoperação ou dropout,


uma diferença entre a tensão de entrada e a tensão de saída do regulador. A tensão de dropout
esclarece o fato de que, mesmo o microcontrolador funcionando com tensão de até 1, 8 volts e
o rádio XBee funcionando com a tensão de até 2, 2 volts, nos experimentos o módulo testado
parou de funcionar quando a carga da bateria forneceu tensões entre 2, 7 e 3 volts. O LM358D
possui uma tensão de dropout entre 1, 5 e 1, 7 volts e o MC33269 entre 1, 1 e 1, 25 volts.

O Arduino é uma placa utilizada para prototipagem rápida e é uma razão pela qual é
necessário um efetivo controle de energia para que ele possa funcionar com diversas fontes
de alimentação. Nas aplicações em RSSF, diminuir o consumo de energia é um fator deter-
minante para aumentar o tempo de vida da rede. Em uma aplicação como o sensoreamento
69

de um ambiente, onde um nó sensor estará se comunicando com o nó coordenador através do


rádio de comunicação, um circuito integrado como o FT232R não é necessário, pois não esta-
ria trafegando informações através da porta USB. A tensão mínima necessária para o correto
funcionamento do microcontrolador e do rádio XBee é de 2, 2 volts, mas ambos podem operar
com tensões de até 3, 6 volts (ATMEL, 2010) (DIGI, 2009a) (DIGI, 2009b). Suprir o conjunto
microcontrolador e rádio com baterias que forneçam esse nível de tensão permite a eliminação
dos reguladores presentes nas placas de circuito impresso do Arduino e do XBee Shield.

Os nós roteadores e o nó coordenador necessitam de fonte constante de energia e não


podem entrar em estado de dormência (sleep). Em nós sensores, podem ser utilizados vários
recursos para economizar energia, como os modos Cyclic Sleep e Pin Hibernate do rádio XBee
(seção 2.3) e os modos de Power Save e Power Down do microcontrolador (seção 2.4). Porém
esses modos não são efetivos caso o circuito esteja consumindo energia mesmo quando os
componentes principais, microcontrolador e rádio, estejam hibernando.

Na aplicação da rede proposta na seção 4.2.1, um nó sensor para monitorar ambientes


em um campus universitário, mais especificamente um projetor LCD, precisa ter um tempo de
vida superior ao apresentado na figura 36, considerando a não utilização das salas em períodos
de finais de semana, feriados prolongados e férias, onde a energia do prédio pode ser desligada
por motivos de economia.

A placa Arduino, como explicado na seção 2.4.4, é baseada em hardware aberto, sendo
permitida a alteração e adaptação da placa de acordo com a necessidade da aplicação. Uma
placa com um menor consumo de energia para a aplicação de monitoramento de equipamentos
eletrônicos é desejável para satisfazer aos objetivos deste trabalho. A proposta de um novo nó
sensor, com menor consumo de energia, é apresentada na seção 4.4 a seguir.

4.4 Nó Sensor Modulino

Devido ao consumo de energia do nó sensor utilizado na RSSF proposta não atender ao


requisito de tempo de vida da rede necessário para o monitoramento de um projetor LCD, foi
realizada uma análise do consumo da placa Arduino na seção 4.3.4. A análise realizada mostra
que alguns componentes da placa Arduino não são necessários para a função de monitoramento
proposta.

Para atingir o requisito de tempo de vida do nó sensor necessário para a atividade de


monitoramento proposta, foi desenvolvida uma variação do Arduino, chamada Modulino (figura
37). A placa Modulino foi projetada sem os componentes que consumiriam energia desneces-
sariamente (seção 4.3.4). Trabalhando com tensões entre 4, 8 e 5 volts não é necessário utilizar
os reguladores de voltagem presentes na placa, uma vez que a tensão de trabalho do microcon-
trolador ATMega 328 varia entre 1, 8 e 5 volts. O mesmo ocorre com chip FTDI, que provê a
70

Figura 37: Placa Modulino

Fonte: Elaborado pelo autor

interface USB, uma vez que esta última é utilizada apenas para programar o microcontrolador e
passar os dados do nó coordenador para o computador que armazena as informações coletadas
pela rede, não sendo mais utilizada em um ambiente de monitoramento.

A placa Modulino foi desenvolvida com base nas especificações do microcontrolador


ATMega 328 e nos diagramas da placa Arduino e da placa XBee Shield, eliminando os regu-
ladores de tensão. O Modulino é composto pelo microcontrolador ATMega 328, um cristal
de 16 Mhz e dois capacitores ligados em paralelo nas portas 9 e 10 do microcontrolador, dois
diodos emissores de luz(LED) para verificar se a placa está energizada e para identificar o mo-
mento das transmissões de dados para o XBee Shield e conectores para interligação com o XBee
Shield. Também foram utilizadas as portas 1 e 2 do microcontrolador, responsáveis pela comu-
nicação serial de transmissão e recepção de dados, para a comunicação do ATMega 328 com o
rádio XBee. Como a placa Modulino não possui porta USB, a programação é feita colocando-se
o microcontrolador do Modulino em uma placa Arduino.

Para poder desenvolver a placa Modulino, foi necessário realizar um mapeamento das
portas do Arduino, onde a aplicação para controle do nó sensor foi desenvolvida, para os pinos
do microcontrolador ATMega 328, devido ao endereçamento das portas utilizado pelo algo-
ritmo dos nós sensores. O mapeamento inclui a porta utilizada no Arduino, o pino utilizado
no microcontrolador ATMega 328 e a função nele desempenhada, como pode ser observado na
tabela 12, no anexo C.

Na figura 38 é apresentado o resultado dos experimentos realizados. Foi possível econo-


mizar, em média, 5, 1 mAH no modo de power-down do microcontrolador e 6, 2 mAH no modo
de transmissão de dados, representando uma economia de 37,5% e de 7,5%, respectivamente.
71

Figura 38: Consumo de Energia

Fonte: Elaborado pelo autor

Observou-se durante os testes que a placa XBee Shield é responsável pelo consumo de 4mAH,
devido ao regulador de voltagem nela incluso. Ao se retirar os leds da placa, a economia foi
ainda maior, diminuindo o consumo em 4 mAH no modo power-down e 5, 6 mAH no modo
de transmissão de dados, representando uma economia de 67% e de 14,25% respectivamente.
Ao analisar a placa Modulino sem o módulo XBee, o consumo de energia ficou em 25µAH no
modo de dormência e 14, 75 mAH no modo ativo, com tensão de 4, 8 volts.

A queda de tensão (dropout) no diodo Zener é de 0, 75 volts. A última medição apon-


tava para 2, 76 volts na bateria, o que indica cerca de 2 volts no rádio XBee, 0, 2 volts abaixo
do limite de 2, 2 volts especificado pelo fabricante. A medição do nível de tensão é realizada
através de uma função do microcontrolador, que utiliza uma tensão de referência para fazer a
comparação entre o valor de referência de 1, 1 volts especificado pelo fabricante do microcon-
trolador e o valor recebido através dos pinos de alimentação. O diagrama esquemático da placa
Modulino é apresentado na figura 39. A análise da viabilidade do Modulino como proposta para
o aumento do tempo de vida da RSSF proposta é apresentada no capítulo 5, onde são apresen-
tados os resultados dos experimentos comparando a solução de mercado Arduino com o modo
de dormência cyclic sleep e com a utilização do algoritmo de níveis de alerta.

No capitulo 5 são apresentados os resultados dos experimentos realizados com o nó


sensor Modulino em conjunto com os algoritmos propostos nas seções 4.2.2 e 4.2.3. Foram
realizados experimentos para verificar o tempo de vida da rede, a quantidade de bytes transmi-
tidos, o tempo de resposta a um evento e a análise do custo dos nós sensores.
72

Figura 39: Diagrama esquemático da placa Modulino

Fonte: Elaborado pelo autor


73

5 RESULTADOS OBTIDOS

5.1 Introdução

Para verificar o funcionamento da placa Modulino, foi realizado um experimento para


comparar o tempo de vida da placa Arduino com a placa Modulino, proposta na seção 4.4. O ce-
nário utilizado foi o mesmo da seção 4.3.3, mas utilizando três baterias de 1, 2 volts, totalizando
um nível de tensão de 3, 6 volts. O experimento foi realizado utilizando os mesmos parâmetros
de configuração do rádio XBee, no modo cyclic sleep. O modo cyclic sleep é o modo padrão
de economia de energia do rádio XBee, descrito na seção 2.3.5. A placa Modulino também foi
avaliada utilizando o algoritmo de níveis de alerta, proposto na seção 4.2.3. Os resultados desse
experimento são apresentados na seção 5.2.

O experimento do algoritmo de níveis de alerta na placa Arduino não foi realizado devido
à placa XBee Shield não possuir uma conexão direta com o Arduino para controlar a dormên-
cia do rádio. A placa Arduino também tem um consumo de energia muito maior que a placa
Modulino, quando utilizando os modos de dormência.

O experimento para verificar o aumento de tempo de vida da rede também foi utilizado
para verificar a quantidade de dados transmitidos. Foi utilizado o mesmo cenário do experi-
mento anterior, com a placa Arduino e a placa Modulino utilizando o modo cyclic sleep e com
a placa Modulino utilizando o algoritmo de níveis de alerta. Os resultados desse experimento
são apresentados na seção 5.3.

Foi realizada uma análise do tempo de resposta da RSSF na ocorrência de um evento,


como por exemplo, a tentativa de furto de um equipamento eletrônico. O resultado da análise
do tempo de resposta do nó sensor Modulino é apresentado na seção 5.4. Por fim, foi realizada
uma análise do custo de desenvolvimento do nó sensor Modulino, em comparação à solução de
mercado Arduino. O resultado dessa análise é apresentado na seção 5.5.

5.2 Tempo de Vida da Rede

Foram realizados experimentos para verificar o tempo de vida da rede, utilizando um


cenário semelhante ao apresentado na seção 4.3.3. O Modulino é alimentado por três baterias
74

de 1, 2 volts, sendo a única diferença em relação ao experimento realizado com o Arduino, que
é alimentado por quatro baterias de 1, 2 volts neste trabalho.

O primeiro experimento utilizou um nó sensor com a placa Modulino, configurado ape-


nas com o modo de dormência cyclic sleep do rádio XBee. O resultado do experimento é apre-
sentado na figura 40, onde pode ser visualizada a diminuição do nível de tensão das baterias
até o nó sensor não conseguir mais transmitir informações ao nó coordenador. O resultado do
experimento mostrou um aumento no tempo de vida do módulo em 332%, passando de pouco
mais de 29 horas com a placa Arduino, como pode ser observado na figura 36 da seção 4.3.3,
para 95 horas, 1 minuto e 7 segundos com a placa Modulino.

Figura 40: Módulo sensor modulino com dormência cyclic sleep

Fonte: Elaborado pelo autor

No segundo experimento, a única alteração em relação ao primeiro experimento foi a


utilização do algoritmo de níveis de alerta na placa Modulino. O resultado do experimento
pode ser visualizado na figura 41. A implementação do algoritmo de níveis de alerta permitiu
um aumento no tempo de vida da placa Modulino em 61%, com duração de 152 horas, 47
minutos e 9 segundos. Em relação à placa Arduino, o aumento foi de 518%. Na figura 42 é
apresentado um gráfico comparativo dos dois experimentos realizados com o experimento do
tempo de vida do Arduino, apresentado na seção 4.3.3.

Apesar do rádio XBee permitir uma configuração para mais de 30 segundos de dormên-
75

Figura 41: Módulo sensor Modulino com algoritmo de níveis de alerta

Fonte: Elaborado pelo autor

Figura 42: Tempo de vida do nó sensor (horas)

Fonte: Elaborado pelo autor


76

cia, esta opção é contra-indicada, uma vez que o microcontrolador não conseguiria enviar a
informação sobre alteração dos dados enquanto o rádio estivesse dormindo. É possível, no en-
tanto, configurar o rádio para trabalhar no modo pin hibernate em conjunto com o modo cyclic
sleep, mas nos experimentos realizados optou-se por deixar o controle de hibernação do rá-
dio somente com o microcontrolador. Com isso, evitou-se que o rádio entrasse no modo ativo
mesmo sem ter dados para enviar/receber.

5.3 Quantidade de Bytes Transmitidos

A redução na quantidade de dados redundantes transmitidos pelos nós sensores para o


nó coordenador possibilita uma diminuição no congestionamento do canal de comunicação da
RSSF. Quando um rádio XBee tenta enviar uma informação ao nó coordenador, caso o canal de
comunicação não esteja disponível, o rádio tentará a transmissão posteriormente, acarretando
um maior consumo de energia. Com a redução do tamanho do pacote de dados transmitidos,
uma quantidade menor de informação trafega pela rede, permitindo ao nó coordenador receber
informações de uma maior quantidade de nós sensores.

Para transmitir os dados para monitoramento de um ambiente utilizados neste trabalho


(temperatura, umidade, luminosidade, presença, movimento e tensão da bateria), o tamanho do
pacote com as informações sensoreadas foi de 24 bytes. Com a utilização do algoritmo de níveis
de alerta, após a eliminação dos dados que não sofreram alteração significativa, cada pacote de
informação transmitida teve um tamanho entre 14 bytes no melhor caso (menor quantidade de
bytes transmitidos) e 24 bytes no pior caso (maior quantidade de bytes transmitidos), de acordo
com as alterações dos valores medidos no ambiente. O tamanho do pacote de dados transmitidos
pela solução de mercado utilizada na seção 4.1.2 é de 37 bytes.

Sem a utilização do algoritmo de níveis de alerta, apenas com a adoção da transmissão


de dados no modo API e a utilização do algoritmo para concatenar os dados lidos pelos sensores
com o tipo do sensor, o tamanho do pacote transmitido caiu cerca de 35% em relação ao pacote
transmitido pelo Arduino. Utilizando o algoritmo de níveis de alerta, no melhor caso, com o ta-
manho do pacote de 14 bytes, a redução na quantidade de dados transmitidos caiu cerca de 62%,
sendo o pior caso equivalente ao algoritmo para concatenar dados, com 24 bytes transmitidos e
redução de 35% no tamanho do pacote.

Como o algoritmo de níveis de alerta envia apenas as informações que sofreram alte-
ração significativa, ocorre também uma redução na quantidade de transmissões realizadas pelo
nó sensor. No experimento apresentado na seção 5.2, além de medir o tempo de vida da rede,
foi contabilizada a quantidade de transmissões efetuadas em cada cenário. Na figura 43 é apre-
sentada uma comparação na quantidade de dados transmitidos pelos nós sensores Arduino e
Modulino utilizando o modo de economia de energia cyclic sleep e com o nó sensor Modulino
77

Figura 43: Quantidade de dados transmitidos

Fonte: Elaborado pelo autor

utilizando o algoritmo de níveis de alerta.

Com o aumento do tempo de vida do nó sensor, a quantidade de transmissões subiu de


36257 no Arduino para 73568 no Modulino, cerca de 202%, com ambos utilizando o modo
cyclic sleep. Com a utilização do algoritmo de níveis de alerta, foram realizadas 29625 trans-
missões, com uma redução da ordem de 248% em relação ao modo cyclic sleep do Modulino.

Para verificar a efetividade da redução na quantidade de dados transmitidos propiciada


pela adoção do algoritmo de níveis de alerta, foi realizada uma análise na quantidade de infor-
mações transmitidas por minuto. Com os dados sobre o tempo de vida dos nós sensores e a
quantidade de dados transmitidos, o Arduino efetuou cerca de 20,49 transmissões por minuto.
A placa Modulino, com cyclic sleep, efetuou cerca de 12,90 transmissões por minuto e o Mo-
dulino com níveis de alerta, cerca de 3,23 transmissões por minuto, como pode ser observado
na figura 44.

O Modulino com algoritmo de níveis de alerta transmitiu, por minuto, quase quatro
vezes menos que o Modulino com cyclic sleep. A diferença na quantidade de dados transmitidos
por minuto do Arduino em relação ao Modulino com cyclic sleep é devido à variação no nível
de tensão no final do tempo de vida da rede, causando mais transmissões. Como o Modulino
possui menor consumo de energia, a queda no nível de tensão é mais suave, acarretando um
menor número de transmissões.
78

Figura 44: Transmissões efetuadas por minuto

Fonte: Elaborado pelo autor

5.4 Tempo de Resposta a um Evento

Em uma aplicação de segurança patrimonial, como monitoramento de equipamentos


eletrônicos, é essencial que o nó coordenador possa receber uma informação sobre a ocorrência
de um evento, como a tentativa de furto de um projetor LCD, o mais breve possível. Uma vez
que o tempo de resposta a um evento é um fator importante, optou-se por calcular esse tempo
de resposta de acordo com o tamanho da rede a ser utilizada para monitoramento, permitindo
também, verificar a escalabilidade da solução. Os relógios dos nós sensores utilizados neste
trabalho não são sincronizados, o que não permite uma medição precisa do tempo entre o envio
e o recebimento dos pacotes, sendo, por este motivo, a opção pelo cálculo do tempo de resposta.

De acordo com a especificação do rádio XBee, a vazão de dados (throughput) entre um


nó sensor e um nó roteador ou nó coordenador é de 21 kbps e, entre dois nós roteadores ou entre
o nó roteador e o nó coordenador, é de 25 kbps (DIGI, 2009a). Neste trabalho, serão utilizados
os valores da vazão de dados para calcular o tempo do envio dos pacotes de dados entre o nó
sensor e o nó roteador e entre nós roteadores até o nó coordenador.

Conforme os resultados apresentados na seção 5.3, o tamanho do pacote de dados trans-


mitidos pela rede proposta, no pior caso, é de 24 bytes. Considerando a taxa de transmissão de
21 kbps e o tamanho do pacote de 24 bytes, o tempo (τs) para cada transmissão realizada entre
um nó sensor e um nó roteador é calculado pela equação (1), tendo como resultado 9, 14 ms.
Para a transmissão entre nós roteadores ou entre um nó roteador e o nó coordenador, o cálculo
é representado pela equação (2), tendo como resultado 8 ms. No melhor caso, com tamanho de
pacote de 14 bytes, o tempo de transmissão entre o nó sensor e o nó roteador foi calculado em
5, 3 ms e entre nós roteadores em 4, 48 ms.
79

24 bytes × 8 bits
τs = = 9, 14 ms (1)
21 kbps

24 bytes × 8 bits
τs = = 8 ms (2)
24 kbps

O tempo total entre a ocorrência de um evento, a transmissão da informação e a recepção


pelo nó coordenador é definido pela soma do tempo que o nó sensor demora para capturar e
transmitir a informação para o nó coordenador. Essa transmissão pode ou não passar por um ou
mais nós roteadores, sofrendo um atraso a cada enlace.

Foi realizado um experimento para calcular o ciclo de trabalho do nó sensor, onde foi
medido o tempo que o nó sensor permanece ativo antes de hibernar. Os resultados dos experi-
mentos apresentados são relativos ao sensor de movimento, no qual o nó sensor sai do estado
de hibernação imediatamente após o módulo sofrer qualquer tipo de alteração no estado de re-
pouso. O experimento é apresentado no apêndice B, onde o nó sensor, inicialmente em estado
de dormência, gastou 159, 99 ms para acordar, ler as informações dos sensores, processar a
informação, ligar o rádio XBee e enviar a informação para o rádio. Esse resultado é relativo
a uma taxa de transmissão entre o microcontrolador e o rádio XBee de 57600 bps, como pode
ser observado na tabela 11. Após esta etapa, o rádio realiza a transmissão dos dados para o nó
roteador mais próximo, gastando τs segundos, voltando a hibernar após a transmissão.

A equação (3) apresenta o calculo do tempo T gasto entre a ocorrência do evento e a


recepção pelo nó coordenador, onde τe é o tempo gasto pelo nó sensor para processar e enviar
a informação para o rádio, mais τs, que é o tempo gasto entre o envio da informação do nó
sensor para o nó roteador pai, mais a soma de tempo τr de η enlaces entre roteadores até o nó
coordenador.

η
T = τe + τs + ∑ τr (3)
i=0

No caso em que o nó sensor está conectado diretamente ao nó coordenador, o tempo que


o nó coordenador leva para receber informações sobre um evento sensoreado pelo nó sensor é
de 169, 13 ms, como pode ser observado na equação (4), uma vez que não existem enlaces entre
roteadores.

T = 159, 99 ms + 9, 14 ms = 169, 13 ms (4)

Para uma rede com 10 enlaces, que é o máximo recomendado pelo fabricante do rádio
XBee, o tempo que o nó coordenador leva para receber informações sobre um evento sensoreado
80

pelo nó sensor é de 241, 13 ms, como pode ser observado na equação (5), sendo um enlace entre
o nó sensor e o nó roteador pai e outros nove enlaces até o nó coordenador.

9
T = 159, 99 ms + 9, 14 ms + ∑ 8 ms = 241, 13 ms (5)
i=0

A vazão da transmissão de dados de 25 kbps entre roteadores permite que sejam transmi-
tidas as informações de 130 nós sensores por segundo, com cada nó sensor enviando um pacote
de informações com um tamanho de 24 bytes. Com um tamanho de 14 bytes, a quantidade
de transmissões entre roteadores é calculada em 223 transmissões por segundo. O nó roteador
permite 187 transmissões por segundo de nós sensores, para informações com o tamanho de
14 bytes, e de 109 transmissões por segundo quando o tamanho do pacote é de 24 bytes.

Os resultados mostram que, tanto com um enlace quanto com dez enlaces entre o nó
sensor e o nó coordenador, o tempo de resposta a um evento foi inferior a um segundo, permi-
tindo a aplicação da RSSF para o monitoramento de equipamentos eletrônicos. Segundo (DIGI,
2009a), cada nó roteador XBee permite a conexão de até 12 nós sensores e o nó coordenador
permite a conexão de até 10 nós sensores, ficando abaixo do limite de 109 transmissões do nó
sensor para o nó roteador ou coordenador. A especificação do rádio XBee, no entanto, não limita
a quantidade de conexões entre nós roteadores e entre os nós roteadores e o nó coordenador.

5.5 Custo do Nó Sensor

O desenvolvimento da placa Modulino proporcionou uma diminuição no custo de de-


senvolvimento de um nó sensor, quando comparado ao custo dos nós sensores utilizados pela
solução de mercado. Foram eliminados componentes que consumiriam energia, como os regu-
ladores de tensão, a placa XBee Shield não precisou ser utilizada e, devido à queda do nível de
tensão necessário para ativar a placa Modulino, uma bateria deixou de ser utilizada, uma vez
que a placa Arduino funciona com quatro baterias de 1,2 volts e a placa Modulino, três baterias
de 1,2 volts.

Os componentes para a fabricação da placa Modulino foram orçados em R$ 102,44 em


quatro lojas virtuais. O valor do frete para entrega em Belo Horizonte foi estimado em R$ 33,50,
totalizando R$ 135,94, equivalente a e 60,96 na cotação de 08/07/2011 (e1 = R$ 2,23). Não
foram incluídos no orçamento custos com mão de obra para montagem e soldagem da placa de
circuito impresso. O orçamento dos componentes pode ser visualizado na tabela 5.

Os módulos sensores inicialmente utilizados neste trabalho foram adquiridos no exte-


rior. Para comparação de custos, foram orçadas as placas Arduino, XBee Shield e o rádio XBee
na mesma loja onde foram adquiridos os módulos SquidBee e Arduino utilizados neste traba-
lho. O custo total das placas foi orçado em e 65,00, equivalente a R$ 144,95 na cotação de
81

Tabela 5: Orçamento dos componentes da placa Modulino


Componente Quantidade Unitário (R$) Total(R$)
Cristal 16Mhz 1 0,95 0,95
Capacitor 22nF 2 0,11 0,22
Capacitor 100nF 1 0,11 0,11
Diodo Zener 3V3 1 0,17 0,17
Resistor 10K 1 0,05 0,05
Resistor 15K 2 0,05 0,10
Chave tipo Push-button para placa PCI 1 0,21 0,21
Soquete 28 pinos 1 0,40 0,40
Placa Fenolite 5X10 1 3,15 3,15
Conector de Energia Macho/Fêmea 1 0,28 0,28
Conector 20mm para Xbee 1 8,90 8,90
Rádio Xbee Series 2 1 70,90 70,90
Microcontrolador ATMega 8 / equiv. 328 1 17,00 17,00
Total dos Componentes 102,44
Frete Estimado (4 empresas por PAC/Correios) 33,50
Total em Reais 135,94
Total em Euros (1 Euro = R$ 2,23) 60,96
Fonte: Elaborado pelo autor

08/07/2011 (e1 = R$ 2,23), com frete incluso para entrega em Belo Horizonte. Por serem pro-
dutos importados, os produtos estão sujeitos a um imposto de importação de 60% sobre o valor
do produto e frete, totalizando R$ 231,92. O orçamento pode ser visualizado na tabela 6.

Tabela 6: Orçamento da Placa Arduino e Rádio XBee


Componente Quantidade Unitário (e) Total(e)
Xbee Shield 1 15,00 15,00
Rádio Xbee Series 2 1 21,00 21,00
Arduino Uno com ATMega 328 1 22,00 22,00
Valor do Frete 7,00
Valor Total em Euros 65,00
Valor Total em Reais (1 Euro = R$ 2,23) 144,95
Valor Total em Reais, com Imposto de Importação (60%) 231,92
Fonte: Elaborado pelo autor

A economia da placa Modulino, em relação à Arduino/XBee Shield, é de R$ 95,98 por


módulo sensor. Se os componentes da placa Modulino forem adquiridos localmente, o valor do
frete, de R$ 33,50 pode ser minimizado, diminuindo o valor despendido na aquisição dos mó-
dulos sensores. Deve-se destacar, porém, que a placa Modulino necessita passar pelo processo
de montagem e soldagem dos componentes em uma placa de circuito impresso, cujo valor não
está incluso no orçamento.
82

6 CONCLUSÕES E TRABALHOS FUTUROS

Os testes realizados para a medição do consumo de energia do nó sensor Modulino mos-


traram uma economia de energia significativa, em relação à solução de mercado Arduino . O
desenvolvimento dos algoritmos propostos para a alteração dinâmica do ciclo de trabalho e a
implementação desses algoritmos na placa Modulino mostram a importância da utilização do
conjunto hardware-software no desenvolvimento de uma RSSF. O algoritmo de concatenação
de dados permite que as informações dos sensores sejam identificadas no próprio módulo sen-
sor, sem aumentar a quantidade de dados trafegados pela rede. Isto permite que uma aplicação
de monitoramento possa identificar o tipo de sensor automaticamente, realizando cálculos ne-
cessários para conversão dos dados para o padrão utilizado. Em uma medição de temperatura,
por exemplo, o usuário da aplicação poderá escolher entre visualizar os resultados em graus
celsius ou fahrenheit sem precisar converter os dados enviados pelo sensor, sendo este cálculo
realizado na própria aplicação.

A implementação do algoritmo de níveis de alerta permitiu que o módulo sensor tra-


balhe com um ciclo de trabalho dinâmico, alterando o tempo de dormência de acordo com a
necessidade do sensoreamento. De acordo com a necessidade da aplicação, o módulo sensor
poderá entrar em estado de dormência por um período maior ou menor de tempo, economi-
zando energia. O algoritmo de níveis de alerta também permite que os componentes do módulo
sensor, como o rádio e o microcontrolador, tenham ciclos de trabalho diferentes. O rádio é o
componente que mais consome energia em uma RSSF e por este motivo, o algoritmo de ní-
veis de alerta liga o rádio para transmissão somente quando é necessário enviar informações ao
nó coordenador. Essa transmissão, porém, só ocorre quando existir um determinado nível de
alteração nos dados dos sensores, evitando o envio de informações redundantes.

A solução apresentada para o monitoramento de equipamentos eletrônicos é viável, do


ponto de vista técnico, tendo um tempo de resposta adequado para uma situação de furto. A
solução, porém, para ser efetiva, deve ser implementada junto com mecanismos de segurança
social, como exemplificado no trabalho de Dimkov (DIMKOV; PIETERS; HARTEL, 2010).
Por fim, o desenvolvimento do novo módulo sensor permitiu conhecer melhor a dinâmica de
funcionamento de uma RSSF e compreender como essa rede poderia ser implementada em um
campus universitário.
83

Como trabalhos futuros, propomos a implementação de uma RSSF distribuída em vá-


rios andares de um conjunto de prédios de um campus universitário. Nesse tipo de aplicação,
podem ser adicionados novos sensores, como leitores RFID para identificação de funcionários
e alunos em salas de aula, bem como trabalhar com a localização de equipamentos eletrônicos
sensoreados pela RSSF. A melhoria do processo de fabricação do novo nó sensor pode propiciar
uma redução no custo de implementação da RSSF, sendo também objeto de trabalhos futuros
o aprimoramento do placa Modulino. A segurança da comunicação de dados da rede ZigBee
é um fator importante a ser abordado futuramente. O padrão ZigBee permite a utilização de
criptografia na transmissão dados. Porém, o impacto da adoção desse tipo de criptografia (AES
de 128 bits), como a efetividade da segurança e a sobrecarga causada na rede pela adoção do
AES, não foram abordados neste trabalho.
84

REFERÊNCIAS

ADAMS, J. T. An introduction to IEEE std 802.15.4. Proceedings of IEEE Aerospace


Conference. Big Sky: IEEE, 2006.

AKASHI, A. Arduino Severino. Disponível em: <http://arduinotutorial.blogspot.com/


2008/03/arduino-s3v3rino-site-oficial.html>. Acesso em: 10 abr. 2010.

AKYILDIZ, I. F. et al. Wireless sensor networks: a survey. Computer Networks, v. 38, n. 4,


p. 393 – 422, 2002. ISSN 1389-1286.

AL-KARAKI, J. N.; KAMAL, A. E. Routing techniques in wireless sensor networks: a survey.


IEEE Wireless Communications Magazine, v. 11, n. 6, p. 6–28, Dez. 2004.

ARAUJO, R. B. de; VILLAS, L.; BOUKERCHE, A. Uma solução de QoS com processamento
centrado para redes de atuadores e sensores sem fio. In: SIMPÓSIO BRASILEIRO DE REDES
DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS, 25, 2007, Belém. XXV Simpósio
Brasileiro de Redes de Computadores e Sistemas Distribuídos. Belém: SBRC, 2007.

ARDUINO. Arduino Duemilanove.Disponível em: <http://www.arduino.cc>. Acesso em:


09 out. 2009.

ARDUINO. Arduino Similar Boards. Disponível em: <http://www.arduino.cc/


playground/Main/SimilarBoards#goArdComp>. Acesso em: 09 out. 2009.

ATMEL. Microcontrolador ATMega328. Disponível em: <http://www.atmel.com/dyn/


resources/prod_documents/doc8161.pdf>. Acesso em: 28 nov. 2010.

BAGULA, A. B. et al. On the relevance of using openwireless sensor networks in environment


monitoring. Sensors, v. 9, n. 6, p. 4845–4868, 2009. ISSN 1424-8220.

BERGMANN, N. W.; WALLACE, M.; CALIA, E. Low cost prototyping system for sensor
networks. In: INTELLIGENT SENSORS, SENSOR NETWORKS AND INTORMATION
PROCESSING INTERNATIONAL CONFERENCE, 6, 2010, Melbourne. Proceedings of
Sixth Int Intelligent Sensors, Sensor Networks and Information Processing. Melbourne:
ISSNIP, 2010. p. 19-24

BIGNELL, J.; DONOVAN, R. Eletrônica Digital - Lógica Sequencial. 3. ed. São Paulo:
Makron Books, 1995.

BOLZANI, C. A. M.; MONTAGNOLI, C.; NETTO, M. L. In: INTERNATIONAL SPREAD


SPECTRUM TECHNIQUES AND APPLICATIONS SYMPOSIUM, 9, 2006, Manaus.
Proceedings of IEEE Ninth International Spread Spectrum Techniques and Applications
Symposium. Washington: IEEE, 2006. p. 396-400.

BUTTYAN, L. et al. Application of wireless sensor networks in critical infrastructure


protection: challenges and design options. IEEE Wireless Communication, v. 17, n. 5, p.
44-49, 2010
85

CASTILHO, M. P. Projeto de Protocolos Considerando as Características não Lineares


das Baterias em Redes de Sensores Sem Fio. Dissertação (Mestrado) — Pontifícia
Universidade Católica de Minas Gerais Minas, 2009.

CHAGAS, J. et al. Sensibilidade a contexto na gestão eficiente de energia elétrica.


In: SIMPÓSIO BRASILEIRO DE REDES DE COMPUTADORES E SISTEMAS
DISTRIBUÍDOS, 28, 2010, Gramado. Anais do XXVIII Simpósio Brasileiro de Redes de
Computadores e Sistemas Distribuídos. Gramado: UFRGS, 2010. p. 145-158.

CUOMO, F. et al. Topology formation in ieee 802.15.4: Cluster-tree characterization. In:


ANNUAL IEEE INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING
AND COMMUNICATIONS, 6, 2008, Washington. Proceedings of Sixth Annual IEEE
International Conference on Pervasive Computing and Communications. Washington:
IEEE, 2008. p. 276-281.

DIGI. XBee / Xbee Pro ZB RF Modules. Disponível em: <http://ftp1.digi.com/support/


documentation/90000976_G.pdf>. Acesso em: 09 out. 2009.

DIGI. XBee 802.15.4 RF Modules. Disponível em: <http://www.digi.com/products/


wireless/point-multipoint/xbee-series1-module.jsp>. Acesso em: 09 out. 2009.

DIGI. X-CTU Configuration & Test Utility Software. Disponível em:


<http://ftp1.digi.com/support/ documentation/90001003_A.pdf>. Acesso em: 28 nov.
2010.

DIMKOV, T.; PIETERS, W.; HARTEL, P. Effectiveness of physical, social and


digital mechanisms against laptop theft in open organizations. In: INTERNATIONAL
CONFERENCE OF PHYSICAL AND SOCIAL COMPUTING; GREEN COMPUTING AND
COMMUNICATIONS. Proceedings of Physical and Social Computing, Green Computing
and Communications. Washington: IEEE/ACM, 2010. p. 727-732.

DUCATEL, K. et al. Scenarios for Ambient Intelligence in 2010. Disponível em:


<ftp://ftp.cordis.europa.eu/pub/ist/docs/istagscenarios2010.pdf>. Acesso em: 06 set. 2009.

DURAN-FAUNDEZ, C.; AGUILERA-CARRASCO, C.; NORAMBUENA, A. S.


Experimenting with rssi for the perception of moving units in intelligent flexible manufacturing
systems.. In: IEEE INTERNATIONAL INDUSTRIAL TECHNOLOGY CONFERENCE,
2010. Proceedings of IEEE International Industrial Technology Conference. Washington:
IEEE, 2010. p. 1400-1405.

EADY, F. Hands-on ZigBee - Implementing 802.15.4 with microcontrollers. Oxford:


Newnes, 2007.

FARAHANI, S. Zigbee Wireless Networks and Transceivers. Oxford: Newnes, 2008.

FUTURE TECHNOLOGY DEVICES INTERNATIONAL. FT232R


USB UART IC Datasheet Version 2.09. Disponível em:
<http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf>. Acesso
em: 22 abr. 2010.
86

GONÇALO, G.; HELENA, S. Indoor location system using zigbee technology.In:


INTERNATIONAL CONFERENCE ON SENSOR TECHNOLOGIES AND APPLICATIONS,
3, 2009, Athens. Proceedings of Third International Conference on Sensor Technologies
and Applications. Washington: IEEE, 2009. p. 152-15.

HADIM, S.; MOHAMED, N. Middleware for wireless sensor networks: A survey. In:
INTERNATIONAL CONFERENCE COMMUNICATION SYSTEM SOFTWARE AND
MIDDLEWARE, 1, 2006. Proceedings of First International Conference Communication
System Software and Middleware. Washington: IEEE, 2006. p. 1-7

HENRIQUES, F. da R.; LOVISOLO, L.; GONC, M. Algoritmos para aumentar o tempo de


vida de redes de sensores sem fio utilizando inovação. In: SIMPÓSIO BRASILEIRO DE
TELECOMUNICAÇÕES, 27, 2009, Blumenau. Anais do XXVII Simpósio Brasileiro de
Telecomunicações. Rio de Janeiro: Sociedade Brasileira de Telecomunicações, 2009.

HOELLER JUNIOR, A. S. Gerência do Consumo de Energia Dirigida pela Aplicação em


Sistemas Embarcados. Dissertação (Mestrado) — Universidade Federal de Santa Catarina -
UFSC, Florianópolis, fev. 2007.

HUANG, C.-P. Zigbee wireless network application research case study within taiwan
university campus. In: INTERNATIONAL CONFERENCE ON MACHINE LEARNING
AND CYBERNETICS, 2009, Hebei. Proceedings of International Conference on Machine
Learning and Cybernetics. Washington: IEEE, 2009

IEEE. 802.15.4 WPAN Task Group4. Disponível em: <http://www.ieee802.org/


15/pub/TG4.html>. Acesso em: 09 out. 2009.

KAASINEN, E.; TUOMISTO, T.; VALKKYNEN, P. Ambient functionality: use cases. In:
CONFERENCE ON SMART OBJECTS AND AMBIENT INTELLIGENCE. Proceedings of
the 2005 Joint Conference on Smart Objects and Ambient Intelligence. New York: ACM,
2005. ISBN 1-59593-304-2.

KAWAHARA, Y. et al. Design and implementation of a sensor network node for ubiquitous
computing environment. In: VEHICULAR TECHNOLOGY CONFERENCE. Proceedings of
58th Vehicular Technology Conference, 2003. ISSN 1090-3038.

KENSINGTON. Kensington Lock.Disponível em: <http://www.kensingtonlock.com/>.


Acesso em: 14 abr. 2010.

KOHVAKKA, M. et al. Performance analysis of IEEE 802.15.4 and zigbee for large-
scale wireless sensor network applications. In: INTERNATIONAL WORKSHOP ON
PERFORMANCE EVALUATION OF WIRELESS AD HOC, SENSOR AND UBIQUITOUS
NETWORKS. Proceedings of the 3rd ACM international workshop on Performance
evaluation of wireless ad hoc, sensor and ubiquitous networks. New York: ACM, 2006. p.
48–57.

LEE, H.-R.; MOON, I.-Y. A study on IEEE 802.15.4 based factory automation
system in wireless network. In: INTERNATIONAL CONFERENCE ON ADVANCED
COMMUNICATION TECHNOLOGY. Proceedings of 11th International Conference on
Advanced Communication Technology. Phoenix Park, Coréia do Sul: IEEE, 2009. v. 01, p.
851–854.
87

LIBELIUM. SquidBee Sensor Node.Disponível em: <http://www.squidbee.org>. Acesso:


em 10 set. 2009.

LIBELIUM. Arduino Xbee Shield. Disponível em: <http://arduino.cc/en/Main/


ArduinoXbeeShield>. Acesso em: 19 fev. 2010.

LIBELIUM. SquidBee and SquidBee Gateway Tutorial. Disponível em:


<http://www.cooking-hacks.com/index.php/documentation/tutorials/squidbee-gateway>.
Acesso em: 06 jun. 2011.

LIN, S.; LIU, J.; FANG, Y. Zigbee based wireless sensor networks and its applications in
industrial. In: INTERNATIONAL CONFERENCE ON AUTOMATION AND LOGISTICS.
Proceedings of 2007 IEEE International Conference on Automation and Logistics. [S.l.:
s.n.], 2007. p. 1979–1983.

LOUSADA, E. E. de O. Ciclo de Trabalho Dinâmico em uma Rede para Medição de


Energia Elétrica. Dissertação (Mestrado) — Pontifícia Universidade Católica de Minas Gerais
Minas, 2009.

MASRI, W.; MAMMERI, Z. Middleware for wireless sensor networks: Approaches,


challenges, and projects. In: INTERNATIONAL CONFERENCE IN SIGNAL PROCESSING
AND COMMUNICATIONS. Proceedings of 6th IEEE International Conference in Signal
Processing and Communications. Cingapura: IEEE, 2007. p. 1399–1402.

MINI, R. A. d. F.; LOUREIRO, A. A. F. Energy in wireless sensor networks. In: RODRIGUES,


L. E.; MIRANDA, H.; GARBINATO, B. (Ed.). Middleware for Network Eccentric and
Mobile Applications. Berlin: Springer, 2008. cap. 1.

MITSUBISH. Mitsubish XL5900 Colorview Projector. Disponível em:


<http://www.projektoren-datenbank.com/pdf/presse/mitsubishixl5900-press-en.pdf>.
Acesso em: 14 abr. 2011.

MOTOROLA. LM358D Dual Low Power Operational Amplifiers. Disponível em:


<http://www.datasheetcatalog.org/datasheets/166/49945_DS.pdf>. Acesso: em 22 abr. 2010.

MOTOROLA. MC33269 Voltage Regulator. Disponível em:


<http://www.datasheetcatalog.org/ datasheet/motorola/MC33269D-5.0.pdf>. Acesso
em: 22 abr. 2010.

PARK, S.; SAVVIDES, A.; SRIVASTAVA, M. Battery capacity measurement and analysis
using lithium coin cell battery. In: INTERNATIONAL SYMPOSIUM ON LOW POWER
ELECTRONICS AND DESIGN. Proceedings of the 2001 International Symposium on
Low Power Electronics and Design. New York: ACM, 2001. ISBN 1-58113-371-5.

SARIJARI, M. A. B. et al. Wireless home security and automation system utilizing


zigbee based multi-hop communication. In: TELECOMMUNICATION TECHNOLOGIES
CONFERENCE. Proceedings of 2008 Telecommunication Technologies Conference.
Putrajaya: IEEE, 2008. p. 242–245.

SECUREIT. Sonic Shock. Disponível em: <http://www.secure-it.com/shop/download/


sales_sheet/sonic_Secure-It.pdf>. Acesso em: 04 abr. 2010.
88

SOTTILE, F. et al. Design, deployment and performance of a complete real-time zigbee


localization system. In: WIRELESS DAYS. Proceedings of 1st IFIP Wireless Days WD’08.
Dubai: IFIP/IEEE, 2008. p. 1–5.

SUN, J. et al. Research on routing protocols based on zigbee network. In: INTERNATIONAL
CONFERENCE ON INTELLIGENT INFORMATION HIDING AND MULTIMEDIA
SIGNAL PROCESSING. Proceedings of Third International Conference on Intelligent
Information Hiding and Multimedia Signal Processing IIHMSP 2007. Kaohsiung:IEEE,
2007. v. 1, p. 639–642.

WEISER, M. The computer for the 21st century. Scientific American, v. 265, n. 3, p.
94–104, 1991.

YARZA, M.; GASCON, D. How to Save Energy in the WSN Sleeping the Motes. Disponível
em: <http://www.sensor-networks.org>. Acesso em: 03 set. 2008.

YUSSOFF, Y. et al. Development of a pic-based wireless sensor node utilizing xbee technology.
In: INTERNATIONAL INFORMATION MANAGEMENT AND ENGINEERING
CONFERENCE. Proceedings of 2nd IEEE International Information Management and
Engineering Conference. Chengdu, China: IEEE, 2010. p. 116–120.

ZIGBEE ALLIANCE. ZigBee Wireless Networks. Disponível em:


<http://www.zigbee.org/>. Acesso em: 09 out. 2009.

ZUCATTO, F. L. et al. Zigbee for building control wireless sensor networks. In:
INTERNATIONAL MICROWAVE AND OPTOELECTRONICS CONFERENCE.
Proceedings of SBMO/IEEE MTT-S International Microwave and Optoelectronics
Conference IMOC 2007. Salvador: IEEE, 2007. p. 511–515.
89

APÊNDICE A -- CONFIGURAÇÃO DO RÁDIO XBEE

Neste apêndice, são apresentados os principais parâmetros de configuração do rádio


XBee utilizados como referência neste trabalho para o desenvolvimento da aplicação de mo-
nitoramento. A tabela 7 apresenta os códigos utilizados para identificar o tipo do quadro de
dados recebido ou enviado pelo rádio XBee. Na tabela 8 são apresentados os comandos para
endereçamento do rádio XBee. Na tabela 9 são mostrados os comandos de rede e de interface
de rádio frequência. E, na tabela 10 os comandos para comunicação com a interface serial.

Tabela 7: Quadros e Identificadores da API


Nome do Quadro API API ID
AT Command 0x08
AT Command - Queue Parameter Value 0x09
ZigBee Transmit Request 0x10
Explicit Addressing ZigBee Command Frame 0x11
Remote Command Request 0x17
Create Source Route 0x21
AT Command Response 0x88
Modem Status 0x8A
ZigBee Transmit Status 0x8B
ZigBee Receive Packet (AO=0) 0x90
ZigBee Explicit Rx Indicator (AO=1) 0x91
ZigBee IO Data Sample Rx Indicator 0x92
XBee Sensor Read Indicator (AO=0) 0x94
Node Identification Indicator (AO=0) 0x95
Remote Command Response 0x97
Over-the-Air Firmware Update Status 0xA0
Route Record Indicator 0xA1
Many-to-One Route Request Indicator 0xA3
Fonte: Digi (2009a)
90

Tabela 8: Rádio XBee - Comandos de Endereçamento


Comando Nome e Descrição Valor Padrão
DH Destination Address High: define os 32 bits mais significa- 0xFFFFFFFF
tivos do endereço de 64 bits do nó de destino da transmissão
de dados. Pode ser utilizado como leitura do endereço ou
escrita.
DL Destination Address Low: define os 32 bits menos signifi- 0xFFFFFFFF
cativos do endereço de 64 bits do nó de destino da transmis-
são de dados. Pode ser utilizado como leitura do endereço
ou escrita.
MY 16 bit Network Address: leitura do endereço de 16 bits do 0xFFFF
nó. Caso seja lido o valor 0xFFFE, o nó não está partici-
pando de uma rede ZigBee.
MP 16 bit Parent Network Address: leitura do endereço de 16 0xFFFF
bits do nó pai de um nó end device. Caso seja lido o valor
0xFFFE, o nó não está conectado a um nó pai.
NC Number of Remaining Children: leitura do número de nós 0 - Máximo
que podem se associar a um nó coordenador ou roteador.
Se o valor retornado for 0, o dispositivo não permite mais
associação de nenhum nó a ele.
SH Serial Number High: fornece os 32 bits mais significati- 0xFFFFFFFF
vos do endereço único de 64 bits do nó. Pode ser utilizado
somente como leitura do endereço.
SL Serial Number Low: fornece os 32 bits menos significati- 0xFFFFFFFF
vos do endereço único de 64 bits do nó. Pode ser utilizado
somente como leitura do endereço.
NI Node Identifier: armazena um identificador ASCII com o String de 20
nome do nó e é retornado como parte do comando ND Bytes
(Node Discover) e utilizado pelo comando DN (Destination
Node)
Fonte: Digi (2009a)

Tabela 9: Rádio XBee - Comandos de Rede e de Interface RF


Comando Nome e Descrição Valor Padrão
CH Operating Channel: leitura do canal de comunicação uti- 0xB - 0x1A
lizado para transmitir e receber dados. O valor 0 neste co-
mando significa que o nó não está participando de uma rede.
Utiliza os números de canal do protocolo IEEE 802.15.4
ID PAN ID: define o endereçamento de 64 bits da identificação 0xFFFFFFFF
da rede pessoal (PAN). Se o coordenador estiver configu- FFFFFFFF
rado com o valor 0, ele irá escolher aleatoriamente um PAN
ID.
PL Power Level: grava/lê a configuração da sensibilidade da 0-4
antena, variando de 0 (-8dBm) a 4 (+2bDm).
DB Received Signal Strenght: leitura da intensidade do sinal 01A a 0x5C
do último pacote de dados RF (RSSI), com valores medidos
em -dBm.
Fonte: Digi (2009a)
91

Tabela 10: Rádio XBee - Comandos de Interface Serial, E/S, Dormência e Execução

Comando Nome e Descrição Valor Padrão


AP API Enable: ativa o modo API normal ou com caracteres 1-2
de controle (escape).
BD Interface Data Rate: configuração da velocidade da inter- 0a7
face serial, com velocidades entre 1200 bps e 115200 bps.
NB Serial Parity: ativa o controle de paridade (0 - sem, 1 - par, 0-3
2 - impar, 3 - marca).
SB Stop Bits: configura os bits de parada (0 - 1 stop bit ou 1 - 0a1
2 stop bits).
%V Supply Voltage: lê o nível de tensão no pino VCC do mó- -0x a 0xFFFF
dulo XBee. O valor lido deve ser multiplicado por 1200 e
dividido em seguida por 1024 para se obter o valor em mi-
livolts.
SM Sleep Mode: configuração do modo de dormência do Rá- 0 - Roteador
dio XBee. Pode ser 0 - dormência desabilitada (somente 4 - End De-
para coordenador e roteador), 1 - modo Pin Sleep, 4 - modo vice
Cyclic Sleep e 5 - modo Cyclic Sleep com Pin Sleep.
DN Node Discover: retorna informações sobre todos os nós en- -
contrados na rede, com os parâmetros MY, SH, SL, NI e
tipo do nó (rotador, coordenador e end device).
DN Destination Node: retorna o endereço único de 64 bits String de 20
quando informado o valor NI de um determinado nó. Bytes
Fonte: Digi (2009a)
92

APÊNDICE B -- CÁLCULO DO DUTY CYCLE

O microcontrolador ATMega 328 e o rádio XBee são interligados através de comunica-


ção serial. Este apêndice apresenta os resultados de um experimento para poder se conhecer o
ciclo de trabalho (duty cycle) do módulo sensor e a influência da velocidade de comunicação
entre o microcontrolador e o rádio no duty cycle. O experimento realizado também permite
conhecer quanto tempo o nó sensor leva para realizar a atividade de sensoreamento, entre sair
do modo de hibernação, ler os dados dos sensores, ligar o rádio, enviar a informação, desligar o
rádio e voltar à hibernação.

O cálculo do duty cycle (DC) é dado pelo tempo em que o módulo está ativo (τ) dividido
pelo tempo total do ciclo de vida (T), que é composto pela duração do tempo em que o módulo
está ativo somado à duração do tempo em que o módulo está em estado dormência, como pode
ser visto na fórmula 1. O microcontrolador pode trabalhar com taxas de transmissão entre
1200 bps e 115200 bps, mas aumentar essa taxa aumenta a quantidade de erros de transmissão
e em contrapartida, diminuir a taxa de transmissão aumenta o tempo que o nó sensor deve ficar
ativo, e, consequentemente, aumenta o consumo de energia da rede.

τ
DC = × 100% (1)
T
Inicialmente, foi realizado um experimento para medir o tempo que o módulo sensor
leva para sair do modo de hibernação, ler as portas do microcontrolador, verificar se ocorreu
alteração no nível de tensão da bateria, enviar o pacote de dados e voltar ao modo de hibernação.
Os resultados, vistos na figura 1, retratam que o aumento da taxa de transmissão diminui o
tempo de atividade do módulo sensor. A velocidade escolhida para a comunicação entre o
microcontrolador e o rádio de comunicação nos testes subsequentes foi de 57600 bps, o que
significa um aumento de 20,86% em relação à velocidade configurada por padrão nos rádios
XBee de 9600 bps. Quando configurado a 115200 bps ocorreram alguns erros de transmissão
de dados, motivo pelo qual essa velocidade não foi utilizada.

O duty cycle é variável, de acordo com a variação na medição dos sensores. Conforme
a velocidade de transmissão, o tempo de atividade τ do módulo varia, variando consequente-
mente o duty cycle. Na tabela 11 são mostrados os resultados da relação entre a velocidade de
93

Figura 1: Tempo de atividade (τ) do Módulo Sensor × Taxa de Transmissão

Fonte: Elaborado pelo autor

transmissão entre microcontrolador e rádio XBee que impacta no tempo de atividade τ do nó


sensor e sua influência na variação do duty cycle.

Tabela 11: Velocidade × Duty cycle variável

Nível de Alerta (segundos)


Velocidade (bps) τ (ms)
2 (%) 4 (%) 8 (%) 24 (%)
9600 193,37 8,82 4,61 2,36 0,80
19200 171,92 7,92 4,12 2,10 0,71
38400 163,48 7,56 3,93 2,00 0,68
57600 159,99 7,41 3,85 1,96 0,66
115200 156,52 7,26 3,77 1,92 0,65
Fonte: Elaborado pelo autor

Com a taxa de transmissão entre o rádio e o microcontrolador configurada para 57600 bps,
o nó sensor demora 159, 99 ms para sair do estado de hibernação, ler os dados dos sensores, pro-
cessar as informações capturadas, ligar o rádio XBee, enviar as informações, desligar o rádio
XBee e voltar à hibernação. Quando o nó sensor está configurado para permanecer em hiber-
nação por 2 segundos, o duty cycle é de 7,41%. Para 4 segundos, 3,85%, configurado em 8
segundos, 1,96% e na configuração de 24 segundos de hibernação, o duty cycle é de 0,65%.
94

APÊNDICE C -- MAPEAMENTO DAS PORTAS DO ARDUINO PARA O


MICROCONTROLADOR ATMEGA 328

Para poder desenvolver placa Modulino, foi necessário realizar um mapeamento das
portas do Arduino, onde a aplicação para controle do nó sensor foi desenvolvida, para os pinos
do microcontrolador ATMega328, devido ao endereçamento das portas utilizado pelo algoritmo
dos nós sensores. O mapeamento inclui a porta utilizada no Arduino, o pino utilizado no micro-
controlador ATMega 328 e a função nele desempenhada, como pode ser observado na tabela
12.

Tabela 12: Mapeamento das Portas do Arduino para os Pinos do ATMega 328
Porta do Arduino Pino do ATMega 328 Função no ATMega 328
Porta Digital 0 / RX Pino 2 PD0 / RXD
Porta Digital 1 / TX Pino 3 PD1 / TXD
Porta Digital 2 / INT0 Pino 4 PD2 / INT0
Porta Digital 3 / INT1 Pino 5 PD3 / INT1
Porta Digital 4 Pino 6 PD4
Porta Digital 5 Pino 11 PD5
Porta Digital 6 Pino 12 PD6
Porta Digital 7 Pino 13 PD7
Porta Digital 8 Pino 14 PB0
Porta Digital 9 Pino 15 PB1
Porta Digital 10 Pino 16 PB2
Porta Digital 11 Pino 17 PB3
Porta Digital 12 Pino 18 PB4
Porta Digital 13 Pino 19 PB5
Porta Analógica 0 Pino 23 PC0
Porta Analógica 1 Pino 24 PC1
Porta Analógica 2 Pino 25 PC2
Porta Analógica 3 Pino 26 PC3
Porta Analógica 4 Pino 27 PC4
Porta Analógica 5 Pino 28 PC5
Fonte: Elaborado pelo autor
95

APÊNDICE D -- RELATO: ASPECTOS POSITIVOS E NEGATIVOS DO


DESENVOLVIMENTO DA RSSF

O desenvolvimento de uma RSSF para monitoramento de equipamentos eletrônicos pa-


recia, inicialmente, uma tarefa simples. Dentre as soluções de mercado existentes para RSSF,
os módulos XBee são simples de implementar e trabalhar, que, em conjunto com a plataforma
de prototipagem rápida Arduino, permitiram o desenvolvimento relativamente rápido da solu-
ção proposta. Tanto o rádio XBee quanto o Arduino são os componentes do módulo SquidBee,
a solução de mercado adquirida para realizar o monitoramento de ambientes e equipamentos
eletrônicos.

Para montar os nós sensores, foi necessária a aquisição de equipamentos de um labora-


tório de eletrônica, como multímetros, estação de solda, fonte de alimentação chaveada, solda,
protoboard e ferramentas como alicates, chaves de fenda e chaves philips. O ambiente de mo-
nitoramento também precisou ser adaptado, com a colocação de caixas protetoras para os nós
roteadores, desenvolvidos gentilmente pela equipe de manutenção e infraestrutura da PUC Mi-
nas.

A montagem dos nós sensores, a configuração dos rádios XBee e a programação do mi-
crocontrolador, para os experimentos iniciais, foi extremamente fácil, do ponto de vista técnico.
Porém, ao realizar os primeiros experimentos, foi constatado que o nó coordenador recebia as
informações em uma ordem pré-determinada pelo fabricante e, nessa informação, não constava
qual o nó que estava enviando os dados sensoreados.

Para o tratamento das informações recebidas, era importante ter o conhecimento do


nó sensor que envia a informação. A ordem dos dados enviados, apesar de fixa, dificultava o
tratamento dos dados. Caso um sensor não enviasse uma determinada informação e não enviasse
dados, o nó coordenador não teria como saber se o dado enviado era de um sensor específico
ou do sensor subsequente. Por este motivo, era preciso identificar qual o tipo do sensor que
enviava a informação. Esse problema foi solucionado com o desenvolvimento do algoritmo de
concatenação de dados, que permite transmitir, em dois bytes, os valores lidos pelos sensores e
o tipo do sensor que enviava a informação.

Os experimentos mostraram que a RSSF era capaz de monitorar um equipamento eletrô-


nicos, com a montagem de um nó sensor com sensores de presença e de movimento. Esses dois
96

sensores permitiram ao nó sensor detectar a presença de indivíduos em um ambiente e também


detectar qualquer movimentação do equipamento eletrônico monitorado. Em conjunto com o
nó sensor para monitoramento do equipamento eletrônicos, foram adicionados outros nós na
rede, com sensores de umidade, temperatura e luminosidade.

Um problema detectado na solução de mercado adquirida era a quantidade de dados


enviados. Os nós sensores sempre enviavam a mesma quantidade de informações. Mesmo que
um sensor de temperatura sempre estivesse lendo os mesmos valores, esses valores eram envia-
dos ao nó coordenador, causando o envio de informações repetidas. A identificação do tipo do
sensor que capturava as informações do ambiente permitiram o desenvolvimento do algoritmo
de níveis de alerta. Com esse algoritmo, o nó sensor poderia enviar apenas as informações que
sofreram uma quantidade pré-determinada de alterações. Dependendo do tipo da aplicação de
monitoramento, uma variação de 3% na umidade de um ambiente pode não ser significativa,
fazendo com que o nó sensor enviasse apenas informações caso o valor lido ultrapassasse esse
limite de 3%.

Os experimentos para verificar o tempo de vida da solução proposta foram decepcionan-


tes. Foi verificado que o nó sensor, quando da utilização de baterias, não conseguiria ficar ativo
mais do que 29 horas. Esse tempo inviabiliza a aplicação de monitoramento, uma vez que, caso
o nó sensor fique sem alimentação de energia mais do que 29 horas, ele não consegue realizar a
função de coibir o furto do equipamento eletrônico.

Devido a este problema, foi necessário estudar os diagramas esquemáticos das placas
Arduino e XBee Shield, onde foi constatado que alguns componentes dessas placas consumiam
energia desnecessariamente e que, se retirados, não causariam nenhum impacto no nó sensor.
Foram adquiridos componentes para a montagem de um novo nó sensor, com o nome de Mo-
dulino, adaptando o Arduino às necessidades da aplicação de monitoramento de equipamentos
eletrônicos. O nó sensor Modulino permitiu atender aos requisitos da RSSF proposta, que, em
conjunto com os algoritmos propostos, permitiu o aumento do tempo de vida da rede em mais
de 500% em relação ao Arduino. Foi possível reduzir a quantidade de dados transmitidos pela
rede e também diminuir o custo de um nó sensor.

O projeto e implantação da RSSF proposta foi uma atividade multidisciplinar. Os en-


volvidos tiveram que projetar a aplicação front-end para receber, tratar e apresentar os dados
recebidos (em C#), desenvolver os algoritmos dos nós sensores (em C) implementados como
middleware, estudar as especificações de fabricante (datasheets) de componentes eletrônicos
como sensores, circuitos integrados, reguladores de tensão, do microcontrolador ATMega 328 e
do rádio XBee. Também foi necessário estudar o funcionamento dos quadros de dados do rádio
XBee, para que a aplicação de monitoramento reconhecesse as informações recebidas. Também
foi necessário o conhecimento técnico de hardware, para projetar o diagrama esquemático do
Modulino na aplicação Eagle, para montar e soldar os protótipos.
97

Abaixo estão elencados os principais pontos positivos e negativos observados no desen-


volvimento deste trabalho:

Pontos Positivos

a) Apoio da PUC Minas

b) Montagem do laboratório de eletrônica, que pode ser utilizado em outros projetos

c) Desenvolvimento de um novo nó sensor dentro da PUC Minas, mostrando a viabilidade de


montar um nó sensor nacional com um custo menor do que o similar importado

d) Auxílio de um aluno de iniciação científica do PROBIC, permitindo compartilhar os conhe-


cimentos adquiridos

Pontos Negativos

a) Dificuldade em encontrar componentes eletrônicos necessários para o Modulino, em Belo


Horizonte

b) Custo das soluções em RSSF disponíveis no mercado

c) A multidisciplinaridade do projeto tornou difícil o desenvolvimento da RSSF, com uma


equipe pequena (orientadora, mestrando e bolsista)

d) Falta de laboratório para confecção de placas de circuito impresso durante o desenvolvimento


do Modulino
98

ANEXO A -- DIAGRAMA ESQUEMÁTICO DO ARDUINO

Figura 1: Diagrama Esquemático da placa Arduino

Fonte: Arduino (2009a)


99

ANEXO B -- DIAGRAMA ESQUEMÁTICO DO XBEE SHIELD

Figura 1: Diagrama Esquemático da placa XBee Shield

Fonte: Arduino (2009a)


100

ANEXO C -- ARQUITETURA DO MICROCONTROLADOR ATMEGA 328

Figura 1: Diagrama da UCP / ULA do Microcontrolador ATMega 328

Fonte: Atmel (2010)


101

Figura 2: Diagrama em Blocos do Microcontrolador ATMega 328

Fonte: Atmel (2010)