Domótica DIY comunicações-m2m

68
Domótica DIY (com comunicações M2M/IoT) João Paulo Barraca [email protected]

Transcript of Domótica DIY comunicações-m2m

Page 1: Domótica DIY comunicações-m2m

Domótica DIY (com comunicações M2M/IoT)

João Paulo Barraca [email protected]

Page 2: Domótica DIY comunicações-m2m

DomusImagem: Flickr, zarprey

Page 3: Domótica DIY comunicações-m2m

RobóticaImagem: Flickr, si-mocs

Page 4: Domótica DIY comunicações-m2m

Do it Your SelfImagem: Flickr, johanneshjensen

Page 5: Domótica DIY comunicações-m2m

Do it Your Selfcréditos: Nuno Ferreira

Page 6: Domótica DIY comunicações-m2m

Do it Your Self

Page 7: Domótica DIY comunicações-m2m

M2M

Page 8: Domótica DIY comunicações-m2m

IoT

Page 9: Domótica DIY comunicações-m2m

Objetivos

Melhorar conforto

Temperatura, luz…

Facilitar a vida

Automação portões, rega…

Alarmística

Page 10: Domótica DIY comunicações-m2m

Arquitectura

1. Gateway !

3. Dispositivos !

5. Comunicações !

7. Plat. Agregação !

9. Visualização

Page 11: Domótica DIY comunicações-m2m

Soluções Comerciais

Muita fragmentação

São “estáveis”

São verticais

Não interoperam

Algo caras

Page 12: Domótica DIY comunicações-m2m

Imagem: http://pc2av.com/automation/

Page 13: Domótica DIY comunicações-m2m

Soluções DIY

Não são estáveis!

Adaptadas aos casos de utilização

Limitadas pelo conhecimento de quem as desenvolve

Crescem à medida das necessidades

Page 14: Domótica DIY comunicações-m2m

Soluções DIY

Muito mais baratas

Altamente educativas

Possibilidade de interagir com soluções comerciais ;)

Page 15: Domótica DIY comunicações-m2m

Primeiros Passos

Page 16: Domótica DIY comunicações-m2m

Interagir com sistemas existentes

Lista de material:

Campainha com RF

Arduino

Receptor 433Mhz

Page 17: Domótica DIY comunicações-m2m

Campainha

Compostas por 2 sistemas: !

Detetor-Emissor Botão ou sensor magnético !

Rádio Alto-Falante

Page 18: Domótica DIY comunicações-m2m

Campainha

Comunicação via RF 433.92Mhz

Sistema barato = comunicação simples :)

Modulação On Off Keying (OOK)

Nome complexo para enviar 1s e 0s de forma simples

Page 19: Domótica DIY comunicações-m2m

Campainha OOKO nossa melhor amiga: Dongle USB DVB-T

Recebe RF entre 24Mhz e ~1700Mhz

Permite visualizar sinais

Page 20: Domótica DIY comunicações-m2m

Campainha OOK

Page 21: Domótica DIY comunicações-m2m

Campainha OOK

01

Page 22: Domótica DIY comunicações-m2m

OOK em detalhe

Page 23: Domótica DIY comunicações-m2m

OOK em detalhe

Page 24: Domótica DIY comunicações-m2m

Campainha OOK

1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0

01

Page 25: Domótica DIY comunicações-m2m

Campainha OOK

1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 0

01

!

!

Na realidade não sabemos se um impulso longo é 0 ou 1

!

Mas para uma campainha isso não interessa :)

!

Page 26: Domótica DIY comunicações-m2m

Campainha OOKDispositivos diferentes emitem identificadores diferentes

Page 27: Domótica DIY comunicações-m2m

Campainha OOKFiabilidade? Claro, Múltiplas transmissões!

2, 6, 8, 10 vezes…. ou um CRC no final

Mensagem 1 Mensagem 2 …

Page 28: Domótica DIY comunicações-m2m

Arduino

Imagem: arduino.cc

Page 29: Domótica DIY comunicações-m2m

RX/TX 433 OOK

Fornece/Aceita dados num único pin

Não necessita de configuração

Receptor Emissor

Page 30: Domótica DIY comunicações-m2m

Código

pulseIn(pin, tipo, timeout)

!

Devolve o tempo de um impulso num pin

tipo HIGH: tempo que esteve a 1

tipo LOW: tempo que esteve a 0

timeout: tempo limite para esperar

Devolve zero se não for detectado um impulso

Page 31: Domótica DIY comunicações-m2m

Código#define RX_PIN 3 #define MAX_VALORES 50 !uint16_t valores[MAX_VALORES]; byte num_valores = 0; !void setup(){ pinMode(RX_PIN, INPUT); Serial.begin(9600); }

Page 32: Domótica DIY comunicações-m2m

Códigovoid loop(){ !! uint16_t tempo = pulseIn(RX_PIN, HIGH, 10000); valores[num_valores++] = tempo; if(num_valores == MAX_VALORES || tempo == 0){ imprime(valores, num_valores); num_valores = 0; } !!}

Page 33: Domótica DIY comunicações-m2m

Códigovoid imprime(uint16_t valores[], byte num_valores){ ! for(int i = 0;i< num_valores; i++){ ! if(valores[i] < 800) Serial.print(0); else Serial.print(1); Serial.println(); } !}

Page 34: Domótica DIY comunicações-m2m

Activar a campainha

Material necessário

Arduino

Rádio TX de 433Mhz

Processo:

Repetir os dados que ouvimos

Page 35: Domótica DIY comunicações-m2m

Código

#define TX_PIN 4 #define TBASE 400 #define TTOTAL TBASE * 3 !void setup(){ pinMode(TX_PIN, OUTPUT); } !

Page 36: Domótica DIY comunicações-m2m

Outras ideias, mesmo conceito

Interruptores remotos

Lâmpadas com controlo variável

Alarmes

Abertura de portas

Sinalização variada

Page 37: Domótica DIY comunicações-m2m

Sensores variáveisAlguns dispositivos enviam dados variáveis

Estações metrológicas

Sensores de temperatura/corrente

Balanças

Necessária alguma “esperteza”

Page 38: Domótica DIY comunicações-m2m

Sensores variáveisNecessário identificar tempo de bit!

Dicas:

Descartar um preâmbulo no início (~8 bits)

Procurar um identificador no início (8-16 bits)

Prever um CRC no final (1-8bits)

Variar valores e ver o que aparece

Valores fracionários são multiplicados por 10 ou 100

Page 39: Domótica DIY comunicações-m2m

Desenvolver sistemas nossos

O suspeito do costume

Sensores e atuadores

RádioUSB Power Ou baterias

Imagens pertença dos autores respetivos

Page 40: Domótica DIY comunicações-m2m

Longevidade?Usar ATMega328p diretamente

Desenvolve-se como um Arduino Menor velocidade (1-8Mhz) Muito menor consumo Meses ou anos a baterias

Page 41: Domótica DIY comunicações-m2m

Ideias?

http://playground.arduino.cc/projects/ideas

!

http://duino4projects.com/projects/home-automation-projects/

!

Ebay.com, Arduino Sensors, search :)

Page 42: Domótica DIY comunicações-m2m

Evoluir !

Acção directa -> Coordenação por serviços

Page 43: Domótica DIY comunicações-m2m

OOK/FSK/ASK radios 315/433/868Mhz alguns kbits/s 1.5-20 euros

nRF24L01+ 2.4Ghz

até 2Mbits/s 0.8-5 euros

BLE até 1Mbit/s 5-15 euros

2.4Ghz até 250kbits/s 0.8-12 euros

Page 44: Domótica DIY comunicações-m2m

nRF24L01+SPI, 3.3V, 5V tolerante

Interrupções

EnhancedShockburst: Endereçamento e CRC

2 versões:

Amplificada: 1km, 120mA TX/RX, 6 euros

Normal: 50m, 12mA TX/RX, 0.8 euros

Page 45: Domótica DIY comunicações-m2m

Sensor Temperaturacusto < 5€, duração > 1 ano com uma bateria de 1000mA

Page 46: Domótica DIY comunicações-m2m

ManiacBug SensorsImagem reproduzida sem autorização do autor.

Maniacbug: You are a source of inspiration for all of us!

Page 47: Domótica DIY comunicações-m2m

RF24NetworkImagem reproduzida sem autorização do autor.

Maniacbug: You are a source of inspiration for all of us!

Page 48: Domótica DIY comunicações-m2m

Monitorização estruturasPonte Crasto, Universidade de Aveiro

Page 49: Domótica DIY comunicações-m2m

Agregação

Page 50: Domótica DIY comunicações-m2m

Gateway

- Interliga sensores a serviços externos - Pode processar

localmente !

- Interface rádio local !

- Interface Ethernet WAN

Page 51: Domótica DIY comunicações-m2m

Processamento

Page 52: Domótica DIY comunicações-m2m

Várias plataformas

!

!

!

!

Maioritáriamente usando HTTP

Page 53: Domótica DIY comunicações-m2m

Plataforma DIYProblemas comuns

Como adiciono mais um sensor?

modelo de dados

Como adiciono regras?

Como interagir com sistemas

Notificações para IOS, Android, etc…

Page 54: Domótica DIY comunicações-m2m

Plataforma DIYCapaz de lidar com muitos eventos

Múltiplas fontes

Número não determinado de sensores

!

Usar MQTT em vez de HTTP

Arquitectura publish/subscribe

Page 55: Domótica DIY comunicações-m2m

Plataforma DIYProdutores publicam mensagens em tópicos

ex: Open -> /casa/sala/porta

ex: 30% -> /casa/quarto/iluminação

!

Consumidores consomem mensagens e processam-nas

subscrever /casa/#

Page 56: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Page 57: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Page 58: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Persistência

Page 59: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Persistência Agentes de processamento

Page 60: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Persistência Agentes de processamento

Notificações

Page 61: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Persistência Agentes de processamento

Portais Notificações

Page 62: Domótica DIY comunicações-m2m

Plataforma DIY

Gateway

Bus Eventos

Persistência Agentes de processamento

Portais Notificações

Serviços

Page 63: Domótica DIY comunicações-m2m

Gateway

mosquitto

sqlite mqttwarn

Freeboard EmonCMS Pushbullet

IPMA

Prowl GTalk Email

IMDB FacebookOwntracks

Page 64: Domótica DIY comunicações-m2m

VisualizaçãoEventos

Page 65: Domótica DIY comunicações-m2m

Freeboard

Page 66: Domótica DIY comunicações-m2m

EmonCMS

Page 67: Domótica DIY comunicações-m2m

Owntracks

Page 68: Domótica DIY comunicações-m2m

Imagem: Flickr, jvc