Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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/

Rogério Cardoso

November 11, 2016
Tweet

More Decks by Rogério Cardoso

Other Decks in Technology

Transcript

  1. Agenda • Introdução teórica • Exemplo de uma Plataforma (incluindo

    código, testes, devop) • Exemplo de uma aplicação
  2. Internet das Coisas (Internet of Things - IoT) Usou o

    termo “Internet das Coisas (IoT) em 1999. Kevin Ashton (MIT) http://finep.gov.br/
  3. 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.
  4. Internet das Coisas (Internet of Things - IoT) Hospitais e

    Clínicas Agropecuária Indústrias Lojas Transporte Público
  5. 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...
  6. Internet das Coisas (Internet of Things - IoT) Há riscos?

    Ausência do tratamento pode causar isso (Fonte: http://www.infowester.com/ - autoria desconhedida)
  7. Chips / Placas para IoT Raspberry pi 3 WiFi -

    ESP8266 Intel Edson Intel Galileo Arduino Uno e outros
  8. Oportunidades para Pesquisa e Desenvolvimento em PCI / IoT Data

    is gold dust Maker Hardware API Backend BigData Analytics Cognitive Security Business
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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.
  14. 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
  15. Dados de vagas: making-of Marcação das vagas geradas para a

    região da Av. Prof. Luciano Gualberto
  16. 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
  17. 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.
  18. 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)
  19. 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)
  20. 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)
  21. 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!!