tdc2014 - internet das coisas - arduino & opendevice

135
Trilha: Internet das Coisas Computação Física, Plataformas, Comunicação, APIs Comunicação entre Arduino, Raspberry, Android com OpenDevice. Ricardo JL Rufino [email protected] [email protected]

Upload: ricardo-rufino

Post on 18-Jul-2015

248 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Trilha: Internet das CoisasComputação Física, Plataformas, Comunicação, APIs

Comunicação entre Arduino, Raspberry, Android com OpenDevice.

Ricardo JL [email protected]

[email protected]

Page 2: TDC2014 - Internet das Coisas - Arduino & OpenDevice

AgendaAgenda● Introdução a Internet das Coisas (fast !!)● Arduino

● Exemplos● Shields● Sensores● Projetos

● Automação Residencial..● OpenDevice (Hands-On)

● Arduino / Raspberry e Similares● Protocolos de Comunicação● Brincando via JavaScript● Comunicação em real-time utilizando WebSockets● Utilizando o Android

Page 3: TDC2014 - Internet das Coisas - Arduino & OpenDevice

AgendaApresentação

Ricardo JL Rufino

➔ Esp. em Engenharia de Software➔ Mestrando em Gestão de TI (UFPE)➔ Sócio fundador da CriativaSoft.

➔ Atuo no desenvolvimento de Software desde 2007, focado em soluções empresariais sobre plataforma JavaEE. Desenvolvedor de softwares open-source como Framework Web MVC Mentawai, ProjectNCode e instrutor de cursos de Java.

Page 4: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Internet das

Coisas

Page 5: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Internet das Coisas

● Que coisas são essas ?– Computadores– Smart Phones– Tablets– Sensores– Roupas– Pessoas– Pode ser o que você quiser ! Até cidades !

Page 6: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Conceito

● O Conceito de “Internet das Coisas” começou a ser desenvolvido em 1999 nos laboratórios do MIT. A proposta é ligar todas as coisas à Internet, de sofisticados equipamentos até lâmpadas, para que esses objetos passam se comunicar entre si e com os usuários, a fim de gerar informações com diversos potenciais e finalidades

Page 7: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Momento Atual

Page 8: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Envolvidos ?

● Grandes empresas estão aderindo...– Google

● Compra da Nest ($3.2 ~ R$ 7.5 bilhões )● Compra da Boston Dynamics (robôs)● Sistema Operacional para carros. (Android Auto)

– Apple (HomeKit, healthkit, )

– Microsof● Lançando plataformas de IoT

– Dell, Intel e Samsung

– Muitas outras e em breve ….. a ;)

Page 9: TDC2014 - Internet das Coisas - Arduino & OpenDevice

“A Internet das Coisas vai mudar o mundo completamente.”F

UTURO Hu – Yoshida ( CTO Hitachi )

Page 10: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Como vim para aqui ?

● Tudo começa com um violão...

.. e a primeira gambiarra:

● Um captador feito a partir de um relógio de pulso

GENIAL !!!! = )

Page 11: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Como vim para aqui ?

● Depois a meta era uma Guitarra !

● Resumindo:2 anos juntando mesada !

E o amplificador ?

Page 12: TDC2014 - Internet das Coisas - Arduino & OpenDevice

E o amplificador ?

Descobri que é possível criar coisas !!!

Page 13: TDC2014 - Internet das Coisas - Arduino & OpenDevice

O vamos fazer agora ?

● Nós somos desenvolvedores, não somos pessoas normais .. ACEITE !!!

● Vamos HACKEAR as coisas● Vamos CRIAR novas coisas

– É preciso estudar bastante – Não ter medo de errar.. !

Page 14: TDC2014 - Internet das Coisas - Arduino & OpenDevice

O que temos em mãos ?

Page 15: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino

Page 16: TDC2014 - Internet das Coisas - Arduino & OpenDevice

O que é Arduino● Arduino é uma plataforma de prototipagem eletrônica open-

source, baseada nos princípios de flexibilidade e facilidade de uso para hardware e software.

● Consiste de uma placa com microcontrolador programável preparada para receber sinais de sensores e acionar atuadores.

● Sua linguagem de programação é baseada em Wiring (baseado em C/C++).

● A placa pode funcionar em conjunto ou de forma independente do computador

● É uma comunidade !

Se você já conhece pode pular muitas páginas...

Page 17: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Hardware (modelos)

Page 18: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Hardware (modelos)

Page 19: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Software (Arduino IDE)

Page 20: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino é Open Source

● Todo o hardware é aberto e os projetos estão disponíveis

● Quem quiser, pode comprar os componentes e montar a sua placa

● O software de programação também é livre e está disponível para download gratuitamente

Page 21: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Clones• SeeDuino

• Freeduino

• Severino• Brasuíno

Page 22: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Similares

LaunchPad (32bits - ARM Cortex M4)chipKIT Uno32 - 32 bits, 80MHz, 128kB Flash, 16kB SRAM

Page 23: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Similares

Digispark ( 6 I/O Pins,USB, I2C, SPI )

DigisparkDigispark

Adafruit Trinket (ATtiny85)

Page 24: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Similares

Page 25: TDC2014 - Internet das Coisas - Arduino & OpenDevice

●O que não temos, podemos criar !

Page 26: TDC2014 - Internet das Coisas - Arduino & OpenDevice

●O que não temos, podemos criar !

Page 27: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Dúvidas ?

Page 28: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Características de Hardware

Page 29: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Uno

Page 30: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Uno● Microcontrolador: ATmega328p (8-bit AVR RISC);● Tensão de operação: 5V;● Tensão de entrada (recomendada): 7-12V;● Pinos digitais de E/S:14 (6 podem ter sinal PWM);● Pinos com entrada analógica: 6;● Corrente máxima por pino de E/S: 40 mA;● Hardware para comunicação: 1 porta serial (UART TTL), I2C (TWI), SPI;● Memória Flash (de programa): 32 kB (0,5 kB são usados pelo bootloader);● Memória SRAM: 2 kB; EEPROM: 1 kB;● Frequência de clock: 16 MHz.

http://arduino.cc/en/Main/arduinoBoardUno

Page 31: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino UNO

Page 32: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Leonardo

Page 33: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Leonardo● Microcontrolador: ATmega32u4 (Atmel 8-bit AVR RISC);● Tensão de operação: 5V;● Tensão de entrada (recomendada): 7-12V;● Pinos digitais de E/S: 20 (7 podem ter sinal PWM);● Pinos com entrada analógica: 12;● Corrente máxima por pino de E/S: 40 mA;● Hardware para comunicação: 1 porta serial (UART), I2C (TWI), SPI, USB 2.0

(emula teclado ou mouse);● Memória Flash (de programa): 32 kB (4 kB usado pelo bootloader)● Memória SRAM: 2,5 kB; EEPROM: 1 kB;● Frequência de clock: 16 MHz.● Suporte a comunicação USB no próprio ATmega32u4;

http://arduino.cc/en/Main/arduinoBoardLeonardo

Page 34: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Mega 2560

Page 35: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino Mega 2560

● Microcontrolador: ATmega2560; ● Tensão de operação: 5V;● Tensão de entrada (recomendada): 7-12V;● Pinos digitais de E/S: 54 (15 podem ter sinal PWM);● Pinos com entrada analógica: 16;● Corrente máxima por pino de E/S: 40 mA;● Hardware para comunicação: 4 portas seriais (UART), I2C (TWI), SPI, USB 2.0

(emula teclado ou mouse);● Memória Flash (de programa): 256 kB (8 kB são usados pelo bootloader)● Memória SRAM: 8 kB; EEPROM: 4 kB;● Frequência de clock: 16 MHz.

Page 36: TDC2014 - Internet das Coisas - Arduino & OpenDevice

O que é um Microcontrolador?

● CPU de pequeno porte, capaz de executar um conjunto de instruções;

● Ou seja, possui um microprocessador!● – Instruções simples e rápidas;● – Possui memória(s);● – Possui periféricos;● – Pode se comunicar com outros periféricos;

Page 37: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Microcontrolador

Page 38: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Microcontrolador

Diagrama do PIC16F887

Page 39: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Microcontrolador

Page 40: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Comparativo Arduinos

Page 41: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Software e Programação

Page 42: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Programação (Blink)

Define o modo de operação do PINO 13 como Saída

Liga a Tensão (5V) no PINO 13

Desliga

Page 43: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Esquema / Ligações

Page 44: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Esquema / Ligações

È recomendável usar um Resistor (de 220ohm a 1k)

No LED a maior perna é o positivo

Page 45: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Esquema / Protoboard

Page 46: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Esquema / Sem nada !

Pra quem tem preguiça: O Arduino já vem com um LED embutido (Pino 13)

Page 47: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Instalação

IDE é compatível: Windows, Mac OS X e Linux– Link: http://arduino.cc/en/main/software

● Driver– Windows: precisa do driver FTDI

– Linux: não precisa de NADA... ;)

● Software– Basta descompactar e rodar (se quiser tem um instalador)

– Se tiver algum problema instale a versão antiga: Arduino 1.0.X

– Dúvidas, siga:● https://www.circuitar.com.br/tutoriais/configurando-o-arduino-no-windows/● Win 8: http://futebol-uff.blogspot.com.br/2012/12/instalando-drivers-do-arduino-no.html

Page 48: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Gravando o Programa

1 - Selecione o Modelo da Placa

2 - Selecione a Porta Serial *

* Se não aparecer, pode ser problema no Driver (Ruindows !!!)No Arduino Leonardo a porta fica mudando e algumas vesses você precisa selecionar várias vesses !

3 – Clique em upload para compilar e enviar para o Arduino

Page 49: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3Prática ?!

Page 50: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Dúvidas ?

Page 51: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Antes do Arduino

http://www.avr-tutorials.com/

Page 52: TDC2014 - Internet das Coisas - Arduino & OpenDevice
Page 53: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Antes do ArduinoDigital I/O Assembly

http://www.avr-tutorials.com/

Page 54: TDC2014 - Internet das Coisas - Arduino & OpenDevice
Page 55: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Antes do Arduino● Processo Lento

● Mais caro

● Mais Complexo

Page 56: TDC2014 - Internet das Coisas - Arduino & OpenDevice

OK !!! Voltando....

Page 57: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Exemplo 2 : Botão (Leitura Digital)

Page 58: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Exemplo 2 : Botão (Leitura Digital)

Page 59: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Exemplo 2 : Botão (Leitura Digital)

http://arduino.cc/en/Tutorial/DigitalReadSerial

Page 60: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Exemplo 2 : Botão (explicação)

O digitalRead() lê as tensões de entrada: (5v ou 0v) e converte em valores: 0 (LOW) e 1 (HIGH)

O pino em modo de leitura (INPUT), sem nenhuma conexão, irá flutuar gerando valores aleatórios, por isso precisamos puxar ele pra 0v (pull-down) ou para 5v (pull-up)

… Então quando a chave estiver aberta, precisamos levar o pino para um estado confiável, no caso ligamos ao negativo (GND) usando um resistor (ou seja um pull-down )

Page 61: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Potenciômetro : Leitura Analógica

http://www.arduino.cc/en/tutorial/potentiometer

Page 62: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Potenciômetro : Leitura Analógica

Page 63: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Potenciômetro : Código

Page 64: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Potenciômetro : Leitura Analógica

● analogRead() - Lê valores dos pinos analógicos

● O conversor A/D do microcontrolador ATmega328 possui 10 bits de resolução, gerando valores na faixa 0 a 1023 conforme a tensão no pino, que varia de 0v a 5v.

● A quantidade de pinos analógicos varia em cada modelo.

● Demora 100 microsegundos (0.0001 s) para ler (10,000 leituras / seg)

Page 65: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensor de Luz : LDR

● LDR (do inglês Light Dependent Resistor) ou Photo-resistor● Componente eletrônico passivo do tipo resistor variável ● A medida que a intensidade da luz aumenta, a sua resistência

diminui.● Não é muito preciso !

Page 66: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensor de Luz : LDR

Modo Pull-DownPouca Luz → Valor Baixo

Modo Pull-UpPouca Luz → Valor Alto

Page 67: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensor de Luz : Código

Page 68: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shields Arduino

● Sistema modular para expandir as funcionalidades do arduino.

● A parte mais genial !!!● Uma lista enorme pode

ser encontrada em:

http://shieldlist.org/

Page 69: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3Exemplos

Page 70: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : Ethernet

Page 71: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : WiFly Shield

https://www.sparkfun.com/products/9954

Page 72: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : Cellular with SM5100B

https://www.sparkfun.com/products/9607

Page 73: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : GPS

https://www.sparkfun.com/products/10710

Page 74: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : XBee

Page 75: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : Color LCD Shield

https://www.sparkfun.com/products/retired/9363

Page 76: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : Relay Shield

http://www.seeedstudio.com/depot/relay-shield-v20-p-1376.html?cPath=132_134

Page 77: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Shield : MP3 Player Shield

Page 78: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3Sensores

http://www.trossenrobotics.com/

Page 79: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensores

http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank

Page 80: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensores

http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank

Page 81: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Sensores

http://www.trossenrobotics.com/c/arduino-sensors.aspx?sort=SalesRank

Page 82: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3Robôs

Page 83: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Robôs

Page 84: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Robôs

Page 85: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Robôs

Page 86: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Robôs

Page 87: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Automação Residencial

Page 88: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Automação Residencial

● Ligar/Desligar qualquer eletrodoméstico● Controlar iluminação, temperatura● Sensores de Presença (segurança)● Controle de portas e portões automáticos● Controle Centralizado● Controle Remoto (pela internet)● Economia de Energia e Monitoramento de Consumo● Hardware barato ( Redução de Custos !!!! )

Page 89: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Automação Residencial

Page 90: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3Projetos

Page 91: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Twitter Enabled Coffee Pot

http://www.instructables.com/id/Tweet-a-Pot-Twitter-Enabled-Coffee-Pot/

Page 92: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Inebriator

http://www.theinebriator.com/

Page 93: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Flamethrowing Jack-O'-Lantern

http://www.instructables.com/id/Flamethrowing-Jack-O-Lantern/

Page 94: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Tree Climbing Robot

http://www.instructables.com/id/Tree-Climbing-Robot/

Page 95: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Arduino R/C Lawnmower

http://www.instructables.com/id/Arduino-RC-Lawnmower/

Page 96: TDC2014 - Internet das Coisas - Arduino & OpenDevice

http://www.wired.com/2013/01/wearable-arduinos/#slideid-351561

Page 97: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Drones

Page 98: TDC2014 - Internet das Coisas - Arduino & OpenDevice

ArduIMU Quascopter

http://thecoolgadgets.com/arduimu-quascopter-diy-arduino-helicopter-4-infrared-and-1-ultra-sonic-sensors/

Page 99: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Dúvidas ?

Page 100: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Problema !!Como fazer a comunicação com esses equipamentos / dispositivos ?

Os padrões ainda estão sendo criados.... (verdadeira gerra !)

É preciso ser fácil

Page 101: TDC2014 - Internet das Coisas - Arduino & OpenDevice

1

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Alternativas com JAVA ?

● A Sun nos abandonou ! (JavaComm/JSR80 ?!?)● RXTX tem muitos problemas e tem ajustes manuais

- Consegue fazer via JNI (Java Native Interface) - Pra quem quer começar é um problema ! ● Usb4java – Nova, mas parece promissora !

...A IDE do Arduino usa RXTX por baixo dos panos

USB ??

Page 102: TDC2014 - Internet das Coisas - Arduino & OpenDevice

1

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Alternativas com JAVA ?

● Aqui só no J2ME (JSR-82) e Android.● Desktop nem pensar !! e Raspberry ?? rsrsr● Saída : Bluecove (usando JNI)

● Problema : Ultimo release é de 2008 Snapshot em 2010

Bluetooth ??

* JNI faz chamadas a bibliotecas em C, produzidas para esse fim

Page 103: TDC2014 - Internet das Coisas - Arduino & OpenDevice

1

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Alternativas com JAVA ?

Esse não podemos reclamar !

Rede / TCP / IP ?

Page 104: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Tudo junto ?

Dá um trabalhinho !

E você precisa criar sua própria forma de comunicaçãoLidar com detalhes de baixo nível

Correção de ErrosPrecisa ter uma boa experiência

Etc.. etc...

Page 105: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Linha 1 Linha 2 Linha 3 Linha 40

2

4

6

8

10

12

Coluna 1

Coluna 2

Coluna 3

Solução ?Quem pode nos ajudar ?

Page 106: TDC2014 - Internet das Coisas - Arduino & OpenDevice

OpenDeviceOpen IoT (Internet Of Things) Platform and Framework.

“Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”

Page 107: TDC2014 - Internet das Coisas - Arduino & OpenDevice

OpenDeviceOpen IoT (Internet Of Things) Platform and Framework.

“Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”

Page 108: TDC2014 - Internet das Coisas - Arduino & OpenDevice

OpenDevice

● Apis e Ferramentas que permitem construir sistemas de:– Automação Residencial

– Monitoramento de Sensores

– Monitoramento de Energia

– Controle de Robôs

– Smart City

Page 109: TDC2014 - Internet das Coisas - Arduino & OpenDevice

OpenDevice

● Objetivo:

O principal objetivo é monitorar e controlar hardwares baratos como Arduino, RaspberryPI e plataformas semelhantes, local (offline) ou sobre a nuvem usando linguagens de programação de alto nível e com a abstração de protocolos e detalhes de baixo nível.

Page 110: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Foco no que é importante !

Isso permite que você se concentre em seu projeto e na inovação, deixar os detalhes obscuros de protocolos de comunicação e especificações com OpenDevice, você vai dar um passo importante para o sucesso de seu projeto.

Page 111: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Tecnologias Envolvidas

Page 112: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Funcionalidades ● Open API (for: REST, JavaScript, Java, Android, Arduino,

EnergiaIDE)● Real-time (WebSockets)● Event-Based● Async & non-blocking● Multi-protocolo (Usb, Bluetooth, TCP)● Independente de Linguagem● Independente de Plataforma (Windows, Linux, Mac, MIPs on

OpenWRT)● Lightweight/Built-in Servers (não precisa do tomcat ou glassfish)

Page 113: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Visão Geral

Page 114: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Event-driven and Real-Time

Você não precisa consultar a informação, ela vem até você quando os dados estiverem disponíveis

Page 115: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Hands-On/Of

Uma pitada de java...

Page 116: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Blink - Arduino

* C / Arduino

Page 117: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Blink - Java

Page 118: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Blink Java (mais livre)

Page 119: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Blink Java (Comandos)

Page 120: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Incrementando no Arduino

* C / Arduino

Page 121: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Incrementando no JAVA

Definição de Dispositivos

Definição das Conexões

* JAVA

Page 122: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Adicionando Rest !Adicione essa linha e seja feliz !!!

Você pode acessar pelo navegador

… ou com JavaScript !

Page 123: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Agora ficou sério ! WebSockets !Adicione essas linhas e fique Real-Time e de quebra servidor http !

Biblioteca de Rest e WebSocket ! (adicione no pom.xml)

Ao adicionar o servidor de W.S automaticamente já é adicionado o servidor de REST

Page 124: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Api JavaScript para WebSocket

Page 125: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Instalação

● Usamos o Maven (arquivo pom.xml)

Substitua: ${opendevice-version} pela ultima versão, atualmente: 0.1.2-SNAPSHOT.

Qualquer dúvida consulte:https://opendevice.atlassian.net/wiki/display/DOC/A.+First+Steps+with+OpenDevice

Page 126: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Instalação

● Adicionar o repositório da Sonatype

Page 127: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Instalação (lib arduino/similar)

● Baixar ou Clonar o repositório do GIT– opendevice-hardware-libraries

● Copiar a pasta: arduino/OpenDevice– Para pasta /libraries da IDE do Arduino

● Reinicie a IDE do Arduino

Github / Sources: https://github.com/OpenDevice

Page 128: TDC2014 - Internet das Coisas - Arduino & OpenDevice

HORÁRIO RESERVADOÀ PROGRAMAÇÃO E MÃO NA MASSA

Page 129: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Postura !

Nós somos desenvolvedores, não somos “normais” ACEITE ISSO.. !!!

Devemos ser agentes de Transformação e Criação.

Page 130: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Atitude !

Não espere a ideia brilhante !

Execute a ideia que você gosta.

Descubra o que você gosta

Não escute os outros ● Muita gente vai dizer que você não consegue

● Muita gente vai dizer que já existe

Page 131: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Dúvidas ?

Page 132: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Contatos

● E-mail: – [email protected][email protected]

● Facebook– /ricardojlrufino

Page 133: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Link's

● OpenDevice: – http://opendevice.io– https://github.com/OpenDevice– https://opendevice.atlassian.net/wiki– http://opendevice.criativasof.com.br

● Facebook– /opendevice

Page 134: TDC2014 - Internet das Coisas - Arduino & OpenDevice

Link's● Onde Comprar ? (Gringos):

– www.adafruit.com– www.sparkfun.com– www.seeedstudio.com– imall.iteadstudio.com– www.dx.com (mercado livre – demora....)

● Brasil– Lab de Garagem (http://www.labdegaragem.org– Multilógica Shop (http://multilogica-shop.com/);– Rlrobotics (http://www.rlrobotics.ind.br/arduino);– Webtronico (http://www.webtronico.com/)