Automação residencial com Arduino, X10 e relês

Depois de um longo tempo sem inventar alguma coisa, resolvi voltar a ativa e fazer algo que dessa vez possa usar para automatizar minha casa, e assim,  controlar uma série de coisas através do iPhone, Android, Web, ou qualquer dispositivo que possa abrir uma página web.

Mas antes de começar com os assuntos técnicos, vou falar um pouco sobre a solução e um pouco do histórico …

Há 6 anos mais ou menos, fiz meu projeto de conclusão de faculdade, e que basicamente era um dispositivo eletrônico, conectado ao computador através da porta paralela, que permitia automatizar minha casa:

  • Acender a apagar luzes;
  • Abrir portas;
  • Ligar e desligar dispositivos;
  • Verificar o consumo de cada um dos dispositivos, e outras coisas que não tive tempo de implementar;

Aquilo para mim foi um feito incrível. Além de escrever uma aplicação WEB 100% em C++, aprendi muita coisa de eletrônica, e que não fazia parte do meu currículo escolar. Mas de alguma forma eu não fiquei satisfeito com a solução, e achava que usar um computador para realizar tarefas relativamente simples, era inaceitável.

De um tempo para cá, comecei a brincar com microcontroladores – primeiramente PIC e depois Arduino - e cheguei a conclusão que eu poderia refazer meu projeto todo, usando apenas um pequeno dispositivo para controlar tudo o que já havia feito.

Com o PIC, tive um pouco mais de dificuldade, principalmente por causa dos módulos para conectar o mesmo em uma LAN – muita coisa depende de pura codificação, e com o pouco tempo disponível, acabei abandonando. No começo do ano passado (fev/2009), comecei a brincar com o Arduino, e foi aí que minha curiosidade aumentou, até o ponto que resolvi voltar a brincar oficialmente com meu projeto.

Se você nunca ouviu falar do Arduino (e gosta de hardware), sugiro que vá atrás: é um projeto fantástico, e opensource. O conceito também é matador – o dispositivo é básico com saídas e entradas digitais, porta serial nativa, entrada usb, e todo sistema de proteção de um bom hardware. Mas o que o torna matador é o conceito de “shields”, onde você pode acoplar outros módulos de uma maneira bem fácil, como se estivesse montando um LEGO.

Meu primeiro Arduino foi um Duemilanove (2009 em italiano), e também adquiri 2 shields: 1 xbee wifi e 1 para ethernet. Em menos de 10 minutos, consegui conectar o meu Arduino na rede casa wifi, e 10 minutos depois via cabo. Quando vi a extrema facilidade, volume das documentações, códigos fontes prontos, fiquei maluco.

Arduino + Ethernet shield

Arduino + Ethernet shield

O projeto:

Apesar de parecer coisa de outro mundo controlar dispositivos elétricos, não é um bicho de 7 cabeças. Porém, o grande problema de fazer soluções como essa, é garantir a confiabilidade daquilo que você está fazendo, e assim não sair queimando luzes, TV, etc.

Andei estudando recentecemente circuitos de proteção elétrica, para ter um certo grau de profissionalismo. Não sou um expert no assunto, longe disso, mas a brincadeira começou a ficar divertida e os cálculos das leis de Ohm começaram a fazer sentido.

Qual cenário do projeto estou ?

Andei fazendo testes com diversos componentes, para entender a melhor forma de implementar o projeto. Os formatos que andei pesquisando:

  • Usar relês de 5v, que serão acionados pelas saídas digitais do Arduino, e assim, controlar dispositivos que são em corrente alternada (TV, luzes, por exemplo). Esse foi o modelo que usei no meu projeto de faculdade, mas que tem uns pontos que eu considero ruins: desgaste dos contatos dos relês, que com o tempo precisarão de troca, e excesso de fios passando pela casa. Por outro lado, é uma solução barata.
  • Usar relês de estado sólido, que são baseados em indução magnética (e não mecânica como o acima), onde o desgaste é bem menor. Tem o mesmo problema de excesso de fios passando, e o custo desse tipo de relê é relativamente superior.
  • Usar X10 - que é um protocolo desenvolvido pela X10, e que usa a rede elétrica como meio de propagação de sinais, através de um módulo que comunica com o Arduino através de RS232. Esse módulo é o TW523. O custo é de uma certa forma maior que os relês mecânicos, e menores que os relês magnéticos, e o uso de fios passando em casa é nulo. Porém, nesse modelo, o volume de código para Arduino é bem maior. Mas para um hardcoder que nem eu, não será um problema ;) ;

Baseado na estratégia acima, decidi que vou para a linha do X10. Ainda não testei questões de segurança do protocolo – já vi gente reclamando que ele não é 100% seguro – mas acho que é o melhor caminho para seguir. Se você se interessou pelo projeto, fique ligado no blog, que a medida que eu for montando os componentes e testando, vou postando.

E se eu de alguma forma iluminei seu caminho, sugiro utilizar 2 sites para comprar equipamentos:

  • Arduinos, shields e afins, o SparkFun;
  • Componentes X10, módulos RS232, e afins, o SmartHome;

Ambos entregam no Brasil e são bem confiáveis. Para começar a brincar de automação, considere um gasto aproximado de uns 200 dólares (um projeto desses aqui no Brasil, custa mais de 3000 reais).

Para finalizar, sugiro que dê uma olhada no site do Arduino, e baixe o Arduino IDE para olhar as dezenas de exemplos prontos. O código parece uma mistura de C com C++, e é bem fácil.

Comentários ? Sugestões ?

Bookmarksbookmark bookmark bookmark bookmark bookmark bookmark

Popularity: 4%

21 Comments so far

  1. Alex on October 28th, 2010

    Retribuindo as dicas do Orkut: Tem um módulo de comunicação serial sem fio (APC220-43) que é bem mais em conta que as alternativas mais comuns no Arduino (XBee, wi-fi). Comprei um par no eBay faz uns meses por USD 50. Não precisa de shield e ainda vem com um adaptador USB, pra poder trocar dados entre o computador e o Arduino.

  2. Cleber on November 2nd, 2010

    Alguns meses atrás, quando fiquei sabendo da existência do Arduino, achei o máximo. Só de pensar nas possibilidades que ele trás me dá uma vontade muito grande de trabalhar com automação.
    Não se esqueça de criar uma extensão para o Chrome depois (ou Firefox) para fazer o controle também :)

  3. Leonardo on November 24th, 2010

    Interessante, aqui em casa fiz uns nas portas de entradas, magnéticas. Ficou bom. Quando tiver tempo passo aqui e deixo o projeto.

  4. Automação com Arduino parte 2 – ligando dispositivos usando iPhone | Blog do Robson Dantas on December 4th, 2010

    [...] post passado, falei do início do projeto para automatizar minha residência usando Arduino. Enquanto os componentes não chegam dos EUA, criei umas brincadeiras para testar a minha [...]

  5. ericc on June 24th, 2011

    Boa noite Dantas.
    hoje chegou o meu arduino aqui em casa é um duemilanove ATmega328 e realmente estou encontrando muitos problemas pois tenho nada de experiencia na área e estou aqui pedindo encarecidamente q me digas se tem como eu aumentar o exemplo q tem no programa chamado “BUTTON” para q ele use mais portas de entrada por exemplo assim
    A porta 13 acender o led no momento em q a chave jogar 5v. no pino 2 e a porta 12 acender o outro led quando a outra chave jogar 5v. no pino 3 e assim por diante, se for possível gostaria q alguém me ajudasse e se ñ for possível q alguém me diga q o arduino ñ faz isso srsrss.
    Obrigado ae gente
    Muito interessante seu projeto Dantas parabéns.

  6. Paulo Henrique on July 25th, 2011

    Ola Robson
    Como esta o andamento desse projeto?

  7. admin on August 9th, 2011

    Está pronto, funcionando em casa. Só preciso atualizar aqui.

    abs

    Robson

  8. Felipe on August 9th, 2011

    Olá Robson, andei lendo suas postagens sobre Arduino etc, achei muito bacana, e tal, mas tenho algumas duvidas, poderia controlar ele usando um software no PC ligado direto na USB/Serial/Parralela?

    Estou coma ideia de criar para o meu TCC um sistema de controle de uma casa automatizada, por isso das duvidas, andei procurando muito ultimamente sobre isso, até que achei o arduino e ele parece ser o que faltava para começar a andar a minha ideia =D

    Outra duvida é, vale a pena comprar tudo de fora ou esses kits que estão vendendo no mercado livre saem mais em conta?

  9. admin on August 12th, 2011

    Felipe,

    O Arduino vc liga diretamente na porta USB, e você consegue se comunicar com ele via porta serial. Se você escrever qualquer coisa, consegue se comunicar com o Arduino.

    Porém, acho mais fácil você comprar um shield de ethernet ou wifi e se comunicar com ele via socket, igual eu fiz em casa. Você pode mandar comandos pela rede, e não depender de um computador.

    Pode até criar um client para celular.

    abs

    Robson

  10. ericc on August 12th, 2011

    Bom isso tudo parece maravilhoso, o fato de controlar algu apenas dando comandos direto do pc

    Mas realmente este seria o blog sobre arduino mais acessado da net se alguem resolvesse ensinar como fazer isto, pois tenho um arduino e ñ consegui fazer ele funfar desta maneira e tenho amigos q também estão tentando e nada.
    mas mesmo assim aqui ainda é o melhor lugar para aprender sobre ele pois tem gente q realmente entende doq esta falando, ñ apenas fazendo um led piscar e pensar q ta matando a pau shuahsuahs isso é muita nobice.

    parabéns ae pessoal continuarei acompanhado aqui no dantas pra aprender mais espero q elguem tenha boa vontade de darnos uma luz.
    té mais.

  11. Beto on October 26th, 2011

    Olá, parabens pelo blog!
    Estou iniciando os estudos com arduino, adquiri um arduino uno, estou tentando fazer a comunicação entre um xperia10 e o arduino, porem gostaria de saber se é possivel a comunicação direta entre os dois atravez da xbee wire, usando android, sei q se comunica por usb diretamente caso seja usado a mega2560 com ADK, mas tenho duvidas quanto o wireless.

  12. admin on October 26th, 2011

    Beto,

    Só se comunica via usb, a não ser que você crie um módulo que implemente um protocolo e envie comandos usb via wifi.

    Tenho usado aqui, bem legal.

  13. Felipe on February 24th, 2012

    Cara gostei do li no seu blog, ta bem legal!
    Então eu estou fazendo meu trabalho de graduação sobre automação residencial utilizando a rede eletrica com o protocolo X10. No inicio queria fazer uma automação inteligente com sensores para abrir cortinas de dia, climatização alarme e etc.. mas meu tempo é curto entao quero fazer algo mais simples como controlar iluminação ou alguma carga qualquer. Mas depois q li seu blog fiquei com uma pulga atras da orelha, vc acha que posso fazer a automação usando por exemplo um Tablet ou iphone?

  14. admin on February 25th, 2012

    Cara, dá pra fazer sem problemas. E não é tão complexo, diga-se de passagem.

    Instalando o x10 e com um shield de ethernet, basta você escrever um webservice, ou um protocolo de comunicação que permite que um aplicativo feito para o tablet seja executado.

    Falando em tablet, tenho gasto um pouco do meu tempo com o framework phonegap, que permite que você desenvolva aplicativos para android, iphone, ipad, blackberry, usando basicamente html, css e javascript.

    Dá uma olhada nisso, com certeza vai facilitar e incrementar muito seu trabalho.

    abs

    Robson

  15. caio on May 26th, 2012

    oi tenho uma duvida.
    tenho um programa em java para celular agora vo ver na rede ;com bluetooth funcionou legal.
    Comprei um shield xbee eu consigo conecta essa shiel no router.

  16. caio on May 26th, 2012

    Comprei um shield xbee, eu consigo conectar ele na minha rede sem fio de casa.

  17. vinicius on August 21st, 2012

    Boa noite Robson! eu já venho estudando o Arduino a uns 4 meses e já fiz vários projetos com ele, porém este X10 me despertou curiosidade. Automatizei minha casa com relés e por isso teve muitos fios passando pela mesma, então gostaria que você me contasse qual produto da X10 você comprou para poder automatizar a sua casa sem utilizar fio algum, pois já dei uma procurada e até agora nada encontrei! Desde já obrigado e parabéns pelo excelente Post.

  18. José Roberto T Rodrigues on August 22nd, 2012

    Olá Dantas, pretendo automatizar uma sala de meu apartamento e gostaria saber se vc poderia fazer essa automação, pergunto pois sou leigo no assunto e as empresas de automação estão cobrando caro demais.

  19. admin on August 25th, 2012

    José,

    Eu não faço esse tipo de trabalho. Na verdade esse assunto é por hobby mesmo, e porque foi tema de pesquisa quando estava na faculdade. Realmente é caro!

    Robson

  20. Leo on September 22nd, 2012

    Bom tarde Robson,

    Estou fazendo um projeto de conclusão curso parecido com seu,porem utilizando a linha telefônica para os comandos. Seria possível você me ajudar na parte de comunicação do Arduino com o modulo X-10, estou pensando em utilizar o CM-15, porém estou com dificuldades na programação e software

  21. Robson on July 23rd, 2013

    Estou fazendo um tcc utilizando x-10. Tivemos alguns problemas tentando fazer o controlador liberado pela microchip. E agora estamos partindo para arduino. Poderia entrar em contato comigo para conversarmos.

    Obrigado
    Filipe

Vale Presente