TDC2015 - Internet das Coisas - OpenDevice

911 visualizações

Publicada em

Slides da apresentação no TDC2015 Florianópolis
Open IoT (Internet Of Things) Platform and Framework.
Conectando coisas com Arduino/Raspberry/Andoird/Java usando OpenDevice

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
911
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
36
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDC2015 - Internet das Coisas - OpenDevice

  1. 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. 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. 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. 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. 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. 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.
  7. 7. Tecnologias Envolvidas
  8. 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)
  9. 9. Visão Geral
  10. 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. 11. Um pouco de Código Uma pitada de java...
  12. 12. Blink - Arduino * C / Arduino Biblioteca disponível em: https://github.com/OpenDevice/opendevice-lib-arduino
  13. 13. Blink - Arduino * C / Arduino Outras opções.....
  14. 14. Blink – Java (Arduino Style)
  15. 15. Blink - Java (mais livre)
  16. 16. Blink Java (Comandos)
  17. 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. 18. Adicionando Rest ! Adicione essa linha e seja feliz !!! Você pode acessar pelo navegador … ou com JavaScript !
  19. 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. 20. Api JavaScript para WebSocket
  21. 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. 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. 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
  24. 24. HORÁRIO RESERVADO À PROGRAMAÇÃO E MÃO NA MASSA
  25. 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. 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. 27. Postura ! Nós somos desenvolvedores, não somos “normais” ACEITE ISSO.. !!! Devemos ser agentes de Transformação e Criação.
  28. 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
  29. 29. Dúvidas ?
  30. 30. Contatos ● E-mail: – ricardo@criativasoft.com.br – rjlr@cin.ufpe.br ● Facebook – /ricardojlrufino
  31. 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. 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/)
  33. 33. Obrigado pela sua atenção.

×