SlideShare uma empresa Scribd logo
1 de 72
Baixar para ler offline
https://www.google.com/url?
sa=i&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWebAssembly&psig=AOvVaw01ph2uPKCm79kmbF
AW&ust=1594860562007000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCOCK-
dyEzuoCFQAAAAAdAAAAABAD
O que projetos de
IoT precisam ?
Alvaro Viebrantz
Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz
MOTIVAÇÃO DESSA TALK
HARDWARE
(COISA)
Hardware
O que define um dispositivo de IoT
• Entradas e Saidas
• GPIO
• Sensores
• Temperature, voltagem, distancia, gazes, audio, video, etc
• Atuadores
• Motores, luzes, displays, relé, etc
• Protocolos de comunicação
• Serial UART, I2C, SPI, I2S, CAN, etc
MICRO CONTROLADOR (MCU)
VS
SINGLE BOARD COMPUTER (SBC)
Micro controladores
Rodando as coisas “no metal”
• Frameworks
• Arduino, FreeRTOS, ZephyrRTOS, Mbed, etc
• Nativo do fabricante
• ESP-idf, STM Hal, nRF SDK
• Normalmente em C/C++
• Linguagens alto nivel
• MicroPython, Espruino, Rust embedded, TinyGo
• Prototipagem
8
9
ESP8266 👑
+ Ecossistema Arduino
+ Wifi embutido
ESP32 👑
+ Ecossistema Arduino
+ Wifi embutido
+ Bluetooth
+ Dual Core!!!
2$ 4$
Single Board Computers ( SBC )
Basicamente computadores de bolso
• Mais memória, mais CPU, gerenciamento de tarefas pelo SO
• Linux 👑
• Rode a linguagem que seu coração mandar
• Muita coisa em Python, NodeJS e Java
• Acesso ao hardware
• CPU Registers ou SYSFS
• Gateways, Edge Computing, Multimedia, etc
Raspberry Pi 4 👑
+ Ecossistema gigante
+ Wifi e Bluetooth embutido
+ Muito material na internet
+ CPU ARMv8 e 2~8Gb de ram
Orange Pi Zero 🍊
- Documentação ruim
+ Wifi e Bluetooth embutido
+ Muito barato
+ CPU ARMv6 e 512mb de ram
Onion Omega2
+ Low Profile
+ Larga escala
+ Wifi embutido
+ CPU MIPS e 64mb de ram
BeagleBone 🐶
Orange Pi Plus 2🍊
Raspberry Pi Zero 👑
Banana Pi M3 🍌
“É SÓ SAIR
PROGRAMANDO AGORA ?”
INFELIZMENTE
NÃO
Configuração dos dispositivos
Pontos importantes quando pensar no hardware
• ID do Dispositivo
• Setup Inicial
• Wifi, Bluetooth, Serial
• Provisionamento
• Atualização remota
• Reset de Fabrica
Design Final
Tem que parecer bonito pro usuário final
• Usar placas de prototipagem é valido ?
• Case
• Proteção pode depender do ambiente que vai ser instalado
• Placa de Circuito Impresso (PCB)
• Componentes (BOM)
• Otimizar custos e também prever demanda
• Montagem/Soldagem em larga escala
• Certificação
COMUNICAÇÃO
/ CONECTIVIDADE
Comunicação
Cada um tem uma aplicação diferente
• Depende de algumas variáveis
• Distância
• Energia
• Banda
• Custo
Comunicação - Camada Fisica
Formas de conectar dispositivos
• IP
• Ethernet
• WiFi
• Redes Celular - GPRS/3G
• Cat M1 / NB-IoT
• Satélite
• 6Lowpan (Bluetooth) /
OpenThread
• Protocolos
• TCP
• Socket, WebSocket
• HTTP, MQTT
• HTTP2/gRPC
• UDP
• Socket, CoAP, LwM2M
Comunicação - Camada Fisica
Formas de conectar dispositivos
• Não IP
• Bluetooth
• Zigbee / ZWave
• LoRa
• Sigfox
• Ultra-wide band
• RF em geral
• Protocolos
• LoRaWan
• Bluetooth LE
• Bluetooth Mesh
• Zigbee Cluster Library
• LoRa Mesh
Comunicação
Tradeoff de distância vs banda vs energia
IP VS NÃO IP
O QUE É IMPORTANTE AQUI
INFORMAÇÕES E SERVIÇOS
Coisas NuvemGateway
Bluetooth LE WiFi/3G
DADOS
Automação Residencial
Wifi, Zigbee, BLE, ZWave, RF
Monitoramento de ativos
Rede Celular, NB-IoT, Satellite, LoRa, Sigfox
Pagamentos
RFID, NFC e QRCode
Monitoramento de ativos indoor
RFID, Bluetooth LE, Ultra-wide band, Cameras
Sensoriamento Remoto
Zigbee, LoRa, NB-IoT, Sigfox
Serialização
Formato dos dados
• JSON
• XML
• Protocol Buffer
• Escova Bit
• CBOR
• Low Power Payload - LPP
BACKEND
NÃO EXISTE LINGUAGEM
MELHOR PRA IOT
NÃO EXISTE NUVEM
MELHOR PRA IOT
ALGUNS DETALHES
EM IOT
Modelagem e Armazenamento de dados
Dicas de como salvar dados de dispositivos de IoT
• Dado Atual / Tempo Real
• Series temporais ( Time Series ) e Eventos
• Associação
• Famosos CRUDs
• Lampada > Comodo > Casa > Usuario
• Rastreador > Veiculo > Frota > Empresa > Usuario
• Sensor > Silo > Fazenda > Usuario
• Poucos dados normalmente
Dados em Tempo Real
Como funciona e alguns bancos que podem ser utilizados
• Salva apenas último dado do dispositivo
• Pode ser o mesmo que o de associação
• Exemplos
• Firebase Realtime Database ( Não recomendo o Firestore nesse contexto )
• Clientes podem receber atualização em tempo real
• AWS Dynamo DB
• Elastic Search
• Mongo DB ( e outros orientados a documento )
Dados temporais e eventos/alertas
Como funciona e alguns bancos que podem ser utilizados
• Append Only - Apenas insira dados - Dados imutáveis
• Escolha um DB que escale de forma fácil e que tenho bom suporte a consultas
• Exemplos
• GCP BigQuery ( SQL )
• AWS Redshift ( SQL )
• Timescale DB ( PostgreSQL )
• InfluxDB
• SnowflakeDB
• MongoDB / ElasticSearch ( não tão bons pra consulta )
Dados de Associação
Como funciona e alguns bancos que podem ser utilizados
• Não tem muitas recomendações, escolha o que o seu coração mandar
• Fluxo de dados não é tão intenso quanto nos outros dois casos
• Exemplos
• Firebase / DynamoDB
• MySQL / Postgres
• ElasticSearch / MongoDB
ENVIO / RECEBIMENTO
DE DADOS
Autenticação e Autorização
Como seus dispositivos vão ser permitidos a se comunicar com seu backend
• Pode ser uma simples validação de Serial / ID do dispositivo
• Baseado em Token
• Par de chaves ( API Key/Secret )
• Chave/Certificado Assimétricos
• Muita gente esquece disso
• Ex: Usa broker mosquitto mas ele é bem ruim para adicionar auth em cima
• Afeta o processo de provisionamento que falamos antes
• Quanto essas chaves vão ser passadas pro device ?
Envio - Nuvem => Dispositivo
Como mandamos comandos para nosso dispositivo ?
• Depende do protocolo escolhido e da necessidade do projeto
• Exemplos
• MQTT e Websockets permitem comunicação em tempo real
• HTTP/CoAP - Dispositivo pode checar o backend de tempos em tempos
• LoRa / LoRaWan
• Rede Celular
• Integração com a rede celular para “acordar” o dispositivo
Recebimento - Dispositivo => Nuvem
Como mandamos dados para a nuvem
• Depende do protocolo escolhido
• Alta disponibilidade
• Não podemos perder dados importantes
• Deixar a camada bem fina e sem muita logica
• Com mensageria fica mais fácil
MENSAGERIA
FILA DE PROCESSAMENTO
Mensageria ⭐
Uma das melhores formas de escalar sistemas
• Jogue seus dados pra uma fila o mais cedo possível
• Ajuda a processar grande quantidade de dados
• Escalabilidade Horizontal
• Redução de perda de dados
• Exemplos
• Se estiver em nuvem, use o que tem lá - AWS SQS e GCP PubSub
• NSQ, NATS, RabbitMQ, Kafka
FRONT-END
Front End
Nada muito especial
• Web
• Escolha seu framework favorito
• Dá pra ser feliz com qualquer um
• Mobile
• Nativo
• Hibrido
• Flutter, React Native, Xamarin
• Administração / Back office
• CRUDzão
ANALISE DE DADOS
Visualização de Dados
Algumas ferramentas para monitorar os dispositivos
• Depende do banco que você escolheu para armazenar os dados temporais
• Exemplos
• Grafana
• PowerBI
• Tableau
• Google Data Studio
48
49
Machine Learning
Temos muitos dados, o que fazer com isso ?
• Manutenção preditiva
• Detecção de Imagens
• Análise de Sons/Audio
• Preenchimento de falhas
Edge Computing / Tiny ML
Rodar processamento na borda
• Faz muito sentido em entradas de Imagens/Audio
• Também em sensor com dados muito frequentes
• Acelerômetro, vibração, rotação
• Importantes em manutenção preditiva
• Reduzir banda/trafego de dados
• Privacidade
• Latência e Confiabilidade
• Faz muito sentido em entradas de Imagens/Audio
• Também em sensor com dados muito frequentes
• Acelerometro, vibração, rpm
• Importantes em manutenção preditiva
• Reduzir banda/trafego de dados
• Privacidade
• Latência e Confiabilidade
Edge Computing / Tiny ML
Rodar processamento na borda
Sparkfun Edge
“PARECE QUE
COMPLICADO HEIN”
AFINAL, O QUE UM
PROFISSIONAL DE IOT
PRECISA SABER ?
NÃO TENTE FAZER TUDO
Em alguns casos o hardware pode ser terceirizado
Pode existir soluções que já resolvam alguns problemas
• Rastreadores GPS/3G
• Software Traccar
• Placas da Particle
• Já vem com OTA e plataforma de gerenciamento de hardware
• Arduino está investindo em plataforma de IoT mais completa
• Tags Bluetooth/iBeacon prontas e gateways Wifi/BLE
• Sensores LoRa já prontos
• Busque por produtos LoraWan Certified
57
Produtos LoRa
Lista com vários fornecedores
Geralmente nuvem publicas não são soluções completas
De novo, não existe melhor nuvem para IoT
• Google Cloud, AWS e Azure tem soluções de comunicação com o dispositivo
• Autenticação e Autorização
• Broker MQTT
• Gateway HTTP
• Mas não vão muito além disso, você tem que construir
Terceirize a plataforma de IoT
As vezes sua especialidade é justamente em Hardware
• Things.io
• LoRa - The Things Network ( TTN )
• Tago e ProIoT ( BR )
• Thing Speak
• Arduino Cloud
• Particle Cloud
Terceirize a parte de Machine Learning
Algumas plataformas hoje facilitam como começar com isso
• AWS Sage Maker
• GCP AI Platform / Auto ML / Firebase ML
• Edge Impulse ⭐
EXEMPLOS E ARTIGOS
Estação meteorológica
Monitoramento de Qualidade do Ar
Como falar com Plantas usando IoT
Monitoramento de ativos via GPS e Rede Celular
Detector de
cheiros ruins
Braço Robotico controlado por Voz
Monitoramento indoor usando cameras e Machine Learning
Arquitetura Local
Front End - Local
Monitoramento de Barcos
Rede Celular, Múltiplos Sensors, Alertas e Escala Global
Obrigado!
aviebrantz.com
youtube.com/alvaroviebrantz
twitch.tv/alvaroviebrantz
Alvaro Viebrantz
Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz

Mais conteúdo relacionado

Mais procurados

Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudAlvaro Viebrantz
 
Arquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudArquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudAlvaro Viebrantz
 
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018Alvaro Viebrantz
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix BR
 
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaAzure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Conheça o Quarkus Java: Supersonic Subatomic Java
Conheça o Quarkus Java: Supersonic Subatomic JavaConheça o Quarkus Java: Supersonic Subatomic Java
Conheça o Quarkus Java: Supersonic Subatomic JavaMarcus Paulo
 
Codelab - Actions on Google
Codelab - Actions on GoogleCodelab - Actions on Google
Codelab - Actions on GoogleAlvaro Viebrantz
 
Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...Elo7
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglas Esteves
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com GrafanaAécio Pires
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionWalter Coan
 
Deu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesDeu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesEdson Marques Teixeira
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 
Backend do Iot com rethinkdb e python
Backend do Iot com rethinkdb e pythonBackend do Iot com rethinkdb e python
Backend do Iot com rethinkdb e pythonAfonso Coutinho
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasBruno Luiz Pereira da Silva
 

Mais procurados (20)

Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google Cloud
 
Arquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google CloudArquitetura de Internet das Coisas usando Google Cloud
Arquitetura de Internet das Coisas usando Google Cloud
 
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
Codelab - Google Cloud IoT Core e MongooseOS - I/O Extended Cuiabá 2018
 
Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do InteriorZabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
Zabbix Proxy com Raspberry Pi - 3º Zabbix Meetup do Interior
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na PráticaAzure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
Azure + Desenvolvimento Web | Minicurso Gratuito - Azure na Prática
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na Prática
 
Conheça o Quarkus Java: Supersonic Subatomic Java
Conheça o Quarkus Java: Supersonic Subatomic JavaConheça o Quarkus Java: Supersonic Subatomic Java
Conheça o Quarkus Java: Supersonic Subatomic Java
 
Codelab - Actions on Google
Codelab - Actions on GoogleCodelab - Actions on Google
Codelab - Actions on Google
 
Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...Automatizando a implantação e operação de aplicações conteinerizadas no...
Automatizando a implantação e operação de aplicações conteinerizadas no...
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 
Douglasesteves meetupzabbix
Douglasesteves meetupzabbixDouglasesteves meetupzabbix
Douglasesteves meetupzabbix
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Microsoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure functionMicrosoft Reactor Desenvolvimento serverless com azure function
Microsoft Reactor Desenvolvimento serverless com azure function
 
Deu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super PoderesDeu Match! - Azure DevOps e Seus Super Poderes
Deu Match! - Azure DevOps e Seus Super Poderes
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 
Backend do Iot com rethinkdb e python
Backend do Iot com rethinkdb e pythonBackend do Iot com rethinkdb e python
Backend do Iot com rethinkdb e python
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
 

Semelhante a O que projetos de IoT precisam ?

Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016Alexandre Cardoso
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Walter Coan
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLFernando Ike
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...WeOp - The Operations Summit
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Alvaro Viebrantz
 
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...tdc-globalcode
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational DatabasesMarcus Vinicius Miguel Pedro
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)Bruno Camara
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaJose Ricardo Maia Moraes
 
Redes Sem Fio Zigbee e Técnicas de RF
Redes Sem Fio Zigbee e Técnicas de RFRedes Sem Fio Zigbee e Técnicas de RF
Redes Sem Fio Zigbee e Técnicas de RFandrerasminio
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 

Semelhante a O que projetos de IoT precisam ? (20)

Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016Provocação Konker no 1º hackday FIESP 2016
Provocação Konker no 1º hackday FIESP 2016
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
Integração: IoT Central + CosmosDB + Power BI - Dicas, desafios e boas práticas.
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
IoT Frameworks
IoT FrameworksIoT Frameworks
IoT Frameworks
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Como funciona a Internet
Como funciona a InternetComo funciona a Internet
Como funciona a Internet
 
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
 
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
TDC2018SP | Trilha JavaScript - Criando solucoes de IoT usando Javascript de ...
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
As Falácias e os Desenganos no Desenvolvimento de Software (TechDays 2005)
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da Latencia
 
Redes Sem Fio Zigbee e Técnicas de RF
Redes Sem Fio Zigbee e Técnicas de RFRedes Sem Fio Zigbee e Técnicas de RF
Redes Sem Fio Zigbee e Técnicas de RF
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 

Mais de Alvaro Viebrantz

End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfAlvaro Viebrantz
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathonsAlvaro Viebrantz
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and GoAlvaro Viebrantz
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine LearningAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudAlvaro Viebrantz
 
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloConstruindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTAlvaro Viebrantz
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoAlvaro Viebrantz
 
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligenteInternet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligenteAlvaro Viebrantz
 
WebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a WebWebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a WebAlvaro Viebrantz
 
From Zero to App - Usando React e Firebase
From Zero to App  - Usando React e Firebase From Zero to App  - Usando React e Firebase
From Zero to App - Usando React e Firebase Alvaro Viebrantz
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Alvaro Viebrantz
 
Ferramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataFerramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataAlvaro Viebrantz
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Alvaro Viebrantz
 

Mais de Alvaro Viebrantz (16)

End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathons
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and Go
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google Cloud
 
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloConstruindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoT
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente Embarcado
 
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligenteInternet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
Internet das coisas - Conectando seus dispositivos à nuvem de forma inteligente
 
WebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a WebWebUSB e WebBluetooth - Conectando seu Hardware a Web
WebUSB e WebBluetooth - Conectando seu Hardware a Web
 
From Zero to App - Usando React e Firebase
From Zero to App  - Usando React e Firebase From Zero to App  - Usando React e Firebase
From Zero to App - Usando React e Firebase
 
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
Android things, Inteligência Artificial e Máquinas de Doces - Android Dev Con...
 
Ferramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataFerramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big Data
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces
 

O que projetos de IoT precisam ?

  • 3.
  • 5. Hardware O que define um dispositivo de IoT • Entradas e Saidas • GPIO • Sensores • Temperature, voltagem, distancia, gazes, audio, video, etc • Atuadores • Motores, luzes, displays, relé, etc • Protocolos de comunicação • Serial UART, I2C, SPI, I2S, CAN, etc
  • 6. MICRO CONTROLADOR (MCU) VS SINGLE BOARD COMPUTER (SBC)
  • 7. Micro controladores Rodando as coisas “no metal” • Frameworks • Arduino, FreeRTOS, ZephyrRTOS, Mbed, etc • Nativo do fabricante • ESP-idf, STM Hal, nRF SDK • Normalmente em C/C++ • Linguagens alto nivel • MicroPython, Espruino, Rust embedded, TinyGo • Prototipagem
  • 8. 8
  • 9. 9 ESP8266 👑 + Ecossistema Arduino + Wifi embutido ESP32 👑 + Ecossistema Arduino + Wifi embutido + Bluetooth + Dual Core!!! 2$ 4$
  • 10. Single Board Computers ( SBC ) Basicamente computadores de bolso • Mais memória, mais CPU, gerenciamento de tarefas pelo SO • Linux 👑 • Rode a linguagem que seu coração mandar • Muita coisa em Python, NodeJS e Java • Acesso ao hardware • CPU Registers ou SYSFS • Gateways, Edge Computing, Multimedia, etc
  • 11. Raspberry Pi 4 👑 + Ecossistema gigante + Wifi e Bluetooth embutido + Muito material na internet + CPU ARMv8 e 2~8Gb de ram Orange Pi Zero 🍊 - Documentação ruim + Wifi e Bluetooth embutido + Muito barato + CPU ARMv6 e 512mb de ram Onion Omega2 + Low Profile + Larga escala + Wifi embutido + CPU MIPS e 64mb de ram
  • 12. BeagleBone 🐶 Orange Pi Plus 2🍊 Raspberry Pi Zero 👑 Banana Pi M3 🍌
  • 15. Configuração dos dispositivos Pontos importantes quando pensar no hardware • ID do Dispositivo • Setup Inicial • Wifi, Bluetooth, Serial • Provisionamento • Atualização remota • Reset de Fabrica
  • 16. Design Final Tem que parecer bonito pro usuário final • Usar placas de prototipagem é valido ? • Case • Proteção pode depender do ambiente que vai ser instalado • Placa de Circuito Impresso (PCB) • Componentes (BOM) • Otimizar custos e também prever demanda • Montagem/Soldagem em larga escala • Certificação
  • 18. Comunicação Cada um tem uma aplicação diferente • Depende de algumas variáveis • Distância • Energia • Banda • Custo
  • 19. Comunicação - Camada Fisica Formas de conectar dispositivos • IP • Ethernet • WiFi • Redes Celular - GPRS/3G • Cat M1 / NB-IoT • Satélite • 6Lowpan (Bluetooth) / OpenThread • Protocolos • TCP • Socket, WebSocket • HTTP, MQTT • HTTP2/gRPC • UDP • Socket, CoAP, LwM2M
  • 20. Comunicação - Camada Fisica Formas de conectar dispositivos • Não IP • Bluetooth • Zigbee / ZWave • LoRa • Sigfox • Ultra-wide band • RF em geral • Protocolos • LoRaWan • Bluetooth LE • Bluetooth Mesh • Zigbee Cluster Library • LoRa Mesh
  • 22. IP VS NÃO IP O QUE É IMPORTANTE AQUI
  • 23. INFORMAÇÕES E SERVIÇOS Coisas NuvemGateway Bluetooth LE WiFi/3G DADOS
  • 25. Monitoramento de ativos Rede Celular, NB-IoT, Satellite, LoRa, Sigfox
  • 27. Monitoramento de ativos indoor RFID, Bluetooth LE, Ultra-wide band, Cameras
  • 29. Serialização Formato dos dados • JSON • XML • Protocol Buffer • Escova Bit • CBOR • Low Power Payload - LPP
  • 34. Modelagem e Armazenamento de dados Dicas de como salvar dados de dispositivos de IoT • Dado Atual / Tempo Real • Series temporais ( Time Series ) e Eventos • Associação • Famosos CRUDs • Lampada > Comodo > Casa > Usuario • Rastreador > Veiculo > Frota > Empresa > Usuario • Sensor > Silo > Fazenda > Usuario • Poucos dados normalmente
  • 35. Dados em Tempo Real Como funciona e alguns bancos que podem ser utilizados • Salva apenas último dado do dispositivo • Pode ser o mesmo que o de associação • Exemplos • Firebase Realtime Database ( Não recomendo o Firestore nesse contexto ) • Clientes podem receber atualização em tempo real • AWS Dynamo DB • Elastic Search • Mongo DB ( e outros orientados a documento )
  • 36. Dados temporais e eventos/alertas Como funciona e alguns bancos que podem ser utilizados • Append Only - Apenas insira dados - Dados imutáveis • Escolha um DB que escale de forma fácil e que tenho bom suporte a consultas • Exemplos • GCP BigQuery ( SQL ) • AWS Redshift ( SQL ) • Timescale DB ( PostgreSQL ) • InfluxDB • SnowflakeDB • MongoDB / ElasticSearch ( não tão bons pra consulta )
  • 37. Dados de Associação Como funciona e alguns bancos que podem ser utilizados • Não tem muitas recomendações, escolha o que o seu coração mandar • Fluxo de dados não é tão intenso quanto nos outros dois casos • Exemplos • Firebase / DynamoDB • MySQL / Postgres • ElasticSearch / MongoDB
  • 39. Autenticação e Autorização Como seus dispositivos vão ser permitidos a se comunicar com seu backend • Pode ser uma simples validação de Serial / ID do dispositivo • Baseado em Token • Par de chaves ( API Key/Secret ) • Chave/Certificado Assimétricos • Muita gente esquece disso • Ex: Usa broker mosquitto mas ele é bem ruim para adicionar auth em cima • Afeta o processo de provisionamento que falamos antes • Quanto essas chaves vão ser passadas pro device ?
  • 40. Envio - Nuvem => Dispositivo Como mandamos comandos para nosso dispositivo ? • Depende do protocolo escolhido e da necessidade do projeto • Exemplos • MQTT e Websockets permitem comunicação em tempo real • HTTP/CoAP - Dispositivo pode checar o backend de tempos em tempos • LoRa / LoRaWan • Rede Celular • Integração com a rede celular para “acordar” o dispositivo
  • 41. Recebimento - Dispositivo => Nuvem Como mandamos dados para a nuvem • Depende do protocolo escolhido • Alta disponibilidade • Não podemos perder dados importantes • Deixar a camada bem fina e sem muita logica • Com mensageria fica mais fácil
  • 43. Mensageria ⭐ Uma das melhores formas de escalar sistemas • Jogue seus dados pra uma fila o mais cedo possível • Ajuda a processar grande quantidade de dados • Escalabilidade Horizontal • Redução de perda de dados • Exemplos • Se estiver em nuvem, use o que tem lá - AWS SQS e GCP PubSub • NSQ, NATS, RabbitMQ, Kafka
  • 45. Front End Nada muito especial • Web • Escolha seu framework favorito • Dá pra ser feliz com qualquer um • Mobile • Nativo • Hibrido • Flutter, React Native, Xamarin • Administração / Back office • CRUDzão
  • 47. Visualização de Dados Algumas ferramentas para monitorar os dispositivos • Depende do banco que você escolheu para armazenar os dados temporais • Exemplos • Grafana • PowerBI • Tableau • Google Data Studio
  • 48. 48
  • 49. 49
  • 50. Machine Learning Temos muitos dados, o que fazer com isso ? • Manutenção preditiva • Detecção de Imagens • Análise de Sons/Audio • Preenchimento de falhas
  • 51. Edge Computing / Tiny ML Rodar processamento na borda • Faz muito sentido em entradas de Imagens/Audio • Também em sensor com dados muito frequentes • Acelerômetro, vibração, rotação • Importantes em manutenção preditiva • Reduzir banda/trafego de dados • Privacidade • Latência e Confiabilidade
  • 52. • Faz muito sentido em entradas de Imagens/Audio • Também em sensor com dados muito frequentes • Acelerometro, vibração, rpm • Importantes em manutenção preditiva • Reduzir banda/trafego de dados • Privacidade • Latência e Confiabilidade Edge Computing / Tiny ML Rodar processamento na borda Sparkfun Edge
  • 54. AFINAL, O QUE UM PROFISSIONAL DE IOT PRECISA SABER ?
  • 56. Em alguns casos o hardware pode ser terceirizado Pode existir soluções que já resolvam alguns problemas • Rastreadores GPS/3G • Software Traccar • Placas da Particle • Já vem com OTA e plataforma de gerenciamento de hardware • Arduino está investindo em plataforma de IoT mais completa • Tags Bluetooth/iBeacon prontas e gateways Wifi/BLE • Sensores LoRa já prontos • Busque por produtos LoraWan Certified
  • 57. 57 Produtos LoRa Lista com vários fornecedores
  • 58. Geralmente nuvem publicas não são soluções completas De novo, não existe melhor nuvem para IoT • Google Cloud, AWS e Azure tem soluções de comunicação com o dispositivo • Autenticação e Autorização • Broker MQTT • Gateway HTTP • Mas não vão muito além disso, você tem que construir
  • 59. Terceirize a plataforma de IoT As vezes sua especialidade é justamente em Hardware • Things.io • LoRa - The Things Network ( TTN ) • Tago e ProIoT ( BR ) • Thing Speak • Arduino Cloud • Particle Cloud
  • 60. Terceirize a parte de Machine Learning Algumas plataformas hoje facilitam como começar com isso • AWS Sage Maker • GCP AI Platform / Auto ML / Firebase ML • Edge Impulse ⭐
  • 64. Como falar com Plantas usando IoT
  • 65. Monitoramento de ativos via GPS e Rede Celular
  • 68. Monitoramento indoor usando cameras e Machine Learning Arquitetura Local
  • 69. Front End - Local
  • 70.
  • 71. Monitoramento de Barcos Rede Celular, Múltiplos Sensors, Alertas e Escala Global
  • 72. Obrigado! aviebrantz.com youtube.com/alvaroviebrantz twitch.tv/alvaroviebrantz Alvaro Viebrantz Google Developer Expert for IoT and Product Engineer at Leverege aviebrantz.com @alvaroviebrantz