Automação Residencial usando PHP
- Pessoal/Off-topic
- January 18, 2007
Ao concluir meu curso de graduação, Engenharia da Computação, desenvolvi este projeto final. Desde que iniciei o blog me prometi postar um artigo sobre o mesmo e disponibilizar o projeto na sua integridade, então agora sim cumpro minha promessa.
Quando comecei a procurar um tema para meu projeto final, queria desenvolver algo útil. Encontrei então o projeto de Ricardo Ishida, que havia se formado na primeira turma de Engenharia, que tinha um projeto de automação residencial baseado em JAVA e em um microprocessador 8051. Já havia pensado em fazer um projeto nesta área, mas como alguem me bateu até o pote, decidi analisar o projeto e construir algo em cima dele.
Inicialmente minha decisão foi a de desenvolver uma interface Web habilitada para um browser, celular ou PDA, botando por baixo disso um motor PHP e criando uma interface intuitiva, baseada em uma navegação gráfica para melhorar o que havia sido feito. Porém ao inicar a análise verifiquei diversos problemas no projeto e alguns pontos que não haviam sido implementados, sendo apenas “teóricos”. Isto apresentou um problema para minha etapa de testes então parei, olhei e pensei…
“Porque usar tudo isso? eu consigo criar um sistema super-simples e funcional com o PHP e outras linguagens Open source, dessa forma vou ter um produto barato e acessível, e ajudo a mostrar as diversas funções do PHP.”
Então meu projeto começou a tomar forma, com um pouco de insistência de meu orientador decidi botar a mão na massa do hardware, além do software, e com isso logo indiquei que precisaria de um ano, e não seis meses, e comecei a longa estrada para desenvolver este projeto que estou disponibilizando.
O projeto nasceu e teve a vida de projeto, começou com um problema, passou por uma forte análise e por fim foi implementado, como pode ser observado na monografia que escrevi. Parte disso é o motivo pelo qual hoje estou cursando um MBA em Projetos, pois o desenvolvimento e gerencia de projetos realmente me atrai muito.
É possível automatizar uma casa com PHP?
E porque não? Se pensarmos na estrutura de um servidor web e de uma solução de automação a única dificuldade neste sistema seria a localização de um servidor web dentro da residência, e isso não é difícil, vendo que muitas pessoas já o fazem. Justificando a escolha do PHP analisei suas vantagens e desvantagens, desde sua interação, performance e outros aspectos. Comparei minha solução com dois projetos, o que foi mencionado anteriormente, em java, e outro baseado em um artigo da php|arch, chamado PHP at Home. Este segundo projeto utiliza componentes já prontos e estabelecidos nos EUA, provendo apenas uma interface movida a PHP. Analisando os dois determinei a estrutura do meu projeto, que é demonstrada na imagem abaixo
Desta forma desenhei três interfaces em templates Smarty, uma para cada ambiente. O Core do sistema foi criado em PHP com MySQL aliados a scripts em C que interagiam com o circuito, desenvolvido na sua forma mais simples possível, sem contar com nenhum processador, apenas componentes de CI.
Para a apresentação final na banca, montei uma simples maquete onde meu sistema controlava duas lâmpadas, como se estivessem posicionadas em uma casa qualquer. Para o melhor entendimento na banca, e para poder apresentar todos os detalhes do sistema, por elementos, criei a imagem abaixo e usei ela como mapa para a apresentação.
Esta foi usada também para apresentar uma visão geral de todo sistema:
A apresentação provou que minha hipótese era verdadeira, e o sistema viável. Em termos de custo um circuito para operar 4 lâmpadas custa em torno de R$ 50, o softwares são todos gratuitos, e os únicos outros custos são a própria máquina, e um link com a internet.
Desde então tive notícia e contatos de dois projetos que estenderam as funcionalidades do sistema, mas claro o próprio projeto já foi desenvolvido com sugestões de melhorias que poderiam ser feitas em projetos posteriores, veja o trecho da monografia:
Para possibilitar a aplicação comercial deste produto, as perspectivas de melhorias são:
- O desenvolvimento de novos periféricos de ação baseados na estrutura disponibilizada. Desta forma será possível controlar outros elementos como portas, janelas, equipamentos de ar condicionado entre outros.
- A aplicação de novos componentes que possam aumentar a distância máxima de oito metros do cabo de comunicação com a porta paralela.
- Aumentar o limite de endereçamento de periféricos.
- Desenvolver módulo de software responsável por acionamento programado(baseado em horários) de periféricos.
- Implementar medidas de segurança garantindo uso apenas pelo proprietário da residência.
- Desenvolver um hardware que permita o sistema verificar erros de ligações rompidas ou lâmpadas queimadas, evitando falsos positivos.
- Analisar sugestão da banca de utilizar um decodificador no lugar do módulo de endereçamento.
Se estiver interessado em conhecer mais do projeto, baixe aqui a monografia e aqui os slides da apresentação
Update: Código Fonte - Projeto Final de Graduação (prova de conceito) - veja este post