Comunicação entre dispositivos IoT 
Trilha – Internet das Coisas 
Globalcode – Open4education 
Jorge Maia
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
Globalcode – Open4education 
@CrazyTechGuys
Agenda 
Contexto IoT 
Dispositivo 
Comunicação entre dispositivo e “clientes” 
Uso de MQTT com .NET 
Um projeto exemplo (Farol) 
Globalcode – Open4education
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
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
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
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/
Globalcode – Open4education 
NetDuino 
Fonte: http://netduino.com/
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/
Globalcode – Open4education 
1999 ? 
“Meados de 1980, 
Carnegie Mellon University, Pensilvânia."
Globalcode – Open4education 
IOT (Internet of Things)
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
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...
Globalcode – Open4education 
UX 
Usuário em primeiro lugar 
Conforto 
Praticidade 
Tecnologia Adequada 
Objetivo Claro 
http://www.helloerik.com/
Fibaro Smoke Sensor – disponível em : 
http://www.youtube.com/watch?v=50QGfkdUtns&feature=c4-overview&list=UURTX4A0btp062eRjcqmoEdg 
Globalcode – Open4education
Globalcode – Open4education 
IOT (Internet of Things) 
O que Você quer Fazer?
Globalcode – Open4education 
IOT (Internet of Things) 
Arquitetura típica para 
aplicativos de IoT 
http://msdn.microsoft.com/pt-br/ 
magazine/hh852591.aspx
Globalcode – Open4education 
IOT (Internet of Things) 
Desafios 
Segurança 
Privacidade 
Infraestrutura (dados) 
Futuro 
Miniaturização 
Diminuição de custos 
Teleoperações e 
Telepresença 
Integração de Sensores
Globalcode – Open4education 
Comunicação de Dados 
M2M
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/
Globalcode – Open4education 
Aplicação
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
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/
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
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
Backend ? Cloud? 
Necessitamos desconhecer a conexão 
(onipresença) 
Precisamos escalar 
Elasticidade 
Leve / Confiável 
Clientes por toda parte 
Globalcode – Open4education
Globalcode – Open4education 
Uma Idéia
Globalcode – Open4education 
Código e 
Demonstração…
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education 
Muito Obrigado! 
www.jorgemaia.com.br 
www.facebook.com/jorgeasmaia 
@jorgemaia

Comunicação de Dispositivos IoT com MQTT

  • 1.
    Comunicação entre dispositivosIoT Trilha – Internet das Coisas Globalcode – Open4education Jorge Maia
  • 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
  • 3.
  • 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/
  • 9.
    Globalcode – Open4education NetDuino Fonte: http://netduino.com/
  • 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/
  • 11.
    Globalcode – Open4education 1999 ? “Meados de 1980, Carnegie Mellon University, Pensilvânia."
  • 12.
    Globalcode – Open4education IOT (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/
  • 16.
    Fibaro Smoke Sensor– disponível em : http://www.youtube.com/watch?v=50QGfkdUtns&feature=c4-overview&list=UURTX4A0btp062eRjcqmoEdg Globalcode – Open4education
  • 17.
    Globalcode – Open4education IOT (Internet of Things) O que Você quer Fazer?
  • 18.
    Globalcode – Open4education IOT (Internet of Things) Arquitetura típica para aplicativos de IoT http://msdn.microsoft.com/pt-br/ magazine/hh852591.aspx
  • 19.
    Globalcode – Open4education IOT (Internet of Things) Desafios Segurança Privacidade Infraestrutura (dados) Futuro Miniaturização Diminuição de custos Teleoperações e Telepresença Integração de Sensores
  • 20.
    Globalcode – Open4education Comunicação de Dados M2M
  • 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/
  • 22.
  • 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 SmallMessage 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
  • 28.
  • 29.
    Globalcode – Open4education Código e Demonstração…
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    Globalcode – Open4education Muito Obrigado! www.jorgemaia.com.br www.facebook.com/jorgeasmaia @jorgemaia

Notas do Editor

  • #25 “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.