INICIANDO COM LORATHE THINGS NETWORK E 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
Youtuber
Novidades semanais 

sobre IoT
youtube.com/c/AlvaroViebrantz
COMUNICAÇÃO
5
Comunicação
Formas de conectar dispositivos
• Redes cabeadas
• Ethernet, Fibra ótica, Coaxial, etc
• Redes sem Fio e Radio Frequência
• Wifi, Bluetooth, Zigbee, Z-Wave
• Rede Celular, Radio AM/FM, Satellite
• Curta distância
• RFID, NFC, BLE, QRCode
6
Comunicação sem Fio
Mais usados em contexto de IoT
• Cada um tem uma aplicação diferente
• Depende de algumas variáveis
• Distância
• Energia
• Banda
• Custo
7
Comunicação
Tradeoff de distância vs banda vs energia
8
Novos padrões de comunicação sem Fio
Para atender demanda das aplicações de IoT
• LoRa
• NB-IoT
• CatM1
• 5G
• Sigfox
Automação Residencial
Wifi, Zigbee, BLE, ZWave, RF
Monitoramento de ativos
Rede Celular, Satellite, LoRa, Sigfox
Pagamentos
RFID, NFC e QRCode
Sensoriamento Remoto
Zigbee, LoRa, Sigfox
O QUE É 

LORA AFINAL ?
14
LoRa
Long Range
• Longa Distância de operação
• 5 ~ 15 KM
• Banda ~ 27kbps
• Frequência sub gigahertz
• 137 a 1020 mhz
• Apenas camada física (PHY)
• Essa parte é proprietária - pertence a empresa Semtech
15
Frequências de operação
Muito importante levar em consideração
• Usa banda ISM - Não precisa licença para operação
• Industrial, Scientific and Medical band - 433, 868 e 915 MHz
• Existem restrições de uso por país
• www.thethingsnetwork.org/docs/lorawan/frequency-plans.html
• EU863-870 (Europa), US902-928 (EUA), CN470-510 (China), AU915-928
(Australia e Brasil), AS920-923 ( Japão, Malásia, Singapura) e outros
• No Brasil é mais especifico entre 915~928 MHz
NÃO PRECISA DE LICENÇA
MAS PRECISA DE HOMOLOGAÇÃO
17
LoRa Chips
Rádios base que a Semtech desenvolve
• Para nó final - 1 canal por vez
• SX1278 - 433mhz
• SX1276 - 868 e 915mhz
• Para gateways - múltiplos canais
• SX1301 (indoor) e SX1308 (outdoor)
• Todos os outros módulos são baseados neles
18
Módulos LoRa
Usam o SX127x como base
Murata
CMWX1ZZABZ
RFM95W
Microchip
RN2903
19
Plaquinhas com LoRa
Pra prototipar mais rápido
ESP32 Lora (SX127x)
PyCom
(ESP32 + SX127x)
Arduino MKR1300 WAN

(Murata)
Adafruit Feather Lora M0
(RFM95W)
20
Porque escolher LoRa ?
Alguns pontos de escolha
• É uma ótima escolha aqui no Brasil
• Território muito vasto
• Agricultura
• Longo alcance
• Baixo consumo de energia
• Infraestrutura flexível
• Comunidade muito forte
21
LoRa Alliance
Aliança para crescimento da tecnologia
• Sem fins lucrativos
• +500 empresas envolvidas
• Promove o conceito LPWAN
• Low Power Wide Area Network
• Responsável pelo padrão aberto LoRaWan
22
Produtos LoRa
Lista com vários fornecedores
LORAWHAT ?
24
LoRaWAN
Camada de cima de LoRa ou FSK
• Ponte entre dispositivos LoRa e internet
• Mais restrito em termos de banda
• Pacotes de 51 bytes ou 222 bytes ( com overhead de 13 bytes )
• Quanto menos melhor, o recomendado é 12 bytes
• Não use json, xml ou plain text — Pacotes binários ou LPP(mais a frente)
• Segurança - Pacotes criptografados - AES 128 bits
25
Arquitetura LoRaWAN
Partes envolvidas
26
Arquitetura LoRaWAN
Partes envolvidas
• Pacotes / Mensagens
• Nós
• Classes, Spreading Factor e Data Rate
• Gateways
• App/Network Server
• Sua aplicação
27
Pacotes
Tipos que podem ser utilizados
• Uplink
• Device ➡Gateway ➡ App server
• Downlink
• App server ➡Gateway ➡ Device
• Mas em teoria os End Nodes dormem boa parte do tempo 🤔
28
Formatos de Pacotes
Algumas formas de enviar os dados com LoRa
• Faça você mesmo
• Monta o pacote em bytes e
faz o decode no seu servidor
• Cayenne Low Power Payload
• Define um padrão de 

Canal + Tipo + Dados
• Várias libs que implementam
29
End nodes
Detalhes de transmissão e recepção
• Classe A
• Dispositivo abre uma janela de recepção de downlink depois de transmitir um uplink
• Classe B
• Janelas de tempo fixo de recebimento, tem que estar com tempo sincronizado com
servidor
• Classe C
• Mantem janela de recebimento aberto o tempo todo, exceto quando está transmitindo
30
End nodes
Spreading Factor e Data Rate
• Lembram do Tradeoff de uso de banda e energia ?
• Potência de transmissão - Afeta distância e uso de energia
• Spreading Factor (redundância) e Data Rate (banda)
• Esses determinam o quão rápida a informação é transmitida
• ⬆ Data Rate = ⬇ Spreading Factor = ⬆ Banda = ⬆ Taxa de erros
• ⬇ Data Rate = ⬆ Spreading Factor = ⬇ Banda = ⬇ Taxa de erros
• Existem limites por região
31
Gateways LoRa
Ponte entre LoRa e Internet
Kerlink Multitech Conduit Dragino LG-01
RAK831
32
Provisionamento de End nodes
Habilitar comunicação na rede LoRa
• OTAA - Over-the-Air Activation
• Chaves de segurança geradas por sessão entre o Device e o Gateway
• Endereçamento dinâmico
• ABP - Activation by Personalization
• Chaves de segurança fixas
• Endereçamento fixo
• Ambos necessitam passos de provisionamento para apontar para sua aplicação
• É importante pensar nisso quando for fazer um produto final
33
LoRaWAN
Faça sua própria infra
• LoraServer.io
• Opensource
• Gateway e App Server LoRaWAN
34
LoRaWAN
Infraestrutura feita por empresas
35
LoRaWAN
Infraestrutura feita por empresas
• Comcast MachineQ
• CoreKinect
36
The Things Network (TTN)
LoRaWAN construido pela comunidade
• Projeto com intuito de cobrir o
mundo com rede LoRaWAN
• Uso aberto
• Gateways colocados pela
comunidade
37
Politica de uso justo da TTN
LoRaWAN construido pela comunidade
• Algumas regras de ouro
• 30 segundos de “Airtime” - Métrica de tempo de transmissão
• Em média com pacotes de 10 bytes :
• 20 mensagens for dia com SF7
• 500 mensagens por dia com SF12
• Seguindo isso, cada gateway aguenta +1000 nós
MÃO NA MASSA
VAMOS VER ISSO NA PRÁTICA
COM SENSORIAMENTO REMOTO
40
Monitorar qualidade do ar
Sensores de CO2, TVoc e temperature
• End Nodes
• Sensores enviando dados via LoRa
• Gateway LoRa intermediando
• LoRaWAN server com The Things Network e Integrações
• Processando dados via Google Cloud
• Cloud Functions, Firebase e BigQuery
41
Arquitetura do Projeto
HARDWARE
43
Adafruit Feather
Lora M0
Dragino LG-01
25$
70$
CCS811
10$
44
PROGRAMANDO OS NÓS
OBJETIVO
LER SENSORES
E ENVIAR VIA LORA
47
48
Arduino
Ecossistema de Hardware e Software para aplicações embarcadas
• Simplicidade
• Muitos exemplos de uso de LoRa
• Disponibilidade de bibliotecas
49
50
Firmware dos nós
github.com/alvarowolfx/gcloud-lora-ttn/tree/master/firmware
• Bibliotecas usadas:
• TinyLora - LoRaWAN
• CayenneLPP
• SparkFun CCS811 Arduino Library
• Arduino Low Power e RTCZero - Deep Sleep
CONFIGURANDO GATEWAY
OBJETIVO
PONTE LORAWAN
53
Dragino - Setup com TTN
Redirecionador de pacotes LoRa para TTN
• wiki.dragino.com/index.php?title=Connect_to_TTN
• Atualização do software e Firmware do radio LoRa
• Registro na TTN
• Seleção de região e frequência
• router.br.thethings.network
• 916.8 Mhz
SETUP NO
THE THINGS NETWORK
55
Setup com TTN
É possivel extender as funcionalidades da TTN
• Algumas integrações prontas
• Repassar dados via HTTP
• Foi a integração escolhida
SETUP EM NUVEM
RECEBIMENTO DOS DADOS
NODEJS
PYTHON
GOLANG
PROGRAMAÇÃO
ORIENTADA A EVENTOS
60
GOLANG
61
• Recebe dados da TTN via HTTP
• Parse dos dados
• Armazenamento
• Real time no Firebase
• Histórico no BigQuery
Cloud Functions
github.com/alvarowolfx/gcloud-lora-ttn/tree/master/functions
62
DEPLOY 🔥 🔥 🔥
ARMAZENAMENTO DOS DADOS
64
DADOS EM FORMA DE ÁRVORE - JSON
SDK PARA VÁRIAS LINGUAGENS
DATA WAREHOUSE DE BAIXO CUSTO
APPEND ONLY - DADOS IMUTÁVEIS
INTERFACE SQL
FREE TIER - 1TB ANALISADO E 10GB DE DADOS
PAGUE POR USO
VISUALIZAR OS DADOS
72
!73
TRABALHOS FUTURO
Testes de Distância
Com apenas o gateway simples
https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwiXxtTCk-
_hAhVaHbkGHX_DA4IQjRx6BAgBEAU&url=https%3A%2F%2Fwww.cooking-hacks.com%2Fdocumentation%2Ftutorials%2Fextreme-
range-lora-sx1272-module-shield-arduino-raspberry-pi-intel-
galileo&psig=AOvVaw0vixERdcfxbKZQX8HZP1ZB&ust=1556415978941788
Dashboard Web
Replicar funcionalidades do Cayenne My Devices
App em Flutter
Dashboard dos dados
COMO COMEÇAR ?
Blog posts
Tutoriais com arquitetura completa de IoT e Google Cloud
Blog posts
Tutoriais com arquitetura completa de IoT e Google Cloud
OBRIGADO
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz

Iniciando com LoRa, The Things Network e Google Cloud