palestra plataforma radiuino #tdc2012 floripa

46
RF + Arduino Omar Ferroni Branquinho @omarfb [email protected] omarfb.wordpress.com.br

Upload: omar-branquinho

Post on 07-Jul-2015

481 views

Category:

Technology


1 download

DESCRIPTION

Minha palestra no #TDC2012 da Globalcode em Floripa está aqui! Enjoy!

TRANSCRIPT

Page 1: Palestra Plataforma Radiuino #TDC2012 Floripa

RF + Arduino

Omar Ferroni Branquinho @omarfb

[email protected]

omarfb.wordpress.com.br

Page 2: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Internet of Things

Page 4: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

Mas, o que é uma Rede de 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

Page 5: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Arquitetura Básica

• Vários sensores

• Dados escoam para um gateway

• Novos paradigmas de comunicação

Page 6: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc O que é um sensor?

Page 7: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 8: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

8

IDEs de Arrepiar!

Page 9: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 10: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

10

Objetivos da Plataforma Radiuino

Facilidade de implementação

Arquitetura robusta

Hardware de baixo custo

Customização de hardware

Firmware estruturado

Integração com a Internet

Page 11: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 12: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Diagrama em Blocos

12

Sensor Base Computador USB

• 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

Answer

Page 13: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Divisão da plataforma

• Padronizado e de baixo custo Hardware

• Estruturação de pilha de protocolos Firmware

• Integração de plataforma Software

Page 14: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 15: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc BE900

15

• 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 aplicações

• Fabricante: www.radioit.com.br

• Atende especificações para certificação pela ANATEL

• Pino compatível TX/RX e alimentação com XBee

Microcontrolador

• Atmega368 (8 bits, 8 MHZ)

• 32k Flash

• 512 EEPROM

• 1k RAM

Transceptor

• CC1101

• 915MHz

• Potência TX 10dBm

• Excelente Sensibilidade

• Diferentes Modulações

• Mudança da Taxa

Page 16: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 17: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 18: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc “Tecniquês”

18

PHY

MAC (Enlace)

NET

TRANSP

APP Funções ligadas ao desenvolvimento das aplicações diretamente, como medidas de grandezas e controle de processos.

Funções de controle da comunicação como ACK, contagem de pacotes, disciplina de transmissão.

Identificação do sensor e rede contemplando funções para tratamento de roteamento de pacotes na rede.

Funções para controlar os processos de recepção e principalmente transmissão. Política de economia de energia.

Funções relacionadas com a parte de rádio como: potência, canal. Possível evoluir para alterar outras características do rádio.

Page 19: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Pilha Radiuino

19

Radiuino

CC1101 ou outra interface rádio

Page 20: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Mapa do Pacote

20

• 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_DLINK LQI_DLINK

RSSI_ULINK

LQI_UPLINK 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

Page 21: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Desenvolvimento de Projeto

• Pense primeiro na aplicação

• Projeto do hardware

• Projeto do firmware

• Desenvolvimento do Software

21

Page 22: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 23: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 24: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 25: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Parâmetros da Phy da base

25

Page 26: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 27: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Camada Net

• Endereço da base é a única informação da camada Net nesta versão 1.1

27

Page 28: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 29: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Pinagem Arduino x RFBee

Correspondência dos Pinos Arduino e RFBee

Função Pino Arduino BE900 Número do Pino BE900

ADC

AD0_PIN 0 PC0 15

AD1_PIN 1 PC1 13

AD2_PIN 2 PC2 12

AD3_PIN 3 PC3 11

AD4_PIN 4 PC4 20

AD5_PIN 5 PC5 19

IO

IO0_PIN 4 PD4 4

IO1_PIN 5 PD5 17

IO2_PIN 6 PD6 18

IO3_PIN 7 PD7 8

IO4_PIN 8 PB0 7

IO5_PIN 9 PB1 6

Serial TX 1DIO TX 2

RX 0DIO RX 3

29

Page 30: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

Firmware da Aplicação no Sensor

• Definição dos pinos da mesma forma como é feito no Arduino

• Definição da função dos pinos

30

Page 31: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 32: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

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

Page 33: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Software

• Docklight

• Python – Requisição

– Controle e requisição

• Java customizado

• C# (Novo!!!)

• ScadaBR

• HTTP

• SNMP

Page 34: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Pacote montado no Docklight

34

ID Sensor

Liga Relé Liga Led

Page 35: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Python

35

Page 36: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Acionar Relé e Led

36

Page 37: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Temperatura e Luminosidade

37

Page 38: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Conheça!

38

Page 39: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Colabore!

39

Page 40: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Aplicação C#

40

Versão BETA ;)

Page 41: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Gateway WiFi

41

Page 42: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

42

ScadaBR - Radiuino

Page 43: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

43

Aplicação REAL

Page 44: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Quem fabrica?

44

www.spreadcom.com.br

Page 45: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc Onde Comprar?

45

www.robocore.net

www.radioit.com.br

Page 46: Palestra Plataforma Radiuino #TDC2012 Floripa

Radiuino – All Rights Reserved 2011

www.radiuino.cc

46

Obrigado!

Omar Ferroni Branquinho www.radiuino.cc

@omarfb