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

O que projetos de IoT precisam ?

  • 1.
  • 2.
  • 4.
  • 5.
    Hardware O que defineum 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.
  • 7.
    Micro controladores Rodando ascoisas “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.
    9 ESP8266 👑 + EcossistemaArduino + 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 PiPlus 2🍊 Raspberry Pi Zero 👑 Banana Pi M3 🍌
  • 13.
  • 14.
  • 15.
    Configuração dos dispositivos Pontosimportantes quando pensar no hardware • ID do Dispositivo • Setup Inicial • Wifi, Bluetooth, Serial • Provisionamento • Atualização remota • Reset de Fabrica
  • 16.
    Design Final Tem queparecer 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
  • 17.
  • 18.
    Comunicação Cada um temuma aplicação diferente • Depende de algumas variáveis • Distância • Energia • Banda • Custo
  • 19.
    Comunicação - CamadaFisica 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 - CamadaFisica 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
  • 21.
  • 22.
    IP VS NÃOIP O QUE É IMPORTANTE AQUI
  • 23.
    INFORMAÇÕES E SERVIÇOS CoisasNuvemGateway Bluetooth LE WiFi/3G DADOS
  • 24.
  • 25.
    Monitoramento de ativos RedeCelular, NB-IoT, Satellite, LoRa, Sigfox
  • 26.
  • 27.
    Monitoramento de ativosindoor RFID, Bluetooth LE, Ultra-wide band, Cameras
  • 28.
  • 29.
    Serialização Formato dos dados •JSON • XML • Protocol Buffer • Escova Bit • CBOR • Low Power Payload - LPP
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    Modelagem e Armazenamentode 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 TempoReal 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 eeventos/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 Comofunciona 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
  • 38.
  • 39.
    Autenticação e Autorização Comoseus 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
  • 42.
  • 43.
    Mensageria ⭐ Uma dasmelhores 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
  • 44.
  • 45.
    Front End Nada muitoespecial • 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
  • 46.
  • 47.
    Visualização de Dados Algumasferramentas para monitorar os dispositivos • Depende do banco que você escolheu para armazenar os dados temporais • Exemplos • Grafana • PowerBI • Tableau • Google Data Studio
  • 48.
  • 49.
  • 50.
    Machine Learning Temos muitosdados, 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 muitosentido 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
  • 53.
  • 54.
    AFINAL, O QUEUM PROFISSIONAL DE IOT PRECISA SABER ?
  • 55.
  • 56.
    Em alguns casoso 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 comvários fornecedores
  • 58.
    Geralmente nuvem publicasnã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 plataformade 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 partede Machine Learning Algumas plataformas hoje facilitam como começar com isso • AWS Sage Maker • GCP AI Platform / Auto ML / Firebase ML • Edge Impulse ⭐
  • 61.
  • 62.
  • 63.
  • 64.
    Como falar comPlantas usando IoT
  • 65.
    Monitoramento de ativosvia GPS e Rede Celular
  • 66.
  • 67.
  • 68.
    Monitoramento indoor usandocameras e Machine Learning Arquitetura Local
  • 69.
  • 71.
    Monitoramento de Barcos RedeCelular, Múltiplos Sensors, Alertas e Escala Global
  • 72.
    Obrigado! aviebrantz.com youtube.com/alvaroviebrantz twitch.tv/alvaroviebrantz Alvaro Viebrantz Google DeveloperExpert for IoT and Product Engineer at Leverege aviebrantz.com @alvaroviebrantz