O documento discute como Ruby on Rails e Arduino podem ser combinados para validar ideias de produtos, apresentando um caso real de um sistema de portaria virtual para condomínios que usa um banco de dados em Rails para armazenar dados e controlar hardware com Arduino para abrir e fechar portas remotamente.
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)
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
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!!!