Internet das Coisas com Java e Things API

36
Globalcode – Open4education Internet das Coisas com Java e Things API Vinicius Senger Fundador da Globalcode e Criador Things-API.org

description

Palestra apres

Transcript of Internet das Coisas com Java e Things API

Page 1: Internet das Coisas com Java e Things API

Globalcode – Open4education

Internet das Coisas com Java e Things API

Vinicius SengerFundador da Globalcode e Criador Things-API.org

Page 2: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Agenda

• Introdução• Internet das Coisas• Stand-alone e Things Gateway• Things-API.org• Demonstrações

Page 3: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Vinicius Senger

E-mail [email protected]

Twitter @vsenger

Fundador da Globalcode

Pesquisas e Inovação

Desenvolvimento de produtos

Vendedor de muambas de arduino:Www.eletronlivre.com.br

Page 4: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Introdução

Raiz da Internet:Sistemas de teletexto TELESP – 1200 Bits por segundo

Bulletin Board System BBS – 14.400 / 28.800 BPS

Page 5: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Histórico da Internet

ARPANET: 1a rede de troca de pacotesUniversidade da Califórnia L.A. (UCLA)

Standford

Universidade da Califórnia Santa Bárbara (UCSB)

Universidade de UTAH

X.25, UUCP, Usenet e vários outros!

Page 6: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Internet Protocol Suite

Link Layer: ethernet

Internet Layer: IP

Transport Layer: TCP

Application Layer: HTTP, FTP, SNMP, etc.

Page 7: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Abrangência da Internet

1. Universidades

2. Empresas de tecnologia

3. Pessoas de tecnologia

4. Computadores nas casas pessoas

5. Computadores das pessoas

6. Múltiplos computadores das pessoas

7. Coisas Internet of Things!

Page 8: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Internet das coisas

Estima-se que a Internet das coisas terá mais de 20 bilhões de devices em 2020!

Page 9: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Quais coisas?

Celulares Televisores, vídeo-games, Carros Robots Luzes, portões, portas, eletrodomésticos Caneta, anel, roupa, colar Sensores, Plantas Coisas caras

Page 10: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

A “Coisa” - Thing

Application Programming Interface

Computador + Comunicação + Protocolo

Page 11: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Computador da Coisa

Computador Pequeno: Geralmente um microcontrolador

Baixo consumo de energia; Bare metal / dedicado / real time; Mais fácil de ligar sensores; Oferece portas GPIO: digitais, analógica, PWM Trabalha com protocolos de comunicação de

hardware: SPI, I2C, UART e outros;

Page 12: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Comunicação

Ethernet Wifi 3G ZigBee RFID NFC Bluetooth USB

Page 13: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Protocolo

TCP/IP: HTTP / HTTPs, WebService

UDP/IP: OSC, SNMP

Serial, Zigbee, Bluetooth e outros são específicos;

Page 14: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Exemplos

Arduino + Ethernet shield + Sensor Presença

Raspberry PI + Wifi + Interface Automação

Arduino + bluetooth + controle de motor + robot

Garrafa de vinho rara + sensor temperatura + RFID + leitor RFID conectado na Internet

Page 15: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Devices em Evidência

Arduino: bare metal, simples e popular;

Raspberry.PI: ARM based Linux U$ 40

Electric Imp: ARM Wireless Sparkfun U$ 29

Cinterion Java ME 3g chip: U$ 5

Page 16: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Stand-alone e Gateway

Stand-alone Things: coisas que vivem na internet com um endereço IP fixo;

Gateway Things: servidores que se comunicam com coisas em protocolos específicos e as expõe para a Internet;

Page 17: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Stand-alone Thing

Possuí um computador + rede TCP/IP:Ethernet, Wireless ou 3G

Conectados na internet ou intranet;

Custo e consumo de energia mais alto;

ComputadorRede

Energia

Stand-alone Thing

Page 18: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Gateway Things

São “servidores de coisas”;

Se comunicam com coisas próximas (ou não!) e as expõe na Internet;

Proxy para coisas não TCP/IP:USB / Serial

ZigBee

Infravermelho

Bluetooth

Page 19: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Gateway Things

Servidor Java EE

Thing #2Sensor Temperatura

Thing #3Robot aspirador pó

Things Gateway

ZigBee Bluetooth

Thing #1Luzes / Portão Casa

Ethernet

Page 20: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Java e Internet of Things

Java EE: excelente plataforma para fazer gateway e cloud-side da IoT. Dispositivos gigantes!;

Java SE: dispositivos grandes;

Java SE Embedded: dispositivos médios;

Java Clone: ?

Java ME: dispositivos pequenos;

Java Card: dispositivos minúsculos.

Page 21: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Java e Internet of Things

Múltiplos sistemas operacionais

Múltiplos tipos de computadores

Múltiplas linguagens

Múltiplas ofertas

BILHÕES de dispositivos Java:3 bilhões de Java ME – só phones

Alguns milhões de Java ME não fone

Algumas centenas de milhões de Java CARD

Milhões e milhões de servidores e desktops Java

Page 22: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Evolução do “jHome Automation” projeto premiado “Oracle Innovation Award”

1ª API para Internet das coisas

Abstração para diferentes hardwares, meios de comunicação e protocolos!

Concebida em Java mas com interface interoperável para outras linguagens;

Page 23: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Things Gateway: servidor Java EE que representa seu gateways de coisas na internet;

Things-API.Java: parte principal do projeto com a API que pode ser utilizada com Java SE, FX e EE;

Things-API.NET, JS, Python, PHP: não existem ainda, alguém topa?

Page 24: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Things-API.JavaAbstração Simples:

Device: é a coisa

Componentes: parte da coisa

Componente = Input / Output:Input = Sensor : luz, temperatura, presença, aceleração;

Output = Atuador : motor, led, relé, som;

Sensores = leitura

Atuadores = escrita

Page 25: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Things-API.JavaIP: suporte para devices IP

Serial e Bluetooth: suporta devices bluetooth e serial / USB com protocolo simples de referência;

Page 26: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Things Gateway:Aplicativo Java EE Web simples: 4 servlets

Utiliza a Things API e expõe as “coisas” na Internet;

Forma de tornar a comunicação mais segura;

Pode ser instalado em devices como:Gateway de home automation

Raspberry PI

Beagle Board

Page 27: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: Things GatewayControlando um device USB via Gateway

Acessando Devices e Componentes via URL

Page 28: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: jHome AutomationControlando lâmpadas

Controlando LED coloridos

Monitorando sensores com jQuery

Page 29: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: Sound ProcessingControlando coisas com uma flauta

Page 30: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Things4JavaME: permite criar aplicativos para feature phone que acessam coisas IP e Bluetooth;

Things4Arduino: coisas com Arduino;

Things4Android: aplicativo para controle de coisas do Gateway via Android

Things4Twitter: controle de coisas via Twitter

jHome Automation: aplicativo de referência para automação residencial

Page 31: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: AndroidControlando Home automation com Android

Page 32: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: Feature PhoneThings Mobile:

Controlando Robot com Nokia E71

Page 33: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

DEMONSTRAÇÃO: KinectControlando coisas com Kinect

Page 34: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

CONCLUSÕES

Internet das coisas já está acontecendo!

Plataforma Java é bastante ampla para IoT;

Mais e mais redes de sensores;

Segurança de informação e comunicação sem fio ainda são pontos não resolvidos;

Mercado para health care, hobbies, automação e muitas outras oportunidas;

Page 35: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Things-API.org

Links e Referências

www.things-api.org

Lançamento em breve!

Envie e-mail para acesso antecipado:

[email protected]

Page 36: Internet das Coisas com Java e Things API

Globalcode – Open4education

@vsenger

Obrigado!

Perguntas e respostas;

[email protected]

Twitter @vsenger