Meetup do ThinkUP - Cidades Inteligentes

Meetup do ThinkUP - Cidades Inteligentes

ThinkUP! MeetUp #1 - Cidades Inteligentes - realizado em 11/11/2016 na IBM/SP sobre o tema Cidades Inteligentes.
https://www.meetup.com/pt-BR/thinkup/events/235450231/

D8c54ba4f84fb4e2191127c8ffd76b52?s=128

Rogério Cardoso

November 11, 2016
Tweet

Transcript

  1. Rogério Cardoso Athos Coimbra Ribeiro Débora Setton Sanches Thiago Petrone

    Lucas Kanashiro Duarte Cidades Inteligentes
  2. Agenda • Introdução teórica • Exemplo de uma Plataforma (incluindo

    código, testes, devop) • Exemplo de uma aplicação
  3. Fonte: http://veja.abril.com.br/ Visão de Futuro (1962)

  4. Internet das Coisas (Internet of Things - IoT) Usou o

    termo “Internet das Coisas (IoT) em 1999. Kevin Ashton (MIT) http://finep.gov.br/
  5. Internet das Coisas (Internet of Things - IoT)

  6. Internet das Coisas (Internet of Things - IoT) Fonte: http://www.business2community.com

    Eletrodomésticos - Adega de Vinho, - Ar Condicionado, - Centrífuga de Roupas, - Climatizadores, - Cooktops / Fogões, - Fornos, Freezers, - Lava-Louças, - Micro-ondas, - Refrigeradores, - Secadoras de Roupas Termostatos, Alarme de incêndio, Sistema de som, Lâmpada/Iluminação, Sensores, enfim.
  7. Internet das Coisas (Internet of Things - IoT) Hospitais e

    Clínicas Agropecuária Indústrias Lojas Transporte Público
  8. Internet das Coisas (Internet of Things - IoT) Fonte: http://iot.intersog.com/

    Internet of Things IoT
  9. Internet das Coisas (Internet of Things - IoT) Fonte: https://www.ibm.com/blogs/bluemix/2014/07/bluemix-internet-things/

  10. Internet das Coisas (Internet of Things - IoT) Dispositivos Chips,

    Sensores, Atuadores, etc Redes de Comunicação Wifi, 2G/3G/4G(xG), Bluetooth, NFC, etc Sistema de Controle Plataformas, Segurança, Gestão, Privacidade, etc IBM Bluemix, AWS , HPE, ThingSpeak, ThingWorx, Azure IoT Microsoft, Konker e muito mais...
  11. Internet das Coisas (Internet of Things - IoT) http://dcomercio.com.br/files/image/2289/internet-das-coisas.png

  12. Internet das Coisas (Internet of Things - IoT) Fonte: L.

    Atzori et al., 2010.
  13. Internet das Coisas (Internet of Things - IoT) Há riscos?

    Ausência do tratamento pode causar isso (Fonte: http://www.infowester.com/ - autoria desconhedida)
  14. Sensores e Atuadores http://www.libelium.com/wp-content/themes/libelium/images/content/applications/libelium_smart_world_infographic_950px.png

  15. Aplicações http://www.postscapes.com/internet-of-things-examples/

  16. Chips / Placas para IoT Raspberry pi 3 WiFi -

    ESP8266 Intel Edson Intel Galileo Arduino Uno e outros
  17. Chips / Placas para IoT http://readwrite.com/2014/09/10/intel-edison-raspberry-pi-arduino-comparison/

  18. Framework APIs https://openconnectivity.org/

  19. Cidades Inteligentes Postscapes & Harbor Research

  20. Plataformas para Cidades Inteligentes •Sensores e Atuadores http://d3uifzcxlzuvqz.cloudfront.net/images/stories/content/infographic/IoT-Infographic/postscapes-harbor-iot-infographics.jpg

  21. Plataformas para Cidades Inteligentes •Conectividade http://d3uifzcxlzuvqz.cloudfront.net/images/stories/content/infographic/IoT-Infographic/postscapes-harbor-iot-infographics.jpg

  22. Plataformas para Cidades Inteligentes •Pessoas e Processos http://d3uifzcxlzuvqz.cloudfront.net/images/stories/content/infographic/IoT-Infographic/postscapes-harbor-iot-infographics.jpg

  23. Oportunidades para Pesquisa e Desenvolvimento em PCI / IoT Data

    is gold dust Maker Hardware API Backend BigData Analytics Cognitive Security Business
  24. Estudo de Caso PCI - Protótipo USP

  25. Arquitetura da Plataforma (v1.0 - jul/2016) 25

  26. Resource Catalog and Adaptor

  27. DevOps 27

  28. DevOps 28

  29. DevOps 29

  30. DevOps 30

  31. DevOps 31

  32. DevOps 32

  33. DevOps 33

  34. Resource Adaptor 34

  35. Resource Adaptor 35

  36. Resource Adaptor Gerencia o fluxo da aplicação Cria automaticamente todas

    as rotas para coleta e atuação dos recursos Possui um conjunto de tasks nativas que facilitam a interação com a plataforma $ rake component:seed $ rake component:seed[parking_spots_importer] $ rake component:register $ rake component:update $ rake component:update[info_facility_type] 36
  37. Resource Catalog 37

  38. Exemplos de uso 38

  39. API GET /resources/sensors GET /resources/actuators GET /resources/:uuid PUT /resources/:uuid POST

    /resources/ GET /resources/search 39
  40. Trabalhos futuros Deduzir capacidades a partir do nome delas Paginar

    resultado da busca se necessário Busca baseada em contexto Evoluir o Resource Adaptor para ser uma GEM Melhorias de DevOps Melhorias da API: segurança, versionamento, etc. 40
  41. Slide backup 41

  42. http://107.170.158.70:3000/resources/sensors http://107.170.158.70:3000/resources/actuators [{ "id": 2, "uri": "107.170.158.70:3001/basic_resources/1/components/1", "created_at": "2016-06-29T21:44:09.060Z", "updated_at":

    "2016-06-29T21:44:09.060Z", "lat": -23.522787, "lon": -46.490063, "status": "active", "collect_interval": 60, "description": "", "uuid": "5692818c-9c66-4cdb-933a-5c33ec1d15da", "city": "São Paulo", "neighborhood": "Burgo Paulista", "state": "São Paulo", "postal_code": "03680-040", "country": "Brazil" }, { "id": 3, "uri": "107.170.158.70:3001/basic_resources/1/components/2", 42
  43. SEARCH { "resources": [{ "uuid": "5692818c-9c66-4cdb-933a-5c33ec1d15da", "lat": -23.522787, "lon": -46.490063,

    "collect_interval": 60 }, { "uuid": "ca73b6ef-bec5-46aa-b8a2-88d123aa3d16", "lat": -23.522787, "lon": -46.490063, "collect_interval": 60 }, { "uuid": "7a07c156-378c-454d-9230-b392ab61669a", "lat": -23.531063, "lon": -46.47907, "collect_interval": 60 }] } 43
  44. Estacionamento Inteligente

  45. Arquitetura Smart Parking Maps Smart Parking API Data Collector Discovery

    Service Restante da plataforma • Smart Parking Maps: ◦ Aplicação Rails, mas apenas client-side (HTML + CSS + JS). ◦ Layout mobile-friendly possibilitado pelo Material Design Lite. • Smart Parking API: ◦ Aplicação Rails, apenas server-side. A API é versionada e obedece à especificação JSON API.
  46. Dados de vagas • As vagas foram geradas manualmente para

    pontos selecionados da cidade de São Paulo: ◦ Centro da cidade (Teatro Municipal e Shopping Light) ◦ Av. Paulista (próximo à Alameda Joaquim Eugênio de Lima) Total: 1075 vagas Cenário mais realista Menos vagas: mais fácil de testar
  47. Dados de vagas: making-of Marcação das vagas geradas para a

    região da Av. Prof. Luciano Gualberto
  48. O que é uma vaga? Modelagem do conceito "vaga"

  49. O que podemos fazer com dados de vagas? 1. Vagas

    próxima a mim 2. Vagas próximos a onde quero ir 3. Atualização automática do mapa 4. Filtros por status da vaga 5. Filtros por data/hora 6. Filtros por preço 7. Check-in de vagas 8. Reportar incidentes 9. Vagas agrupadas para melhor visualização 10. Cadastro de usuário 1 2 3 4 5 6 7 8 9 10
  50. Smart Parking Maps: alguns screenshots Área de cadastro e autenticação

  51. Smart Parking Maps: alguns screenshots Check-ins (para usuários logados) e

    incidentes
  52. Smart Parking Maps: alguns screenshots Detalhes de uma vaga

  53. Smart Parking Maps: alguns screenshots Filtro por estabelecimento

  54. Smart Parking Maps: princípios • Fácil de usar: atualização automática

    do mapa, check-in e checkout de uma vaga de estacionamento. • Portabilidade: plataforma móvel e Web. • Agradável: design simples. • Dinâmico: agrupamento de vagas de estacionamento no mapa, filtro de vagas de estacionamento por preços e horário de disponibilidade, relatório de incidentes. • Eficiente: sugestões de rota do usuário até a vaga, mostrar vagas de estacionamento de um estabelecimento. • Útil: Informação da vaga de estacionamento: horário, preços, endereço.
  55. Highlights técnicos: miscelânea • Rails 5 (RC) ◦ Rails no

    Smart Parking Maps: uso do asset pipeline • Ruby 2.3.1 • PostgreSQL: pesquisa geoespacial • JSON API • Versionamento da API • Material Design • Testes: ◦ RSpec no back-end ◦ CasperJS no front-end • Separação entre API e aplicação • DeviseTokenAuth: autenticação por token; útil para aplicações estáticas • Overcommit: enforcing de boas práticas com Git hooks (Rubocop, JsHint, CSSLint)
  56. Sugestões para o futuro • Smart Parking Maps: ◦ Adaptar

    o layout para os edge-cases de dispositivos móveis; ◦ Expandir funcionalidades já existentes ◦ Adicionar novas funcionalidades, como: ▪ Vagas favoritas ▪ Mostrar há quanto tempo a vaga foi liberada ou ocupada ▪ Avaliação de vagas ▪ Estatísticas de vagas • Smart Parking API: ◦ Aumentar a integração com outros serviços da plataforma (depende dos serviços também) ◦ Suportar outros modelos de precificação de vagas (atual: valor por hora)
  57. Outras aplicações desenvolvidas na primeira fase • Saúde: Equipamentos públicos

    e seus dados (Georreferenciamento da saúde da população) • Semáforos Inteligentes • Estacionamento Inteligente • Segurança • Aplicativo para Esportes (Mapas)
  58. Repositório dos Códigos das Plataformas • Versão 1.0 (até jul/2016)

    https://gitlab.com/smart-city-platform • Versão 2.0 (a partir de ago/2016) https://gitlab.com/smart-city-software-platform • Visite, baixe e contribua!!
  59. Cidades Inteligentes Rogério Cardoso Athos Coimbra Ribeiro Débora Setton Sanches

    Thiago Petrone Lucas Kanashiro Duarte