tdc2015 - internet das coisas - opendevice

33
Trilha: Internet das Coisas Open IoT (Internet Of Things) Plaorm and Framework Conectando coisas com Arduino/Raspberry/Andoird/Java usando OpenDevice Ricardo JL Rufino [email protected] [email protected] 05/2015

Upload: ricardo-rufino

Post on 09-Aug-2015

216 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: TDC2015 - Internet das Coisas - OpenDevice

Trilha: Internet das CoisasOpen IoT (Internet Of Things) Platform and Framework

Conectando coisas com Arduino/Raspberry/Andoird/Java usando OpenDevice

Ricardo JL [email protected]@gmail.com

05/2015

Page 2: TDC2015 - Internet das Coisas - OpenDevice

AgendaApresentação

Ricardo JL Rufino➔ Esp. em Engenharia de Software➔ Mestrando em Gestão de TI (UFPE)➔ Sócio fundador da CriativaSoft.➔ Apaixonado por tecnologia, open source/hardware

➔ 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 3: TDC2015 - Internet das Coisas - 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 4: TDC2015 - Internet das Coisas - 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 5: TDC2015 - Internet das Coisas - 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 6: TDC2015 - Internet das Coisas - 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 7: TDC2015 - Internet das Coisas - OpenDevice

Tecnologias Envolvidas

Page 8: TDC2015 - Internet das Coisas - 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 9: TDC2015 - Internet das Coisas - OpenDevice

Visão Geral

Page 10: TDC2015 - Internet das Coisas - 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 11: TDC2015 - Internet das Coisas - OpenDevice

Um pouco de Código

Uma pitada de java...

Page 12: TDC2015 - Internet das Coisas - OpenDevice

Blink - Arduino

* C / Arduino

Biblioteca disponível em: https://github.com/OpenDevice/opendevice-lib-arduino

Page 13: TDC2015 - Internet das Coisas - OpenDevice

Blink - Arduino

* C / Arduino

Outras opções.....

Page 14: TDC2015 - Internet das Coisas - OpenDevice

Blink – Java (Arduino Style)

Page 15: TDC2015 - Internet das Coisas - OpenDevice

Blink - Java (mais livre)

Page 16: TDC2015 - Internet das Coisas - OpenDevice

Blink Java (Comandos)

Page 17: TDC2015 - Internet das Coisas - 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 18: TDC2015 - Internet das Coisas - OpenDevice

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

Você pode acessar pelo navegador

… ou com JavaScript !

Page 19: TDC2015 - Internet das Coisas - 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 REST

Page 20: TDC2015 - Internet das Coisas - OpenDevice

Api JavaScript para WebSocket

Page 21: TDC2015 - Internet das Coisas - OpenDevice

Instalação

● Usando o Maven (arquivo pom.xml)

Substitua: ${opendevice-version} pela ultima versão

Qualquer dúvida consulte:https://opendevice.atlassian.net/wiki/display/DOC/Documentation

<dependencies><dependency>

<groupId>br.com.criativasoft.opendevice</groupId><artifactId>opendevice-connection-stream</artifactId><version>${opendevice-version}</version>

</dependency> <dependency>

<groupId>br.com.criativasoft.opendevice</groupId><artifactId>opendevice-core</artifactId><version>${opendevice-version}</version>

</dependency></dependencies>

Page 22: TDC2015 - Internet das Coisas - OpenDevice

Instalação

● Adicionar o repositório da Sonatype<repositories>

<repository><id>oss.sonatype.org</id><url>https://oss.sonatype.org/content/repositories/releases</url>

</repository><repository>

<id>oss.sonatype.org-snapshot</id><url>https://oss.sonatype.org/content/repositories/snapshots</url>

</repository></repositories>

Page 23: TDC2015 - Internet das Coisas - OpenDevice

Instalação (lib arduino/similar)

● Baixar ou Clonar o repositório do GIT– github.com/OpenDevice/opendevice-lib-arduino

● Copiar para pasta '/libraries' da IDE do Arduino– Mude o nome da pasta para OpenDevice

● Reinicie a IDE do Arduino

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

Page 24: TDC2015 - Internet das Coisas - OpenDevice

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

Page 25: TDC2015 - Internet das Coisas - OpenDevice

Modulos➔ opendevice-connection modules

➔ opendevice-connection-api: Especificação das Interfaces de Conexão Cliente/Server

➔ opendevice-connection-stream: Conexões USB,Bluetooth,TCP (PC/RaspPI)

➔ opendevice-android-stream: USB,Bluetooth para Android

➔ opendevice-raspberry-pi4j: Abstração da comunicação usando PI4J

➔ opendevice-connection-samples: Exemplos de comunicação de baixo nível

● OBS: Identificação das Implementações em Runtime (SPI – Service Provider)

➔ opendevice-clients modules

➔ opendevice-js: Biblioteca JavaScript com WebSocket e REST

➔ opendevice-wasync-client: Biblioteca Websocket para Android e PC

➔ opendevice-servers modules● opendevice-rest-ws-server: Servidor REST e WebSocket

➔ opendevice-rest-api: Interface REST para controle dos Devices

Page 26: TDC2015 - Internet das Coisas - OpenDevice

Modulos● opendevice-hardware-libraries (ex: opendevice-lib-arduino)

– Biblioteca para coordenação e ponte com os equipamentos físicos (lampadas, tvs, ar, sensores, etc.. ) e implementação do protocolo do OpenDevice.

– Compatível com as plataformas AVR/Arduino e ARM (Stelarias Lauchpad 32bits)● opendevice-core:

– Implementação do Protocolo, API de Commandos, Devices (JAVA)● opendevice-server-app:

– Aplicação de Gestão, Controle e Monitoramento (JAVA)– Usa praticamente todos os outros módulos– Banco de Dados: Neo4J usando Hibernate OGM (JPA ) , algumas consultas

nativas● opendevice-web-view:

– Interface HTML/5 + AngularJS + OpenDeviceJS usada no server-app

Page 27: TDC2015 - Internet das Coisas - OpenDevice

Postura !

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

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

Page 28: TDC2015 - Internet das Coisas - 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 29: TDC2015 - Internet das Coisas - OpenDevice

Dúvidas ?

Page 30: TDC2015 - Internet das Coisas - OpenDevice

Contatos

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

● Facebook– /ricardojlrufino

Page 31: TDC2015 - Internet das Coisas - OpenDevice

Link's

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

● Facebook– /opendevice

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

Page 32: TDC2015 - Internet das Coisas - 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/)