SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Trilha: Internet das Coisas
Open IoT (Internet Of Things) Platform and Framework
Conectando coisas com Arduino/Raspberry/Android/Java usando OpenDevice
Ricardo JL Rufino
ricardo@criativasoft.com.br
ricardo.jl.rufino@gmail.com
05/2015
AgendaApresentação
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.
OpenDevice
Open IoT (Internet Of Things) Platform and
Framework.
“Conjunto de ferramentas e APIs para construção de
soluções de Internet das Coisas”
OpenDevice
● APIs e Ferramentas que permitem construir
sistemas de:
– Automação Residencial
– Monitoramento de Sensores
– Monitoramento de Energia
– Controle de Robôs
– Smart City
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.
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.
Tecnologias Envolvidas
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)
Visão Geral
Event-driven and Real-Time
Você não precisa consultar a informação,
ela vem até você quando os dados
estiverem disponíveis
Um pouco de Código
Uma pitada de java...
Blink - Arduino
* C / Arduino
Biblioteca disponível em: https://github.com/OpenDevice/opendevice-lib-arduino
Blink - Arduino
* C / Arduino
Outras opções.....
Blink – Java (Arduino Style)
Blink - Java (mais livre)
Blink Java (Comandos)
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
Adicionando Rest !
Adicione essa linha e seja feliz !!!
Você pode acessar pelo navegador
… ou com JavaScript !
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
Api JavaScript para WebSocket
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>
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>
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
HORÁRIO RESERVADO
À PROGRAMAÇÃO E MÃO NA MASSA
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
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
Postura !
Nós somos desenvolvedores, não somos
“normais” ACEITE ISSO.. !!!
Devemos ser agentes de Transformação e
Criação.
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
Dúvidas ?
Contatos
● E-mail:
– ricardo@criativasoft.com.br
– rjlr@cin.ufpe.br
● Facebook
– /ricardojlrufino
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://iot.criativasoft.com.br
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/)
Obrigado pela sua
atenção.

Mais conteúdo relacionado

Mais procurados

Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedFabio Souza
 
Introdução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresIntrodução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresCarlos Eduardo Pantoja
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuOdair Bonin Borges
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoGlobalcode
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladoresFabio Souza
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaWaelson Negreiros Nunes
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012Marco Antonio Maciel
 
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Christopher Cerqueira
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceRicardo Rufino
 
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014Fabio Souza
 
Programando Robôs Cognitivos Usando o ARGO
Programando Robôs Cognitivos Usando o ARGOProgramando Robôs Cognitivos Usando o ARGO
Programando Robôs Cognitivos Usando o ARGOCarlos Eduardo Pantoja
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScriptTaller Negócio Digitais
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?Fabio Souza
 
Java.ino - Plataforma de Programação para Arduino com Java
Java.ino - Plataforma de Programação para Arduino com JavaJava.ino - Plataforma de Programação para Arduino com Java
Java.ino - Plataforma de Programação para Arduino com JavaNewton Gomes
 
Flisol projetos criativos com o arduino
Flisol   projetos criativos com o arduino Flisol   projetos criativos com o arduino
Flisol projetos criativos com o arduino Fernando Moreira
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensMarco Antonio Maciel
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Douglas Esteves
 

Mais procurados (20)

Programe a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbedPrograme a STM32L4 Discovery kit IoT node com ARM mbed
Programe a STM32L4 Discovery kit IoT node com ARM mbed
 
Introdução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de MicrocontroladoresIntrodução ao Arduino: Fundamentos e Aplicações de Microcontroladores
Introdução ao Arduino: Fundamentos e Aplicações de Microcontroladores
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seu
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeitaPalestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
Palestra FLISOL 2013 - Java + Arduino + Raspberry PI = Uma combinação perfeita
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
Construção de interfaces on-demand baseadas em Realidade Aumentada Projetiva ...
 
TDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDeviceTDC2014 - Internet das Coisas - Arduino & OpenDevice
TDC2014 - Internet das Coisas - Arduino & OpenDevice
 
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
O impacto do arduino no mundo dos embarcados - TRILHA EMBEDDED - TDC2014
 
Programando Robôs Cognitivos Usando o ARGO
Programando Robôs Cognitivos Usando o ARGOProgramando Robôs Cognitivos Usando o ARGO
Programando Robôs Cognitivos Usando o ARGO
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScript
 
Como publicar um projeto open hardware?
Como publicar um projeto  open hardware?Como publicar um projeto  open hardware?
Como publicar um projeto open hardware?
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Java.ino - Plataforma de Programação para Arduino com Java
Java.ino - Plataforma de Programação para Arduino com JavaJava.ino - Plataforma de Programação para Arduino com Java
Java.ino - Plataforma de Programação para Arduino com Java
 
Flisol projetos criativos com o arduino
Flisol   projetos criativos com o arduino Flisol   projetos criativos com o arduino
Flisol projetos criativos com o arduino
 
Arduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas NuvensArduino, Robótica e Computação nas Nuvens
Arduino, Robótica e Computação nas Nuvens
 
Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12Oficina de IoT conhecendo ESP8266 #CPBR12
Oficina de IoT conhecendo ESP8266 #CPBR12
 

Destaque

Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTMarco Antonio Maciel
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Javalucascsoliveira
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Denis Storti da Silva
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...Jorge Maia
 
Selecionando application procotocols para IoT
Selecionando application procotocols para IoTSelecionando application procotocols para IoT
Selecionando application procotocols para IoTcesar231084
 
Localização indoor com redes de beacons inteligentes
Localização indoor com redes de beacons inteligentesLocalização indoor com redes de beacons inteligentes
Localização indoor com redes de beacons inteligentesAndré Curvello
 
MQTT in the Internet of Things | Loop by Litmus Automation
MQTT in the Internet of Things | Loop by Litmus AutomationMQTT in the Internet of Things | Loop by Litmus Automation
MQTT in the Internet of Things | Loop by Litmus AutomationLitmusautomation
 
DENIS_Comparacao_de_Protocolos_de_Comunicacao
DENIS_Comparacao_de_Protocolos_de_ComunicacaoDENIS_Comparacao_de_Protocolos_de_Comunicacao
DENIS_Comparacao_de_Protocolos_de_ComunicacaoDenis Storti da Silva
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosSuzana Viana Mota
 
JavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telasJavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telasFelipe de Albuquerque
 
Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTImarcochella
 
Internet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorInternet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorAndré Curvello
 
Comparing CoAP vs MQTT
Comparing CoAP vs MQTTComparing CoAP vs MQTT
Comparing CoAP vs MQTTkellogh
 
Internet of Things (IoT) protocols COAP MQTT OSCON2014
Internet of Things (IoT) protocols  COAP MQTT OSCON2014Internet of Things (IoT) protocols  COAP MQTT OSCON2014
Internet of Things (IoT) protocols COAP MQTT OSCON2014Vidhya Gholkar
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016André Curvello
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoAndré Curvello
 

Destaque (17)

Introdução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoTIntrodução à plataforma Java Embedded & IoT
Introdução à plataforma Java Embedded & IoT
 
Tutorial WebSocket em Java
Tutorial WebSocket em JavaTutorial WebSocket em Java
Tutorial WebSocket em Java
 
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
Monografia_AWS_ProtocolosIOT_DenisStorti_v1.1
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
 
Selecionando application procotocols para IoT
Selecionando application procotocols para IoTSelecionando application procotocols para IoT
Selecionando application procotocols para IoT
 
Localização indoor com redes de beacons inteligentes
Localização indoor com redes de beacons inteligentesLocalização indoor com redes de beacons inteligentes
Localização indoor com redes de beacons inteligentes
 
Esp8266 + lua
Esp8266 + luaEsp8266 + lua
Esp8266 + lua
 
MQTT in the Internet of Things | Loop by Litmus Automation
MQTT in the Internet of Things | Loop by Litmus AutomationMQTT in the Internet of Things | Loop by Litmus Automation
MQTT in the Internet of Things | Loop by Litmus Automation
 
DENIS_Comparacao_de_Protocolos_de_Comunicacao
DENIS_Comparacao_de_Protocolos_de_ComunicacaoDENIS_Comparacao_de_Protocolos_de_Comunicacao
DENIS_Comparacao_de_Protocolos_de_Comunicacao
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas Embarcados
 
JavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telasJavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telas
 
Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTI
 
Internet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redorInternet das Coisas - Conectando você e tudo ao seu redor
Internet das Coisas - Conectando você e tudo ao seu redor
 
Comparing CoAP vs MQTT
Comparing CoAP vs MQTTComparing CoAP vs MQTT
Comparing CoAP vs MQTT
 
Internet of Things (IoT) protocols COAP MQTT OSCON2014
Internet of Things (IoT) protocols  COAP MQTT OSCON2014Internet of Things (IoT) protocols  COAP MQTT OSCON2014
Internet of Things (IoT) protocols COAP MQTT OSCON2014
 
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
Laboratórios do HandsOn de mbedOS - FTF Connects SP 2016
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento Assimétrico
 

Semelhante a TDC2015 - Internet das Coisas - OpenDevice

Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DRenato Puccini
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesRodrigo Peleias
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkVitor Silva
 
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)Win302 daniel semedo_10 motivos para utilizar apache cordova (1)
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)Daniel Semedo
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 

Semelhante a TDC2015 - Internet das Coisas - OpenDevice (20)

Palestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3DPalestra SFD etec Netbeans e Java 3D
Palestra SFD etec Netbeans e Java 3D
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 
Netbeans Slides
Netbeans SlidesNetbeans Slides
Netbeans Slides
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Java e Software Livre
Java e Software LivreJava e Software Livre
Java e Software Livre
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Web open source
Web open sourceWeb open source
Web open source
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 
Netbeans
NetbeansNetbeans
Netbeans
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)Win302 daniel semedo_10 motivos para utilizar apache cordova (1)
Win302 daniel semedo_10 motivos para utilizar apache cordova (1)
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 

TDC2015 - Internet das Coisas - OpenDevice

  • 1. Trilha: Internet das Coisas Open IoT (Internet Of Things) Platform and Framework Conectando coisas com Arduino/Raspberry/Android/Java usando OpenDevice Ricardo JL Rufino ricardo@criativasoft.com.br ricardo.jl.rufino@gmail.com 05/2015
  • 2. AgendaApresentação 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.
  • 3. OpenDevice Open IoT (Internet Of Things) Platform and Framework. “Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”
  • 4. OpenDevice ● APIs e Ferramentas que permitem construir sistemas de: – Automação Residencial – Monitoramento de Sensores – Monitoramento de Energia – Controle de Robôs – Smart City
  • 5. 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.
  • 6. 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.
  • 8. 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)
  • 10. Event-driven and Real-Time Você não precisa consultar a informação, ela vem até você quando os dados estiverem disponíveis
  • 11. Um pouco de Código Uma pitada de java...
  • 12. Blink - Arduino * C / Arduino Biblioteca disponível em: https://github.com/OpenDevice/opendevice-lib-arduino
  • 13. Blink - Arduino * C / Arduino Outras opções.....
  • 14. Blink – Java (Arduino Style)
  • 15. Blink - Java (mais livre)
  • 17. 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
  • 18. Adicionando Rest ! Adicione essa linha e seja feliz !!! Você pode acessar pelo navegador … ou com JavaScript !
  • 19. 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
  • 20. Api JavaScript para WebSocket
  • 21. 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>
  • 22. 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>
  • 23. 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
  • 25. 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
  • 26. 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
  • 27. Postura ! Nós somos desenvolvedores, não somos “normais” ACEITE ISSO.. !!! Devemos ser agentes de Transformação e Criação.
  • 28. 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
  • 30. Contatos ● E-mail: – ricardo@criativasoft.com.br – rjlr@cin.ufpe.br ● Facebook – /ricardojlrufino
  • 31. 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://iot.criativasoft.com.br
  • 32. 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/)