Slides

Transcrição

Slides
CRIANDO UM DISPOSITIVO IOT DO ZERO:
HARDWARE, COMUNICAÇÃO E SERVIÇOS NA
WEB
Jorge Maia
 Cientista da Computação;
 20+ anos entre TI e Dev
 Consultor Especialista em Desenvolvimento,
Arquitetura e ALM
 Empreendedor e desenvolvedor de produtos
e dispositivos IoT;
www.jorgemaia.com.br
@CrazyTechGuys
Agenda
Internet das Coisas
O que precisamos para criar nosso
dispositivo
 Nosso dispositivo codificado
Internet das Coisas
“Coisas conectadas,
conversando entre si, sem
intervenção de humanos”
“Surgiu em 1999, criado por
Kevin Ashton (MIT)”
“Meados de 1980,
Carnegie Mellon University, Pensilvânia."
https://www.cs.cmu.edu/~coke/history_long.txt
Previsões
Segundo o Gartner:
30
25
20
15
Bilhões de Coisas
Conectadas
10
5
0
2013
2014
2015
2020
http://www.gartner.com/newsroom/id/2905717
Enquanto Isso na Vida Real
Vamos ao Trabalho
Conexão (meio) com a
WEB
Hardware
Dispositivo
Comunicação / Forma
de Troca de
informações
Cliente, Dashboard, …
Conexão
Hardware
Pense sempre em começar por uma plataforma de
desenvolvimento
– Benchmarks confiáveis
– Comunidade
– Possibilidade de prototipar e iniciar produção sem retrabalho
Arduino e seus “filhos”
Raspberry Pi
Spark Core
Spark Eletron
Intel Galileo
LilyPad Arduino
Escolha a plataforma / ferramenta
de acordo com seu projeto, não
se apaixone pelas tecnologias e
marcas!
Sensores
Placa para protótipos e projetos
Globalcode IoT Surfboard
APIs? HTTP?
Serviços de dados móveis de
nuvens?
Protocolos lightweight?
Comunicação?
http://tinkerman.eldiariblau.net/the-rentalito/
MQTT
• “Message Queue Telemetry
Transport” (Fila de transporte
de mensagens de telemetria)
• Criado em 1999 pelo Dr. Andy
Stanford-Clark da IBM e Arlen
Nipper da Arcom (hoje
Eurotech)
• Protocolo para troca de
mensagens M2M/IOT
• Comunicação Assíncrona
• Extremamente leve e simples
de ser implementado
• Usa um modelo que envolve
um “Broker” e um “Client”
Fonte:
http://mganis.blogspot.com.br/
Aplicação
MQTT
• Desenvolvido
para dispositivos
com restrição de
banda de
comunicação
• Muito utilizado
em conexões
com localizações
remotas,
aplicações
mobile.
Fonte: https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f607d87787327/entry/tc_overview?lang=en
MQTT
• O protocolo MQTT inclui:
– Padrão publish/subscribe que provê distribuição de mensagens de
um-para-muitos e desacoplamento de aplicações
– Transporte de mensagem sem preocupação com o conteúdo da
mensagem
– Uso de TCP/IP para conexão básica de rede
– Mecanismo para avisar aos “interessados” sobre uma desconexão
anormal de um cliente
– Header de 2 bytes;
– Três níveis de QoS para entrega de mensagens:
Fonte: http://www.eurekatime.com/fr/author/loughlin/
RSMB
• “Really Small Message Broker”
• Broker de mensagens MQTT produzido pela
IBM
• O RSMB permite fazer a conexão com outros
brokers RSMB assim como com outros
servidores que usem o MQTT
• Ocupa apenas 80 KB de HD e 200 KB ou
menos de RAM, fazendo-o ideal para
aplicações em ambientes de pouca memória
Mosquitto
• O Mosquitto é um outro Broker, com
funções semelhantes as do RSMB, ou
seja um broker de MQTT
• Projeto Eclipse, o Mosquitto é open
source
Demonstração
• Vamos demonstrar um semáforo simples.
• Utilizando MQTT como protocolo para troca
de informações
• Broker RSMB rodando em uma Worker Role
no Microsoft Azure
• Hardware netduino plus 2
• Cliente ASP.NET MVC
Nosso Hardware
Demonstração
http://jorgemaiaqconsp.azurewebsites.net
@jorgemaia
www.jorgemaia.com.br
Facebook.com/jorgeasmaia
Muito Obrigado!