O documento discute comunicação entre dispositivos IoT, introduzindo conceitos como MQTT, brokers de mensagens e aplicações de exemplo. É apresentada a arquitetura típica de aplicativos IoT e desafios como segurança, privacidade e integração de sensores.
2. Jorge Maia
Cientista da Computação;
20+ anos entre TI e Dev
Últimos 6 com uso de metodologias ágeis;
Especialista em Desenvolvimento, Arquitetura e ALM
Entusiasta de Hardware e sistemas reconfiguráveis;
Fundador do CrazyTechGuys;
Globalcode – Open4education
4. Agenda
Contexto IoT
Dispositivo
Comunicação entre dispositivo e “clientes”
Uso de MQTT com .NET
Um projeto exemplo (Farol)
Globalcode – Open4education
5. Globalcode – Open4education
Arduino
Plataforma eletrônica
Open-Source, baseada
em um conceito de
Software e Hardware
de fácil utilização.
Desenvolvida para ser
utilizada por qualquer
um que tenha
interesse em criar seu
próprio sistema
hardware/software
6. Globalcode – Open4education
Arduino
A partir do projeto original, foram criados diversos
projetos (open-source ou não, boards, Shields,
periféricos), que podem ser usados nos mais
diversos projetos
Ethernet
Usb
GPS
GPRS
Wi-Fi
7. Globalcode – Open4education
NetDuino
Placa Microcontrolada
ST Micro 32 Bits
168 MHz
384 KB – Memória para
codificação
I/O digitais e analogicas;
Leds e Push Button
PWM e RS232
Comunicação Ethernet
8. Globalcode – Open4education
NetDuino
100% integrada ao
Visual Studio (2013 –
beta 4.3)
Micro Framework .Net
4.3
Programação em C#
Orientação a Objetos
Facilmente utilizável e
facilmente
“debugável”
Custo Baixo
Fonte: http://fabienroyer.wordpress.com/2012/04/04/nwazet-modules-
for-netduino-go/
10. Globalcode – Open4education
IOT (Internet of Things)
Também chamada de
IoE (Internet of
Everything)
Objetos e aparelhos
ligados a Internet
Informação, estado e
controle sobre objetos
Comunicação entre
pessoas e dispositivos
e dispositivos-dispositivos
Carros, Casas,
Relógios, Geladeiras
(?)...
Fonte: http://edition.cnn.com/2013/05/02/travel/london-city-airport-
internet-of-things/
13. Globalcode – Open4education
IOT (Internet of Things)
Alguns dos grandes players
do Mercado se
movimentando, como a Intel,
com o lançamento do Quark
(microprocessador voltado
para IoT).
Além disso, lançaram a
plataforma de desenvolvimento
Galileo.
Windows Embedded – Build
2014
http://www.intel.com.br/content/www/br/pt/do
-it-yourself
14. Globalcode – Open4education
IOT (Internet of Things)
Google movimentou
bastante o mercado
de IoT, ao comprar a
Nest, por U$ 3,2 Bi
Termostato, detecção
de fumaça e carbono
Nest tinha menos de
4 anos
Nest Já Adquiriu a
Dropcam...
15. Globalcode – Open4education
UX
Usuário em primeiro lugar
Conforto
Praticidade
Tecnologia Adequada
Objetivo Claro
http://www.helloerik.com/
21. Globalcode – Open4education
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/
23. Globalcode – Open4education
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-873f-
607d87787327/entry/tc_overview?lang=en
24. Globalcode – Open4education
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.eureka-time.
com/fr/author/loughlin/
25. RSMB
“Really Small Message Broker”
Broker de mensagens MQTT produzido de modo
gratuito pela IBM (não é “open Source”)
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
Globalcode – Open4education
26. RSMB x Mosquitto
O Mosquitto é um outro Broker, com funções
semelhantes as do RSMB
Controlado atualmente pela Eclipse, o Mosquitto é
free e tem código aberto
Globalcode – Open4education
27. Backend ? Cloud?
Necessitamos desconhecer a conexão
(onipresença)
Precisamos escalar
Elasticidade
Leve / Confiável
Clientes por toda parte
Globalcode – Open4education
“At most once” (no máximo uma): as mensagens são entregues de acordo com as melhores condições da rede TCP/IP. Normalmente utilizado em comunicações com sensores onde não importa aquela leitura individual se a próxima será recebida logo em seguida
“At least once” (pelo menos uma): as mensagens tem sua entrega garantida, mas duplicatas podem ocorrer
“Exactly one” (exatamente Uma): Garantia de entrega de apenas uma mensagem. Normalmente usados em sistemas de pagamento, onde mensagens duplicadas ou a não chegada delas acarreta em perdas.