ArduinoDay 2015 - OpenDevice

603 visualizações

Publicada em

Slides da Apresentação no ArduinoDay 2015 sobre o OpenDevice, uma ferramenta para construção de projetos de IoT (Internet das Coisas) como Automação Residencial, Monitoramento de Sensores, Smart City.
---
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.

Publicada em: Dispositivos e hardware
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

ArduinoDay 2015 - OpenDevice

  1. 1. Computação Física, Plataformas, Comunicação, APIs OpenDevice - Plataforma para IoT (Internet das Coisas) Ricardo JL Rufino rjlr@cin.ufpe.br ricardo@criativasoft.com.br
  2. 2. 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
  3. 3. 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.
  4. 4. Internet das Coisas
  5. 5. Internet das Coisas ● Que coisas são essas ? – Computadores – Smart Phones – Tablets – Sensores – Roupas – Pessoas – Pode ser o que você quiser ! Até cidades !
  6. 6. 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
  7. 7. Momento Atual
  8. 8. 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 ;)
  9. 9. “A Internet das Coisas vai mudar o mundo completamente.”F U T U R O Hu – Yoshida ( CTO Hitachi )
  10. 10. Linha 1 Linha 2 Linha 3 Linha 4 0 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
  11. 11. 1 Linha 1 Linha 2 Linha 3 Linha 4 0 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 ??
  12. 12. 1 Linha 1 Linha 2 Linha 3 Linha 4 0 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
  13. 13. 1 Linha 1 Linha 2 Linha 3 Linha 4 0 2 4 6 8 10 12 Coluna 1 Coluna 2 Coluna 3 Alternativas com JAVA ? Esse não podemos reclamar ! Rede / TCP / IP ?
  14. 14. Linha 1 Linha 2 Linha 3 Linha 4 0 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ção Lidar com detalhes de baixo nível Correção de Erros Precisa ter uma boa experiência Etc.. etc...
  15. 15. Linha 1 Linha 2 Linha 3 Linha 4 0 2 4 6 8 10 12 Coluna 1 Coluna 2 Coluna 3 Solução ? Quem pode nos ajudar ?
  16. 16. OpenDevice Open IoT (Internet Of Things) Platform and Framework. “Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”
  17. 17. OpenDevice Open IoT (Internet Of Things) Platform and Framework. “Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”
  18. 18. OpenDevice ● Apis e Ferramentas que permitem construir sistemas de: – Automação Residencial – Monitoramento de Sensores – Monitoramento de Energia – Controle de Robôs – Smart City
  19. 19. 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.
  20. 20. 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.
  21. 21. Tecnologias Envolvidas
  22. 22. 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)
  23. 23. Visão Geral
  24. 24. Event-driven and Real-Time Você não precisa consultar a informação, ela vem até você quando os dados estiverem disponíveis
  25. 25. Hands-On/Of Uma pitada de java...
  26. 26. Blink - Arduino * C / Arduino
  27. 27. Blink - Arduino * C / Arduino Outras opções.....
  28. 28. Blink – Java (Arduino Style)
  29. 29. Blink - Java (mais livre)
  30. 30. Blink Java (Comandos)
  31. 31. 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
  32. 32. Adicionando Rest ! Adicione essa linha e seja feliz !!! Você pode acessar pelo navegador … ou com JavaScript !
  33. 33. 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
  34. 34. Api JavaScript para WebSocket
  35. 35. 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
  36. 36. Instalação ● Adicionar o repositório da Sonatype
  37. 37. 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
  38. 38. 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
  39. 39. HORÁRIO RESERVADO À PROGRAMAÇÃO E MÃO NA MASSA
  40. 40. Postura ! Nós somos desenvolvedores, não somos “normais” ACEITE ISSO.. !!! Devemos ser agentes de Transformação e Criação.
  41. 41. 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
  42. 42. Dúvidas ?
  43. 43. Contatos ● E-mail: – ricardo@criativasof.com.br – rjlr@cin.ufpe.br ● Facebook – /ricardojlrufino
  44. 44. 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
  45. 45. 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/)
  46. 46. Obrigado pela sua atenção.

×