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 Banca Circuito quase finalizado

comments powered by Disqus

Related Posts

Livro: PHP-GTK - 2ª Edição

Livro: PHP-GTK - 2ª Edição

  • February 28, 2007

Segunda a noite tive a felicidade de conversar com meu grande amigo e autor do Livro PHP-GTK, Pablo Dall’Oglio .

Read More
Diggs

Diggs

  • September 19, 2006

Escrevo hoje com um profundo ar de orgulho e inspiração. Este fim de semana um antigo artigo (Um estudo em RSS - Parte 1: XML DOM ) meu traduzido para o inglês foi submetido ao site www.

Read More
Nova Casa

Nova Casa

  • July 8, 2006

Pronto, agora podemos voltar aos negócios como normalmente. Depois de muito matutar finalmente tomei a decisão de criar meu próprio domínio e montar minha “casa” na internet, sim, demorou demais!

Read More