Automação Residencial usando PHP

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

Esquemático de comunicação

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.

Visão Geral do Projeto

Esta foi usada também para apresentar uma visão geral de todo sistema:

Visão Geral dos sistemas

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

Apresentação para a BancaCircuito quase finalizado

comments powered by Disqus

Related Posts

PHP DF: A comunidade de PHP no DF

PHP DF: A comunidade de PHP no DF

  • March 6, 2007

PHP DF - LogoA muito tempo já venho falando sobre a comunidade PHP no Brasil, mas hoje tenho o orgulho de anunciar o lançamento oficial do grupo de usuários PHP no Distrito Federal. Após muita discussão, vários drafts, e mais discussão finalizamos, com a ajuda de minha amiga Yasodara, conseguimos finalizar a logomarca do grupo e lançar um beta de nosso site.

Read More
Ajude um Blog! Faça uma doação!

Ajude um Blog! Faça uma doação!

  • September 28, 2007

Desde o dia que iniciei este blog tenho 0 mesmo objetivo, compartilhar com o público, dicas, códigos e todos truques que aprendi ao longo de toda minha carreira na informática. Raramente fujo deste rumo para abordar assuntos pessoais, políticos, ou escrever artigos que dão dinheiro (tecnologia, fofoca e mulher pelada).

Read More
AJAX: What is it?

AJAX: What is it?

  • October 12, 2006

Author’s note: This article was first published in my AJAX Column (AjaxOnline.com.br) in Portuguese where my intended audience is a group of beginners learning about the AJAX initiative. Since it turned out to be a really interesting article I decided to translate it and share it with a wider audience.

I wondered where I should begin explaining AJAX and finally decided I should begin explaining what’s behind it and how it came around, so everyone knows where we are coming from.

Ajax, web 2.0, RSS, if you’ve never heard any of these terms than something is wrong, you are either way behind in web technologies or not serious enough about web development. The concept of Web 2.0 is what we may call the “father” of the latest trends in web applications, where various technologies are used to improve the user’s experience, but what is the concept?

Read More