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!