Domótica DIY comunicações-m2m

1.784 visualizações

Publicada em

Apresentação sobre domótica, com um twist na direcção dos sistemas de eventos para melhorar escalabilidade e adaptação de novos sensores.
Apresentada na Mini Maker Faire Lisboa

Publicada em: Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.784
No SlideShare
0
A partir de incorporações
0
Número de incorporações
698
Ações
Compartilhamentos
0
Downloads
50
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Domótica DIY comunicações-m2m

  1. 1. Domótica DIY (com comunicações M2M/IoT) João Paulo Barraca jpbarraca@ua.pt
  2. 2. Domus Imagem: Flickr, zarprey
  3. 3. Robótica Imagem: Flickr, si-mocs
  4. 4. Do it Your Self Imagem: Flickr, johanneshjensen
  5. 5. Do it Your Self créditos: Nuno Ferreira
  6. 6. Do it Your Self
  7. 7. M2M
  8. 8. IoT
  9. 9. Objetivos Melhorar conforto Temperatura, luz… Facilitar a vida Automação portões, rega… Alarmística
  10. 10. Arquitectura 1. Gateway ! 3. Dispositivos ! 5. Comunicações ! 7. Plat. Agregação ! 9. Visualização
  11. 11. Soluções Comerciais Muita fragmentação São “estáveis” São verticais Não interoperam Algo caras
  12. 12. Imagem: http://pc2av.com/automation/
  13. 13. 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
  14. 14. Soluções DIY Muito mais baratas Altamente educativas Possibilidade de interagir com soluções comerciais ;)
  15. 15. Primeiros Passos
  16. 16. Interagir com sistemas existentes Lista de material: Campainha com RF Arduino Receptor 433Mhz
  17. 17. Campainha Compostas por 2 sistemas: ! Detetor-Emissor Botão ou sensor magnético ! Rádio Alto-Falante
  18. 18. 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
  19. 19. Campainha OOK O nossa melhor amiga: Dongle USB DVB-T Recebe RF entre 24Mhz e ~1700Mhz Permite visualizar sinais
  20. 20. Campainha OOK
  21. 21. Campainha OOK 1 0
  22. 22. OOK em detalhe
  23. 23. OOK em detalhe
  24. 24. 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 1 0
  25. 25. Campainha OOK ! ! Na realidade não sabemos se um impulso longo é 0 ou 1 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 ! Mas para uma campainha isso não interessa :) ! 1 0
  26. 26. Campainha OOK Dispositivos diferentes emitem identificadores diferentes
  27. 27. Campainha OOK Fiabilidade? Claro, Múltiplas transmissões! 2, 6, 8, 10 vezes…. ou um CRC no final Mensagem 1 Mensagem 2 …
  28. 28. Arduino Imagem: arduino.cc
  29. 29. RX/TX 433 OOK Receptor Emissor Fornece/Aceita dados num único pin Não necessita de configuração
  30. 30. 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
  31. 31. 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); }
  32. 32. Código void 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; } ! ! }
  33. 33. Código void 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(); } ! }
  34. 34. Activar a campainha Material necessário Arduino Rádio TX de 433Mhz Processo: Repetir os dados que ouvimos
  35. 35. Código #define TX_PIN 4 #define TBASE 400 #define TTOTAL TBASE * 3 ! void setup(){ pinMode(TX_PIN, OUTPUT); } !
  36. 36. Outras ideias, mesmo conceito Interruptores remotos Lâmpadas com controlo variável Alarmes Abertura de portas Sinalização variada
  37. 37. Sensores variáveis Alguns dispositivos enviam dados variáveis Estações metrológicas Sensores de temperatura/corrente Balanças Necessária alguma “esperteza”
  38. 38. Sensores variáveis Necessá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
  39. 39. Desenvolver sistemas nossos O suspeito do costume Sensores e atuadores Rádio USB Power Ou baterias Imagens pertença dos autores respetivos
  40. 40. Longevidade? Usar ATMega328p diretamente Desenvolve-se como um Arduino Menor velocidade (1-8Mhz) Muito menor consumo Meses ou anos a baterias
  41. 41. Ideias? http://playground.arduino.cc/projects/ideas ! http://duino4projects.com/projects/home-automation- projects/ ! Ebay.com, Arduino Sensors, search :)
  42. 42. Evoluir ! Acção directa -> Coordenação por serviços
  43. 43. 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
  44. 44. 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
  45. 45. Sensor Temperatura custo < 5€, duração > 1 ano com uma bateria de 1000mA
  46. 46. ManiacBug Sensors Imagem reproduzida sem autorização do autor. Maniacbug: You are a source of inspiration for all of us!
  47. 47. RF24Network Imagem reproduzida sem autorização do autor. Maniacbug: You are a source of inspiration for all of us!
  48. 48. Monitorização estruturas Ponte Crasto, Universidade de Aveiro
  49. 49. Agregação
  50. 50. Gateway - Interliga sensores a serviços externos - Pode processar localmente ! - Interface rádio local ! - Interface Ethernet WAN
  51. 51. Processamento
  52. 52. Várias plataformas ! ! ! ! Maioritáriamente usando HTTP
  53. 53. Plataforma DIY Problemas comuns Como adiciono mais um sensor? modelo de dados Como adiciono regras? Como interagir com sistemas Notificações para IOS, Android, etc…
  54. 54. Plataforma DIY Capaz de lidar com muitos eventos Múltiplas fontes Número não determinado de sensores ! Usar MQTT em vez de HTTP Arquitectura publish/subscribe
  55. 55. Plataforma DIY Produtores publicam mensagens em tópicos ex: Open -> /casa/sala/porta ex: 30% -> /casa/quarto/iluminação ! Consumidores consomem mensagens e processam-nas subscrever /casa/#
  56. 56. Plataforma DIY Gateway
  57. 57. Plataforma DIY Gateway Bus Eventos
  58. 58. Plataforma DIY Persistência Gateway Bus Eventos
  59. 59. Plataforma DIY Persistência Gateway Agentes de processamento Bus Eventos
  60. 60. Plataforma DIY Persistência Gateway Notificações Agentes de processamento Bus Eventos
  61. 61. Plataforma DIY Portais Notificações Persistência Gateway Agentes de processamento Bus Eventos
  62. 62. Plataforma DIY Portais Notificações Persistência Gateway Agentes de processamento Bus Eventos Serviços
  63. 63. Freeboard EmonCMS Pushbullet Gateway Prowl GTalk Email sqlite mqttwarn mosquitto Owntracks IPMA IMDB Facebook
  64. 64. Visualização Eventos
  65. 65. Freeboard
  66. 66. EmonCMS
  67. 67. Owntracks
  68. 68. Imagem: Flickr, jvc

×