EDGE COMPUTING NA PRÁTICA
COM IOT, MACHINE LEARNING E COM GOOGLE CLOUD
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz
Alvaro Viebrantz
@alvaroviebrantz
aviebrantz.com
Google Developer Expert for IoT
Product Engineer @ Leverege
Organizador do GDG Cuiabá e DevMT
ON PREMISE
5
Pilares
Disponibilidade Manutenção Escalável
Economia
6
O QUE É 

EDGE COMPUTING ?
QUANDO FAZ SENTIDO ?
TEMPO DE RESPOSTA
USO DE BANDA
FUNCIONAR OFFLINE
PRIVACIDADE
CUSTO
MÃO NA MASSA
VAMOS VER ISSO NA PRÁTICA
USANDO CAMERAS COMO SENSORES
16
Cameras como sensores
Projeto de Edge Computing
• Cameras com Wifi o mais barato possível
• Servidor local processando as imagens
• Detecção de objetos usando Machine Learning
• Enviar dados processados para a nuvem
• Fornecer interface web para ver localmente e remotamente
os dados
17
Arquitetura do Projeto
HARDWARE
19
ESP32 Cam Raspberry Pi 3
10$
FTDI
PROGRAMANDO AS CAMERAS
OBJETIVO
FORNECER AS IMAGENS
NA REDE LOCAL
22
24
ESP-IDF
SDK Oficial para programar micro-controladores da Espressif
• Várias coisas estão sendo lançadas usando essa SDK.
• esp32-camera — Drivers para cameras
• esp-who — Framework de visão computacional
• esp-adf — Trabalhar com audio
• esp-mdf — Redes mesh
25
26
Firmware das cameras
github.com/alvarowolfx/gcloud-iot-edge-tensorflow/tree/master/esp32-camera-firmware
• Conexão com a camera OV2640
• Endpoint HTTP para acesso a foto
• Serviço mDNS
• Para que as cameras possam ser encontradas na rede
local — {INSTANCE_NAME}.local/jpg
• Serviço _camera e protocolo _tcp
27
mDNS
Protocolo de descoberta na rede local
• http://indoor-camera-ec5d.local/jpg
• http://indoor-camera-60d8.local/jpg
DEMO TIME

MAY THE DEMO GODS BE WITH US
SETUP EM NUVEM
RECEBIMENTO DOS DADOS
GERENCIAMENTO DOS DISPOSITIVOS
https:!//cloud.google.com/iot/docs/how-tos/gateways/
COMUNICAÇÃO
AUTENTICAÇÃO E
AUTORIZAÇÃOPROTOCOLOS
MENSAGERIA - FILA DE
PROCESSAMENTO
GATEWAY LOCAL
OBJETIVO
BUSCAR IMAGENS, CLASSIFICAR E
ENVIAR PRA NUVEM
42
PODEMOS PROGRAMAR EM
QUALQUER LINGUAGEM
43
44
@tensorflow/models — npm package
Modelo prontos para serem usados
• Classificação e detecção de objetos
• Estimativa de posição
• Comandos de voz
45
Server local
github.com/alvarowolfx/gcloud-iot-edge-tensorflow/tree/master/edge-server
46
• Busca cameras usando mDNS — DeviceListener
• Detecta objeto nas imagens (Image Classifier)
• Tensorflow e o modelo cocossd
• Envia dados via mqtt para a nuvem (CloudIoTCoreGateway)
• Utiliza o modo Gateway do Cloud IoT Core
• Disponibiliza interface web que sincroniza usando socket.io
Server local
github.com/alvarowolfx/gcloud-iot-edge-tensorflow/tree/master/edge-server
47
48
49
50
51
52
53
PROCESSAMENTO DOS DADOS
PROGRAMAÇÃO
ORIENTADA A EVENTOS
NODEJS
PYTHON (BETA)
GOLANG (BETA)
ARMAZENAMENTO DOS DADOS
DADOS EM FORMA DE ÁRVORE - JSON
SDK PARA VÁRIAS LINGUAGENS
60
61
62
FIREBASE DEPLOY 🔥 🔥 🔥
VISUALIZAR OS DADOS
!64
!65
!66
!67
DEMO TIME

MAY THE DEMO GODS BE WITH US
TRABALHOS FUTURO
Estimar posição
Modelo Posenet
Treinar modelo customizado
Detectar pessoas especificas ou diferenciar meus gatos
Treinar modelo customizado
Detectar pessoas especificas ou diferenciar meus gatos
Enviar alertas
Definir regras para mandar mensagens — se uma classe for vista em um cômodo
OBRIGADO
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz

Edge computing na prática com IoT, Machine Learning e Google Cloud