SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Prototipação com
RoR e Arduino
Como soluções simples e
conhecidas podem ser agregadas
para validar uma ideia de
produto
Daner dos Reis
Web Developer na SocialBase e outros projetos por fora…
Quem nunca??
Java, Javascript, Python e mais recentemente Ruby
Facebook: daner.dosreis
Twitter: @danerdosreis
Email: danerdosreis@gmail.com
Este que vos fala...
O ministério DHH adverte:
Tudo que vou falar vocês já sabem!
O objetivo é apenas refrescar a memória
através de um caso real!!
O que mundos tão distintos têm em
comum? (Rails e IoT)
● Com essas ferramentas
podemos criar coisas
incríveis
● Comunidades vibrantes e
ativas
● Amplo suporte de
empresas e devs ao redor
do mundo melhorando as
plataformas a cada dia
Nice! Mas o que podemos fazer com isso?
● (Rails) O amado CRUD em tempo recorde
● (Arduino) O indescritível ato de piscar um Led pela
primeira vez
● (Rails) Usar todos os recursos fantásticos do Rails
para causar dor e inveja naquele seu amigo que usa
Java
● (Arduino) Qualquer coisa que envolva mais do que uma
cafeteira automática ou fechar uma cortina na sua
casa
Isso é bem interessante, mas vamos
resolver problemas reais?
O incrível caso do prédio que não tem porteiro: A nova
realidade de condomínios - Portaria Virtual
● Um operador para vários condomínios
● Solução composta de um sistema web que envia
comandos para um hardware abrir e fechar portas à
distância
Requisitos e funcionalidades
Requisito 1 - Cadastros:
Cadastro e relacionamentos entre
condomínios, moradores, portas, relés,
chaves de acesso, operadores, eventos
(abertura e fechamento de portas)
Requisitos e funcionalidades
Requisito 2 - Fila de processos:
Geração de eventos e client MQTT
Requisitos e funcionalidades
Requisito 3 - Autenticação:
Controle de acesso para os perfis de
admin, operador e morador
Requisitos e funcionalidades
Requisito 4 - Websockets:
Feedback em tempo real para o operador
sobre os acessos
Requisitos e funcionalidades
Requisito 5 - Hardware:
Hardware que controla portas via
acionamento de relés
Requisitos e funcionalidades
Requisito 1 - Cadastros:
rails generate scaffold Condominio nome: string
rails generate scaffold Morador nome: string condominio:references
Scaffold
Cadastro e relacionamentos entre
condomínios, moradores, portas, relés,
chaves de acesso, operadores, eventos
(abertura e fechamento de portas)
Requisitos e funcionalidades
Requisito 2 - Fila de processos:
Explore as Gems! Pesquise, avalie, use!!! É provável que o seu problema
já tenha sido resolvido: gem install mqtt
Gems
https://rubygems.org/
Geração de eventos e client MQTT
Requisitos e funcionalidades
Requisito 3 - Autenticação:
Não complique sua autenticação! Utilize o Devise.
Devise
https://github.com/plataformatec/devise
Controle de acesso para os perfis de
admin, operador e morador
Requisitos e funcionalidades
Requisito 4 - Websockets:
Pooling nunca mais! Websocket de forma simples!
rails generate channel Event action_event
Action Cable
Feedback em tempo real para o operador
sobre os acessos
Requisitos e funcionalidades
Requisito 5 - Hardware:
Hardware versátil com múltiplas funcões.
Arduino com wifi
Hardware que controla portas via
acionamento de relés
E na prática, como funciona?
E o código?
Um pitada sobre placas
Arduino
Preço: R$ 60,00
Linguagens base: C
Um pitada sobre placas
NodeMCU
Preço: R$ 65,00
Linguagens base: Lua
Um pitada sobre placas
ESP-8266
Preço: R$ 15,00
Linguagens base: Lua
Se conselho fosse bom...
Se conselho fosse bom...
Contenha seu ímpeto e dedique um tempo para estudar exclusivamente Ruby
Esteja disposto a abrir a mente e trabalhar no formato Rails
Seus estudos na linguagem/framework devem ser baseados sempre na última
versão da documentação
Não tenha medo da simplicidade! Se você acha que deve escrever código pra
que ninguém entenda, o C++ é a sua praia!!!
O Rails não está em baixa, está estável! Tá cheio de ferramenta por aí
procurando um problema pra resolver!!!
Façam perguntas que eu saiba
responder!!!
Dúvidas?
Vocês fazem dessa comunidade, a
melhor!!
Obrigado!

Mais conteúdo relacionado

Semelhante a Prototipação rápida - Rails e Arduino

Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazerHeider Lopes
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!Globalcode
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduinoRicardo Ogliari
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucesso
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucessoUtilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucesso
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucessoJUGMS
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceGDGFoz
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro FrameworkIgor Kondrasovas
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaFelipe Hummel
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIGlobalcode
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 
ASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSJorge Maia
 
InCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 

Semelhante a Prototipação rápida - Rails e Arduino (20)

Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduino
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucesso
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucessoUtilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucesso
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucesso
 
Automação Residencial Extrema com Opensource
Automação Residencial Extrema com OpensourceAutomação Residencial Extrema com Opensource
Automação Residencial Extrema com Opensource
 
Netduino e .NET Micro Framework
Netduino e .NET Micro FrameworkNetduino e .NET Micro Framework
Netduino e .NET Micro Framework
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things API
 
Phonegap
PhonegapPhonegap
Phonegap
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
ASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSASP.NET vNext no MAC OS
ASP.NET vNext no MAC OS
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
InCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP EspecificaçãoInCuca - Coding dojo - ERP Especificação
InCuca - Coding dojo - ERP Especificação
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 

Prototipação rápida - Rails e Arduino

  • 1. Prototipação com RoR e Arduino Como soluções simples e conhecidas podem ser agregadas para validar uma ideia de produto
  • 2. Daner dos Reis Web Developer na SocialBase e outros projetos por fora… Quem nunca?? Java, Javascript, Python e mais recentemente Ruby Facebook: daner.dosreis Twitter: @danerdosreis Email: danerdosreis@gmail.com Este que vos fala...
  • 3. O ministério DHH adverte: Tudo que vou falar vocês já sabem! O objetivo é apenas refrescar a memória através de um caso real!!
  • 4. O que mundos tão distintos têm em comum? (Rails e IoT) ● Com essas ferramentas podemos criar coisas incríveis ● Comunidades vibrantes e ativas ● Amplo suporte de empresas e devs ao redor do mundo melhorando as plataformas a cada dia
  • 5. Nice! Mas o que podemos fazer com isso? ● (Rails) O amado CRUD em tempo recorde ● (Arduino) O indescritível ato de piscar um Led pela primeira vez ● (Rails) Usar todos os recursos fantásticos do Rails para causar dor e inveja naquele seu amigo que usa Java ● (Arduino) Qualquer coisa que envolva mais do que uma cafeteira automática ou fechar uma cortina na sua casa
  • 6. Isso é bem interessante, mas vamos resolver problemas reais? O incrível caso do prédio que não tem porteiro: A nova realidade de condomínios - Portaria Virtual ● Um operador para vários condomínios ● Solução composta de um sistema web que envia comandos para um hardware abrir e fechar portas à distância
  • 7. Requisitos e funcionalidades Requisito 1 - Cadastros: Cadastro e relacionamentos entre condomínios, moradores, portas, relés, chaves de acesso, operadores, eventos (abertura e fechamento de portas)
  • 8. Requisitos e funcionalidades Requisito 2 - Fila de processos: Geração de eventos e client MQTT
  • 9. Requisitos e funcionalidades Requisito 3 - Autenticação: Controle de acesso para os perfis de admin, operador e morador
  • 10. Requisitos e funcionalidades Requisito 4 - Websockets: Feedback em tempo real para o operador sobre os acessos
  • 11. Requisitos e funcionalidades Requisito 5 - Hardware: Hardware que controla portas via acionamento de relés
  • 12. Requisitos e funcionalidades Requisito 1 - Cadastros: rails generate scaffold Condominio nome: string rails generate scaffold Morador nome: string condominio:references Scaffold Cadastro e relacionamentos entre condomínios, moradores, portas, relés, chaves de acesso, operadores, eventos (abertura e fechamento de portas)
  • 13. Requisitos e funcionalidades Requisito 2 - Fila de processos: Explore as Gems! Pesquise, avalie, use!!! É provável que o seu problema já tenha sido resolvido: gem install mqtt Gems https://rubygems.org/ Geração de eventos e client MQTT
  • 14. Requisitos e funcionalidades Requisito 3 - Autenticação: Não complique sua autenticação! Utilize o Devise. Devise https://github.com/plataformatec/devise Controle de acesso para os perfis de admin, operador e morador
  • 15. Requisitos e funcionalidades Requisito 4 - Websockets: Pooling nunca mais! Websocket de forma simples! rails generate channel Event action_event Action Cable Feedback em tempo real para o operador sobre os acessos
  • 16. Requisitos e funcionalidades Requisito 5 - Hardware: Hardware versátil com múltiplas funcões. Arduino com wifi Hardware que controla portas via acionamento de relés
  • 17. E na prática, como funciona?
  • 19. Um pitada sobre placas Arduino Preço: R$ 60,00 Linguagens base: C
  • 20. Um pitada sobre placas NodeMCU Preço: R$ 65,00 Linguagens base: Lua
  • 21. Um pitada sobre placas ESP-8266 Preço: R$ 15,00 Linguagens base: Lua
  • 23. Se conselho fosse bom... Contenha seu ímpeto e dedique um tempo para estudar exclusivamente Ruby Esteja disposto a abrir a mente e trabalhar no formato Rails Seus estudos na linguagem/framework devem ser baseados sempre na última versão da documentação Não tenha medo da simplicidade! Se você acha que deve escrever código pra que ninguém entenda, o C++ é a sua praia!!! O Rails não está em baixa, está estável! Tá cheio de ferramenta por aí procurando um problema pra resolver!!!
  • 24. Façam perguntas que eu saiba responder!!! Dúvidas?
  • 25. Vocês fazem dessa comunidade, a melhor!! Obrigado!