Top Banner
Computação Física, Plataformas, Comunicação, APIs OpenDevice - Plataforma para IoT (Internet das Coisas) Ricardo JL Rufino [email protected] [email protected]
46

ArduinoDay 2015 - OpenDevice

Jul 18, 2015

Download

Devices & Hardware

Ricardo Rufino
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ArduinoDay 2015 -  OpenDevice

Computação Física, Plataformas, Comunicação, APIsOpenDevice - Plataforma para IoT (Internet das Coisas)

Ricardo JL [email protected]

[email protected]

Page 2: ArduinoDay 2015 -  OpenDevice

AgendaAgenda

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

● 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: ArduinoDay 2015 -  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: ArduinoDay 2015 -  OpenDevice

Internet das

Coisas

Page 5: ArduinoDay 2015 -  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: ArduinoDay 2015 -  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: ArduinoDay 2015 -  OpenDevice

Momento Atual

Page 8: ArduinoDay 2015 -  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: ArduinoDay 2015 -  OpenDevice

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

UTURO Hu – Yoshida ( CTO Hitachi )

Page 10: ArduinoDay 2015 -  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 11: ArduinoDay 2015 -  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 12: ArduinoDay 2015 -  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 13: ArduinoDay 2015 -  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 14: ArduinoDay 2015 -  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 15: ArduinoDay 2015 -  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 16: ArduinoDay 2015 -  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 17: ArduinoDay 2015 -  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 18: ArduinoDay 2015 -  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 19: ArduinoDay 2015 -  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 20: ArduinoDay 2015 -  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 21: ArduinoDay 2015 -  OpenDevice

Tecnologias Envolvidas

Page 22: ArduinoDay 2015 -  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 23: ArduinoDay 2015 -  OpenDevice

Visão Geral

Page 24: ArduinoDay 2015 -  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 25: ArduinoDay 2015 -  OpenDevice

Hands-On/Of

Uma pitada de java...

Page 26: ArduinoDay 2015 -  OpenDevice

Blink - Arduino

* C / Arduino

Page 27: ArduinoDay 2015 -  OpenDevice

Blink - Arduino

* C / Arduino

Outras opções.....

Page 28: ArduinoDay 2015 -  OpenDevice

Blink – Java (Arduino Style)

Page 29: ArduinoDay 2015 -  OpenDevice

Blink - Java (mais livre)

Page 30: ArduinoDay 2015 -  OpenDevice

Blink Java (Comandos)

Page 31: ArduinoDay 2015 -  OpenDevice

Incrementando no JAVA

Definição de Dispositivos

Definição das Conexões

* JAVA

*Opcional: Somente é necessário se for trabalhar com O.O do lado java

Page 32: ArduinoDay 2015 -  OpenDevice

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

Você pode acessar pelo navegador

… ou com JavaScript !

Page 33: ArduinoDay 2015 -  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 34: ArduinoDay 2015 -  OpenDevice

Api JavaScript para WebSocket

Page 35: ArduinoDay 2015 -  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/Documentation

Page 36: ArduinoDay 2015 -  OpenDevice

Instalação

● Adicionar o repositório da Sonatype

Page 37: ArduinoDay 2015 -  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 38: ArduinoDay 2015 -  OpenDevice

Exemplos

● Os exemplos estão no Github– 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 39: ArduinoDay 2015 -  OpenDevice

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

Page 40: ArduinoDay 2015 -  OpenDevice

Postura !

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

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

Page 41: ArduinoDay 2015 -  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 42: ArduinoDay 2015 -  OpenDevice

Dúvidas ?

Page 43: ArduinoDay 2015 -  OpenDevice

Contatos

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

● Facebook– /ricardojlrufino

Page 44: ArduinoDay 2015 -  OpenDevice

Link's

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

● Facebook– /opendevice

● IDE do Arduino + Melhorias– http://criativasof.com.br/downloads/programas/arduino

Page 45: ArduinoDay 2015 -  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/)