O documento descreve a plataforma Radiuino, que permite a criação de redes sem fio de sensores utilizando Arduino e módulos de rádio. A plataforma é open source e fornece hardware, firmware e software para facilitar o desenvolvimento de aplicações de Internet das Coisas.
2. www.radiuino.cc
Internet of Things
Radiuino – All Rights Reserved 2011
3. www.radiuino.cc
O que significa IoT?
Fonte: http://blogs.cisco.com/news/the-internet-of-things-infographic/ (Cisco)
3
Radiuino – All Rights Reserved 2011
4. Mas, o que é uma Rede de
www.radiuino.cc
Sensores Sem Fio?
“(...) consiste de sensores autônomos
espacialmente distribuídos para monitorar
condições físicas ou ambientais (...) e
cooperativamente transmitir os dados da
rede para um local principal.”
Wikipedia
Radiuino – All Rights Reserved 2011
5. www.radiuino.cc
Arquitetura Básica
• Vários sensores
• Dados escoam para um gateway
• Novos paradigmas de comunicação
Radiuino – All Rights Reserved 2011
6. www.radiuino.cc
O que é um sensor?
Radiuino – All Rights Reserved 2011
7. www.radiuino.cc
Nem tudo são flores...
• Problemas na utilização de kits de
comunicação utilizando RF para Redes de
Sensores
– Pouca flexibilidade
– Desempenho fraco
– Alto custo
• Falta de controle de funcionamento da rede
– Gerência de rede por conta do fabricante
• Pouca possibilidade de expansão das
plataformas antigas
7
Radiuino – All Rights Reserved 2011
8. IDEs de Arrepiar!
www.radiuino.cc
8
Radiuino – All Rights Reserved 2011
9. www.radiuino.cc
Então faça-se o Radiuino
• Plataforma Open Source para RSSF
• Hospedada no Sourceforge.net
– http://www.sourceforge.net/p/radiuino
• Em busca de colaboradores para
– Manutenção da plataforma
– Inclusão de novas features
• Acesse: www.radiuino.cc
9
Radiuino – All Rights Reserved 2011
10. Objetivos da Plataforma
www.radiuino.cc
Radiuino
Facilidade de implementação
Arquitetura robusta
Hardware de baixo custo
Customização de hardware
Firmware estruturado
Integração com a Internet
10
Radiuino – All Rights Reserved 2011
11. www.radiuino.cc
Sobre a plataforma
• Utiliza o mesmo IDE do Arduino;
• Desenvolvimento de firmware específico para atender as
necessidades de rede de sensores;
• Criação de bibliotecas específicas;
• A proposta é facilidade de utilização para formação de
rede de sensores;
• Distribuição de firmware por aplicação
• Na versão disponível a camada física utiliza o CC1101
• Capacidade de implementar as funções da pilha de
protocolo para investigação e ensino
11
Radiuino – All Rights Reserved 2011
12. www.radiuino.cc
Diagrama em Blocos
• Configuração básica
– Computador, mas pode ser Web também
– Uma base conectada via USB a um computador ou Ethernet para
ligar em rede
– Um sensor:
• Transceptor
• Microcontrolador
• Transdutores
• Atuadores
• Bateria
Request
Sensor Answer Base USB
Computador
12
Radiuino – All Rights Reserved 2011
13. www.radiuino.cc
Divisão da plataforma
• Padronizado e de baixo
Hardware custo
• Estruturação de pilha de
Firmware protocolos
• Integração de
Software plataforma
Radiuino – All Rights Reserved 2011
14. www.radiuino.cc
Arduino e redes sem fio
• Hardwares que englobam apenas a parte de
Rádio
• Hardwares que incluem o Rádio e o
microcontrolador
Chinês Feito no Brasil
Radiuino – All Rights Reserved 2011
15. www.radiuino.cc
BE900
• Módulo desenvolvido para ser compatível com a
plataforma Arduino
• Opção de utilizar conector SMA para ligar antena
externa
• Baixo custo e possibilita desenvolvimento de
Microcontrolador aplicações
• Atmega368 (8 bits, 8 MHZ) • Fabricante: www.radioit.com.br
• 32k Flash • Atende especificações para certificação pela
• 512 EEPROM
• 1k RAM ANATEL
Transceptor • Pino compatível TX/RX e alimentação com XBee
• CC1101
• 915MHz
• Potência TX 10dBm
• Excelente Sensibilidade
• Diferentes Modulações
• Mudança da Taxa
15
Radiuino – All Rights Reserved 2011
16. www.radiuino.cc
Hardware
• Hardware:
– Microcontroladores AVR Atmel
– Circuito de RF CC1101 Texas Instruments
– Placas de adaptação e kits de desenvolvimento
Sensor e Base do início do projeto
Radiuino – All Rights Reserved 2011
17. www.radiuino.cc
Placas de Aplicação
• Para exemplificar a utilização da plataforma foi desenvolvida
uma aplicação com os seguintes elementos no sensor:
– Um relé
– Um LDR
– Um Led
– Um transdutor de temperatura
17
Radiuino – All Rights Reserved 2011
18. www.radiuino.cc
“Tecniquês”
Funções ligadas ao desenvolvimento das aplicações
APP diretamente, como medidas de grandezas e controle de
processos.
Funções de controle da comunicação como ACK,
TRANSP
contagem de pacotes, disciplina de transmissão.
Identificação do sensor e rede contemplando funções
NET
para tratamento de roteamento de pacotes na rede.
Funções para controlar os processos de recepção e
MAC
principalmente transmissão. Política de economia de
(Enlace)
energia.
Funções relacionadas com a parte de rádio como:
PHY potência, canal. Possível evoluir para alterar outras
características do rádio.
18
Radiuino – All Rights Reserved 2011
19. www.radiuino.cc
Pilha Radiuino
Radiuino
CC1101 ou outra interface rádio
19
Radiuino – All Rights Reserved 2011
20. www.radiuino.cc
Mapa do Pacote
• Frame com 52 bytes
– Phy – 4 bytes
– MAC – 4 bytes
– Net – 4 bytes
– Transporte – 4 bytes
– Seis AD com 3 bytes cada um
– Seis I/O com 3 bytes cada um
Phy MAC Net Transp
RSSI_DLIN RSSI_ULIN LQI_UPLIN
K LQI_DLINK K K TBD TBD TBD TBD DST_ID DST_NID SRC_ID SRC_NID COUNT TBD TBD TBD
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
AD0 AD1 AD2 AD3 AD4 AD5
AD0_W AD0_H AD0_L AD1_W AD1_H AD1_L AD2_W AD2_H AD2_L AD3_W AD3_H AD3_L AD4_W AD4_H AD4_L AD5_W AD5_H AD5_L
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
IO0 IO1 IO2 IO3 IO4 IO5
IO0_W IO0_H IO0_L IO1_W IO1_H IO1_L IO2_W IO2_H IO2_L IO3_W IO3_H IO3_L IO4_W IO4_H IO4_L IO5_W IO5_H IO5_L
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
20
Radiuino – All Rights Reserved 2011
21. www.radiuino.cc
Desenvolvimento de Projeto
• Pense primeiro na aplicação
• Projeto do hardware
• Projeto do firmware
• Desenvolvimento do Software
21
Radiuino – All Rights Reserved 2011
22. www.radiuino.cc
Pacote
• O Headers.h define a
composição do pacote
• O pacote tem 52 bytes
sendo composto das
seguintes partes:
– Física
– MAC
– Rede
– Transporte
– Aplicação
• AD
• IO
22
Radiuino – All Rights Reserved 2011
23. www.radiuino.cc
Código da Base
• Abrir o arduino e dentro do Arduino abrir o código da base;
• Vão existir as seguintes abas
– Radiuino_Base
– Headers.h
– _1_Phy
– _2_MAC
– _3_Net
• No IDE (Integrated Development Environment) do Arduino vai ficar
como abaixo.
23
Radiuino – All Rights Reserved 2011
24. www.radiuino.cc
Base
• A base possui somente três camadas uma vez que não se espera que seja
feita nenhuma aplicação na base;
• Sua função é fazer a ligação dos dados da interface USB ligada no
computador com o sensor e vice versa;
• Os parâmetros a serem ajustados na base:
– Camada Phy
• Potência
• Canal
– Camada MAC
• Nenhum parâmetro específica para esta versão, já é default ponto multi ponto
– Camada Net
• Endereço da base
– Conexão USB
• Taxa da serial
24
Radiuino – All Rights Reserved 2011
25. www.radiuino.cc
Parâmetros da Phy da base
25
Radiuino – All Rights Reserved 2011
26. www.radiuino.cc
MAC da Base
• A base não possui nenhuma
função adicional na MAC
• Na versão inicial do Radiuino
não está previsto que a base
tenha autonomia quanto a
comunicação com o sensor
• Observar as funções previstas
em cada camada:
– Construtor que instancio objeto
– Inicialização
– Envio
– Recebimento
26
Radiuino – All Rights Reserved 2011
27. www.radiuino.cc
Camada Net
• Endereço da base é a única informação da
camada Net nesta versão 1.1
27
Radiuino – All Rights Reserved 2011
28. www.radiuino.cc
Código do Sensor
• No sensor são implementadas as 5 camadas
– Phy
• Potência
• Canal
– MAC
• Nenhum parâmetro de ajuste nesta versão
– Net
• Endereço do sensor
– Transporte
• Contador de pacotes
– Aplicação
• Acionamento de relés e medidas de temperatura e luminosidade
28
Radiuino – All Rights Reserved 2011
30. Firmware da Aplicação no
www.radiuino.cc
Sensor
• Definição dos pinos
da mesma forma
como é feito no
Arduino
• Definição da função
dos pinos
30
Radiuino – All Rights Reserved 2011
31. www.radiuino.cc
Acionar LED e Relé
• Observar a facilidade de ligar ou desligar o led ou o relé
• O código é bastante simples bastando avaliar a posição do IO
desejado se está 1 para ligar e 0 para desligar.
31
Radiuino – All Rights Reserved 2011
32. www.radiuino.cc
Leitura do AD e Transmissão
• Leitura do AD é feita da mesma forma que no Arduino
• São 3 bytes: o primeiro é o tipo do sensor e outros dois o valor em dois
bytes
• Para transmitir o pacote
32
Radiuino – All Rights Reserved 2011