webinar: introdução à internet das coisas na aws
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
David Reis
20 de julho de 2016
AWS IoTAprendendo a usar o serviço
Webinar de hoje
Visão geral do AWS IoT
Como criar uma solução usando o serviço
Vídeo
AWS IoT
SDK PARA
DISPOSITIVOSConjunto de bibliotecas para
conectar, autenticar e trocar
mensagens
DEVICE
GATEWAYComunicação com
dispositivos via MQTT
e HTTP
AUTENTICAÇÃO
AUTORIZAÇÃOProteger com autenticação
mútua e criptografia
MOTOR DE
REGRASTransformar
mensagens com base
em regras e rotear para
os serviços da AWS
Serviços da AWS
- - - - -Serviços da 3P
DEVICE SHADOWEstado persistente durante
conexões intermitentes
APLICATIVOS
API do
AWS IoT
DEVICE REGISTRYIdentidade e gerenciamento
das suas coisas
Segurança e identidade
AUTENTICAÇÃO
AUTORIZAÇÃOProteger com autenticação
mútua e criptografia
APLICATIVOS
API do
AWS IoT
Segurança e identidade
Autenticação mútua usando TLS
Permissões granulares por meio de políticas
Segurança para Internet padrão
Device Gateway
APLICATIVOS
API do
AWS IoT
DEVICE
GATEWAYComunicação com
dispositivos via MQTT
e HTTP
Device Gateway
Protocolos padrão – MQTT / HTTP / Websockets
Front-end da AWS para dispositivos
Escalável, conexões de longa duração
Seguro por padrão – certificados X509, TLS 1.2
Arquitetura baseada em tópicosedificio3/resfriadores/unidade5
edificio3/motores/unidade9
edificio1/resfriadores/unidade1
Device Registry
APLICATIVOS
API do
AWS IoT
DEVICE REGISTRYIdentidade e gerenciamento
das suas coisas
Device Registry
$ aws --region us-east-1 iot describe-thing --thing-name pump1
{
"attributes": {
"MN": "AB776",
"install_date": "12-23-2011",
"SN": "225458854"
},
"thingName": "pump1",
"defaultClientId": "pump1"
}
Device Shadow
API do
AWS IoT
DEVICE SHADOWEstado persistente durante
conexões intermitentes
APLICATIVOS
Device Shadow
{
"state" : {
“desired" : {
"lights": { "color": "RED" },
"engine" : "ON"
},
"reported" : {
"lights" : { "color": "GREEN" },
"engine" : "ON"
},
"delta" : {
"lights" : { "color": "RED" }
} },
"version" : 10
}
Coisa
Reportar o estado atual para um ou vários shadows
Recuperar o estado desejado do shadow
Aplicativo móvel
Definir o estado desejado de um dispositivo
Obter o último estado registrado do dispositivo
Excluir o shadow
Shadow
Shadow registra os estados delta, desejado
e registrado com os metadados e a versão
Device Shadow{
"state" : {
“desired" : {
"engine" : "ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"reported" : {
"engine" : ”OFF”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"version" : 10
}
Device Shadow{
"state" : {
“desired" : {
"engine" : "ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"reported" : {
"engine" : ”OFF”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"delta" : {
”engine" : “ON”
} },
"version" : 10
}
"engine" : ”ON”
Device Shadow{
"state" : {
“desired" : {
"engine" : "ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"reported" : {
"engine" : ”OFF”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"delta" : {
”engine" : “ON”
} },
"version" : 10
}
"engine" : ”OFF”
Device Shadow{
"state" : {
“desired" : {
"engine" : "ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"reported" : {
"engine" : ”OFF”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"delta" : {
”engine" : “ON”
} },
"version" : 10
}
"engine" : "ON”
Device Shadow{
"state" : {
“desired" : {
"engine" : "ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"reported" : {
"engine" : ”ON”,
“tires”: {
“LF”:40,
“RF”:38,
“LR”:37,
“RR”:39
},
“CCD”: {
“A”:0,
“B”:8,
“C”:7,
“D”:9
}
},
"version" : 10
}
"engine" : "ON”
Motor de Regras
API do
AWS IoT
MOTOR DE
REGRASTransformar
mensagens com base
em regras e rotear para
os serviços da AWS
Motor de Regras
building1/chillers/xx881
building1/fans/aj982
building3/chillers/ks434
building1/radiators/ss243
building2/chillers/fe324
"sql": "SELECT * FROM 'building1/#'"
"actions": [{ "dynamoDB":….
Motor de Regras
building1/chillers/xx881
building1/fans/aj982
building3/chillers/ks434
building1/radiators/ss243
building2/chillers/fe324
"sql": "SELECT * FROM '+/chillers/+' WHERE coolant < 20"
"actions": [{"lambda":{"functionArn":...
{"sns":{"topicArn":...
Motor de Regras
Integrações
• DynamoDB
• Kinesis
• Lambda
• S3
• SNS
• Firehose
• SQS
• Republish (AWS IoT)
• Machine Learning
• Elasticsearch Service
Transformações
• arredondamento
• máximo/mínimo
• trigonometria - seno/cosseno/tangente
• MD5
• concatenação
• substituir
• ID do cliente
• tokens de tópico
SDKs para Dispositivos
C-SDK
RTOS, μControllers
JS-SDK
Plataformas
Linux
embarcadas
Arduino Yún
Arduino
SDKs móveis
Android e iOSJava Python
novo novo
Kits para iniciantes
Criação de um caso de uso de IoT
Caso de Uso – Bomba da Piscina
• Caso real de um cliente
• Controlar um dispositivo
• Conectividade intermitente
• Notificação quando sincronizado
Caso de uso – Visão geral da arquitetura
AWS IoT
Device
Shadow
RegraSNS
Aplicativo (console)
Dispositivo
Caso de uso – Bomba da piscina
Demonstração ao vivo da criação desse caso de uso.
Vídeo de hardware
Alguma dúvida depois do webinar?
Página geral
http://aws.amazon.com/iot/
Guia do desenvolvedor
http://docs.aws.amazon.com/iot/latest/developerguide
Fórum do AWS IoT
https://forums.aws.amazon.com/forum.jspa?forumID=210
Thank you!Obrigado!