domingo, 4 de novembro de 2012

Automação Residencial com Arduino na Prática - Parte 1 (Introdução)


Nos últimos eventos e treinamentos da Globalcode, fizemos muitas palestras e demonstrações de como utilizar o Arduino para controlar dispositivos eletrônicos tais como lâmpadas, motores, fitas de leds RGB, etc.
A intenção deste post é mostrar a vocês algumas ideias de como podemos implementar na prática tudo o que foi apresentado, ou seja, não só ver a coisa funcionando na bancada mas implementar de forma funcional e definitiva para que seja possível utilizar no dia a dia.

Nos últimos meses, dediquei um pouco do meu tempo livre trabalhando no desenvolvimento de algumas placas para automatizar as coisas no meu apartamento.

O objetivo principal durante esse desenvolvimento, foi tornar possível a automatização sem a necessidade da passagem de novos fios na instalação elétrica, e da forma mais simples possível para que qualquer pessoa com um conhecimento básico de elétrica conseguisse executar.

  Criei então uma pequena central de automação baseada em Arduino que se comunica por protocolo ZigBee (usei módulos XBee) com os diversos módulos espalhados pela casa. Esses módulos têm a função de ler os comandos solicitados pelos usuários informando para a central. A central analisa o tipo de comando recebido e envia a ação para o módulo correspondente à solicitação. A central também recebe comandos do celular/IPad via internet, dispensando a necessidade de um servidor.

CENTRAL

A central é formada por uma placa Arduino, um shield ethernet (responsável pela conectividade para o mundo externo via internet por celular, tablet ou browser), um módulo XBee para comunicação com os módulos de controle espalhados pela residência e um display OLED que fornece informações de funcionamento do sistema tais como:
- IP origem do comando (dispositivo OSC, IPAD ou celular)
- Tipo de comando (ON, OFF, %dimmer)
- Dispositivo que originou o comando
- Mensagens API do XBee (Debug).

Podemos opcionalmente acoplar também um módulo RTC que permitirá ligar e desligar equipamentos em horários determinados automaticamente.

Abaixo temos fotos da central básica que instalei na parede da cozinha aqui em casa:



MÓDULOS DE CONTROLE


Cada módulo de controle é responsável pelo controle de um ou mais dispositivos, sendo que desenvolvi 4 tipos de módulos:

Módulo MA02

O MA02 permite o controle de dois relés e também a leitura de 6 chaves, sendo que duas das seis chaves podem ser substituídas por sensores analógicos tais como temperatura, umidade e distância.

Este módulo tem como núcleo um XBee que, com a configuração adequada, permite monitorar as chaves reportando automaticamente para a central quando alguma delas for pressionada. Podemos também acoplar sensores analógicos no lugar de duas das chaves e configurar o módulo XBee para executar amostragens desses sensores em intervalos programáveis e enviar para a central.
O MA02 possui uma fonte chaveada On-Board que permite alimentarmos ele diretamente com os 110 volts da rede elétrica, evitando assim a necessidade da passagem de uma rede DC de alimentação ou instação de uma fonte acoplada ao módulo.

Foto do módulo MA02



Modulo DIMMER

O módulo dimmer além de acomodar um dimmer digital que pode ser controlado remotamente ou através de um sensor de distância IR acoplado na placa, permite também o controle de um relê e a leitura de uma chave. O núcleo deste módulo é um microcontrolador ATMEGA328 (mesmo utilizado no Arduino). Nele roda um programa que controla o dimmer, sendo que nesta última versão do programa otimizei o código para ajustar automaticamente o ângulo de disparo do TRIAC conforme a frequência da rede, evitando assim aquelas piscadinhas indesejadas das versões anteriores. O controle do relê e a leitura da chave são executados pelo próprio XBee diretamente com suporte da central.

No lugar do sensor de distância deste módulo podem ser conectados outros tipos de sensores caso o dimmer  utilize apenas o controle remoto via celular/tablet.

Este módulo também possui a fonte chaveda On-Board, permitindo alimentação direta em 110 volts.

Foto módulo Dimmer


Abaixo temos fotos da placa dimmer instalada em um abajur de mesa.







Módulo IR/RGB

Este módulo também permite controlar um relé e leitura de uma chave como no módulo dimmer (funções controladas pelo XBee). A comunicação com a central ocorre também por Xbee.
Ele também possui como núcleo um ATMEGA328 que é responsável pela recepção e transmissão de sinais IR permitindo controlar dispositivos como televisores, ar condicionado, etc. Ele também possibilita controlar as luzes da casa usando por exemplo o controle remoto da TV. Temos também nesse módulo 3 transistores conectados a portas PWM do ATMEGA. Isto nos permite executar o controle de fitas de iluminação RGB, servo motores, etc.

Foto Módulo IR/RGB

















Módulo de Comando

O módulo de comando é destinado aos locais onde não temos pontos de controle de lâmpadas mas que gostaríamos de ter. Ele também permite a instalação de sensores em qualquer ponto da casa, necessitando apenas de alimentação 110 volts. A comunicação com a central ocorre também por Xbee. Este módulo tem dimensões bem reduzidas. Ele tem capacidade para monitoramento de 6 chaves e 2 sensores analógicos. Esse módulo está atualmente em fase de produção da placa de circuito impresso, por isso ainda não tenho a foto da placa montada, apenas o desenho.

Foto módulo de comando




















Todos os módulos de controle foram desenvolvidos de forma que possam ser acondicionados nas caixas 4x2 ou 4x4 existentes nas instalações residenciais.

Foto placa instalada dentro da caixa















Uma vez que instalamos esses módulos nas caixas existentes, não temos mais espaço para os interruptores originais, então desenvolvi a placa abaixo que encaixa nos espelhos PIAL da linha PLUS, (modelo bastante utilizado na maioria das construções novas), e que permite acomodar até 6 chaves de comando em caixas 4x2 e 12 chaves de comando em caixas 4x4.

Fotos placa SWB-6 (chaves de comando)

Foto placa SWB-6 (chaves de comando)-parte traseira

















Obs: Podemos montar as chaves em diversos tipos de combinação para 1, 2, 3, 4, 5 e 6 comandos.


Foto conexão da placa de chaves ao módulo de controle






























Para o acabamento final, desenhei em Autocad alguns modelos de paineis com configurações de 2, 3, 4
e 6 chaves que foram cortadas a laser em acrílico branco, dando assim um acabamento bem legal junto com o espelho original.

Fotos acabamentos chaves















Foto montagem da placa de chaves no espelho Pial Legrand















Foto montagem painel acrílico















Foto aparência final do comando automatizado















Uma vez automatizada, cada caixa permite o comando de até 6 lâmpadas diferentes.
O legal deste sistema é que, como a leitura das chaves é enviada para a central e esta define qual relê será acionado, podemos configurar qualquer lâmpada que foi automatizada para ser controlada por qualquer botão de qualquer caixa.
Por exemplo: Na caixa de comando acima que eu tinha apenas o controle da lâmpada do hall de entrada do meu apartamento, agora posso a partir dela acender e apagar as lâmpadas da sala de estar, sala de jantar, aquário, cozinha, terraço da sala além da lâmpada original do hall de entrada.


Controle utilizando celular ou Tablet

Além do controle pelas chaves de comando existentes nos módulos, podemos comandar todo o sistema de qualquer lugar que tenha conexão com internet. Para isso podemos utilizar um celular, tablet e até mesmo via browser em um PC.

No caso do controle via celular ou tablet, optei pela utilização do protocolo OSC (OPEN SOUND CONTROL) que é uma evolução do protocolo MIDI que foi desenvolvida para usar interfaces de rede mais modernas. Esse protocolo é excelente para controle em automação, pois ele tem uma resposta muito rápida. 
Além disso existe uma biblioteca pronta para Arduino chamada ARDOSC que facilita a utilização desse protocolo. No celular ou tablet podemos usar a aplicação TouchOSC. Para isso temos o aplicativo TouchOSC Editor que nos permite a customização das interfaces de comando com layout e botões personalizados sem a necessidade de se saber desenvolver em IOS ou Android.

Abaixo temos exemplos das telas de comando que desenvolvi para controle das lâmpadas aqui em casa.

Telas de comando para IPhone








































Ao utilizar um tablet como IPAD, como as dimensões da tela são mais generosas, podemos agrupar todos os comandos em uma única tela e até colocá-los em um layout que reproduza fielmente a planta do imóvel (veja modelo que fiz para meu apartamento onde tenho o comando de todas as lâmpadas na foto abaixo).


Tela de comando para IPad





























- áreas delimitadas por linha vermelha definem os cômodos do apartamento.
- áreas delimitadas por linhas verdes definem as áreas de comandos touch para lâmpadas de teto.
- áreas delimitadas por linhas azuis definem as áreas de comandos touch para lâmpadas outros tipos.
- áreas delimitadas por linhas roxas definem as áreas de comandos touch para lâmpadas dimerizadas.



Estou preparando um vídeo com uma demonstração prática do funcionamento de alguns comandos sendo executados via chave e via celular/Ipad que em breve colocarei aqui no post.

Esta primeira parte foi uma introdução da ideia de como automatizar com o Arduino.
Nos próximos posts darei mais detalhes do funcionamento de cada módulo e também mostrarei exemplos dos códigos.

Espero que gostem da ideia e que se divirtam como eu.

Abraços


José Luiz Sanchez Lorenzo
jllorenzo@terra.com.br
@jllorenzo