O documento apresenta uma arquitetura de Internet das Coisas utilizando serviços do Google Cloud como Cloud IoT Core, Cloud PubSub, Firebase e BigQuery para receber, processar e analisar dados de dispositivos conectados. Exemplos de casos de uso incluem monitoramento meteorológico e de lixeiras inteligentes.
5. 5
Pilares em IoT
Exemplo de uma arquitetura no caso de uma pulseiras de exercícios
Coisas Nuvem
Dados Informações e serviços
Gateway
Bluetooth LE WiFi/3G
6. 6
O hardware é apenas o começo
IoT é muito mais que apenas o hardware
7. 7
IoT é serviço
O importante não é o hardware, mas o que você entrega
15. 15
Cloud IoT Core
Serviço gerenciado global para conectar e gerenciar de forma segura dispositivos
Protocol Bridge
Comunicação
Gerenciamento de dispositivos
19. 19
Cloud IoT Core - Gerenciamento
Provisionar dispositivos e controle individual
• APIs para manipulação dos dispositivos e provisionamento
• CRUD dos dispositivos
• Possibilita automação
20. 20
Cloud IoT Core - Comunicação
Via protocolos conhecidos - MQTT e HTTP
• Diferenças entre MQTT e HTTP
• MQTT permite fazer subscrição das mensagens recebidas
• HTTP tem que ficar buscando de forma explicita
• MQTT é mais leve e trafega menos dados na rede, porém fica conectado o tempo todo
• Comunicação Bidirecional
• Existem algumas restrições nisso
• Dados só podem ser enviados pelo dispositivo como telemetry ou state messages
21. • Token gerado a partir dos certificados digitais
• Chaves privada no dispositivo
• Chave pública cadastrada no Google Cloud
• Formato bem conhecido de autorização - RFC 7519
• Algoritmos suportados para criptografia
• ES256 - ECDSA e SHA-256
• RS256 - RSA e SHA-256
• Devem expirar em 1 hora e tem tolerância de 10 min com o Time Server do Google
21
Cloud IoT Core - Comunicação
Autenticação/Autorização usando JSON Web Token (JWT)
22. 22
Cloud IoT Core - Comunicação
Autenticação/Autorização via HTTP
• Para chamadas HTTP deve ser colocado no Header
• Para obter configurações:
https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/
registries/{registry-id}/devices/{deviceid}/config?local_version={VERSION}
23. 23
Cloud IoT Core - Comunicação
Autenticação/Autorização via HTTP
• Para enviar dados:
https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/
registries/{registry-id}/devices/{deviceid}:publishEvent
24. 24
Cloud IoT Core - Comunicação
Parâmetros de Autenticação/Autorização via MQTT
• Host: mqtt.googleapis.com:8883
• User: vazio (não é verificado)
• Pass: token JWT
• Client ID:
projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}
devices/{deviceid}/config
devices/{deviceid}/events
devices/{deviceid}/state
Dispositivo
SUB PUB
PUB
25. 25
Provisionamento com MongooseOS e Cloud IoT Core
Associando o hardware ao projeto no Google Cloud
• O MongooseOS consegue fazer isso automagicamente.
• Obter o ID do Device e cadastra-lo no Cloud IoT Core.
• Gerar par de certificados, associar no GCloud a chave pública e gravar no device a chave
privada.
• Configurar endpoint MQTT no device para usar o broker do Cloud IoT Core
• Fazer todo o trabalho de autenticação usando JWT
26. 26
Cloud PubSub
Espinha dorsal do Google Cloud. Serviço de Mensageria
• Gerenciado pelo Google
• Escalabilidade automática
• Garantia de entrega
• Conectado com muitos produtos
do Google Cloud
27. We need a database
27
Opções com alta escalabilidade e voltados para BigData
28. 28
BigQuery
Opções para o armazenamento massivo de dados
• Data warehouse de baixo custo
• Gerenciado pelo Google e
escalabilidade automática
• Interface SQL ANSI de consulta e
suporte a vários softwares de BI no
mercado
• Append Only - Dados imutáveis
• Gratuito até 1TB por mês analisado e
10GB de dados
29. 29
Firebase Realtime Database
Armazenamento e sincronização em tempo real
• Dados em forma de árvore
• Sincronização em tempo real entre os
clientes
• SDK para várias linguagens
• O Firebase possui todo um
ecossistema de produtos voltado a
desenvolvimento de apps
30. Como processar os dados
30
Opções com gerenciadas para processamento de dados
32. • Workers recebendo dados via PubSub
• Podem rodar em uma maquina virtual na nuvem
• Cloud Compute Engine
• Kubernetes Engine
• Não é tão simples de escalar automaticamente
• Pode ser feito em qualquer linguagem
32
Faça você mesmo / Compute Engine
Crie uma máquina virtual e processo os dados você mesmo
44. 44
Deploy das Firebase Cloud Functions
Apenas rode um simples comando e sua função está online - firebase deploy
45. Como visualizar e analisar os dados
45
Opções com gerenciadas para analise de dados
46. 46
Cloud DataLab
Obter insight dos dados armazenados
• Baseado no projeto open source Jupyter
Notebook
• Totalmente gerenciado
• Muito usado para DataScience e Machine
Learning em Python
• Analise e visualize os dados
• Gratuito
• Apenas os serviços extras são cobrados
47. 47
Google Data Studio
Obter insight dos dados armazenados
• Ferramenta para visualização de
dados
• Diversas fontes de dados
• SQL, Google Analytics, BigQuery,
Arquivos CSV, etc
• User friendly
• Gratuito
51. 51
O que mais posso fazer ?
Essa arquitetura se aplica vários outros casos.
52. Monitoramento de ativos via GPS e Rede Celular
!52
Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT
Acesse: bit.ly/gcloud-asset
53. Monitoramento de ativos via GPS e Rede Celular
!53
Outro post pessoal foi para o blog do Google Cloud sobre Arquitetura IoT
• ESP32 + GPS + GSM
• Aqui é mostrado como configurar
remotamente o dispositivo.
• Trocar tempo entre mensagens
• MongooseOS tem suporte à modem GSM de
forma transparente
Acesse: bit.ly/gcloud-asset
54. 54
Firestore
Armazenamento e sincronização em tempo real
• NoSQL orientado a documento
• Mais flexível para fazer consultas e
separar as entidades do que Firebase
• Datastore + Firebase
• Sincronização em tempo real entre os
clientes
• SDK para várias linguagens
56. Leverege - Monitoramento inteligente de lixeiras na cidade
!56
www.leverege.com/usecases/waste-management-solution
57. Leverege - Monitoramento inteligente de lixeiras na cidade
!57
www.leverege.com/usecases/waste-management-solution
58. Leverege - Monitoramento inteligente de lixeiras na cidade
!58
www.leverege.com/usecases/waste-management-solution
59. Leverege - Monitoramento de inteligente de lixeiras na cidade
!59
Arquitetura do projeto
https://www.leverege.com/usecases/waste-management-solution