arduinoday 2015 - opendevice
Post on 18-Jul-2015
223 Views
Preview:
TRANSCRIPT
Computação Física, Plataformas, Comunicação, APIsOpenDevice - Plataforma para IoT (Internet das Coisas)
Ricardo JL Rufinorjlr@cin.ufpe.br
ricardo@criativasoft.com.br
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
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.
Internet das Coisas
● Que coisas são essas ?– Computadores– Smart Phones– Tablets– Sensores– Roupas– Pessoas– Pode ser o que você quiser ! Até cidades !
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
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 ;)
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
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 ??
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
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 ?
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...
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 ?
OpenDeviceOpen IoT (Internet Of Things) Platform and Framework.
“Conjunto de ferramentas e APIs para construção de soluções de Internet das Coisas”
OpenDeviceOpen 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.
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)
Event-driven and Real-Time
Você não precisa consultar a informação, ela vem até você quando os dados estiverem disponíveis
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 de REST
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
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
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
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
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
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/)
top related