Como automatizar quase qualquer coisa.

Esse será o primeiro de uma série de dois artigos sobre automação de periféricos (escrever sobre automação residencial levaria consideravelmente mais tempo). A intenção aqui será explicar como seria possível controlar objetos que podem ser automatizados via energia elétrica, qualquer coisa que possa ficar ligado diretamente em uma tomada, que cortando e ligando a energia elétrica seja suficiente para colocar em funcionamento ou interromper o uso (por exemplo um abajur, uma lâmpada, um ventilador, etc). Há ainda a possibilidade de automatizar dispositivos controlados por infra-vermelho, também conhecido como controle remoto (televisores, conversor de tv a cabo, ar condicionado, aparelhos de som, etc). Tudo controlado pelo telefone celular, de qualquer lugar que tenha acesso à internet.

Os principais requisitos:

  • conhecimento em Arduino;
  • dispor de uma rede WiFi.

Com relação ao uso do Arduino, existem vários tutoriais, inclusive na página do Arduino, ensinando a desenvolver para ele (realmente é muito fácil, qualquer pessoa com conhecimento básico de algoritmos e programação é capaz de fazê-lo).

De forma a se ter o dispositivo que se deseja automatizar conectado na internet, basta utilizar-se um módulo ESP8266 que nada mais é (a grosso modo) do que um equipamento compatível com Arduino, em termos de programação, e que já possui capacidade de se conectar a roteadores WiFi.

Automatizando uma tomada

Para se conseguir ligar e desligar uma tomada, pelo celular, pode-se utilizar um componente chamado relé ( que é um interruptor controlado por software ), conectá-lo ao micro controlador ESP8266 e deixar o ESP8266 ligar e desligar o relé sempre que o usuário decidir.

Módulo relé

 

A imagem que segue mostra um módulo ESP8266 conectado a um relé, que está conectado a uma extensão.

Fonte: http://www.instructables.com/id/ESP8266-Automatic-Router-Restart/

Na imagem anterior é possível perceber que o relé está agindo como se fosse uma tomada, ligando e cortando a eletricidade do fio. Isso valida o que se gostaria de demonstrar que tudo o que for possível de ser controlado, alimentando e desligando a eletricidade pode-se automatizar dessa forma.

Automatizando via controle infra-vermelho

De forma a automatizar qualquer dispositivo por infra-vermelho é necessário primeiramente descobrir os códigos que o controle remoto do dispositivo utiliza. Um LED infravermelho é basicamente uma lampada de LED que pisca como se fosse Código Morse e que não pode ser visto pelo olho humano (mas através de uma câmera de celular, pode-se observar ele piscando). Existem duas formas de se obter o código para uma determinada tecla do controle remoto: achando na internet quem já descobriu os códigos do controle remoto em questão ou copiando os códigos do controle original.

Código copiado da internet

O código de cada tecla é, na maioria dos casos representado por um byte e aparece da seguinte forma dentro do programa:

unsigned int Sony_map_code[] = {
  0xA90,    //  "power",     
  0x910,    //  "0",         
   0x10,    //  "1",         
  0x810,    //  "2",         
  0x410,    //  "3",         
  0xc10,    //  "4",         
  0x210,    //  "5",         
  0xa10,    //  "6",         
  0x610,    //  "7",         
  0xe10,    //  "8",         
  0x110,    //  "9",         
  0x490,    //  "Vol Up",    
  0xc90,    //  "Vol Dn",    
   0x90,    //  "Chan Up",   
  0x890,    //  "Chan Dn",   
  0x190,    //  "Picture Up",
  0x990,    //  "Picture Dn",
  0xA50,    //  "TV/Video",  
  0x2d0,    //  "Clear",     
  0xdd0,    //  "Jump",      
  0xe90,    //  "MTS",       
  0x5d0,    //  "Display",   
  0x5d0,    //  "Sleep",     
  0x290,    //  "Muting",    
  0xd9a,    //  "Rewind",    
  0x59a,    //  "Play",      
  0x99a,    //  "Pause",     
  0x19a,    //  "Stop",      
  0xb9a,    //  "Record",    
  0x39a,    //  "FF",        
  0xcd0,    //  "AM/PM",     
  0xd10,    //  "Enter",     
  0x69a,    //  "Eject" 
};

Decodificando as teclas de um controle remoto

Para descobrir o código de uma tecla do controle remoto, basta montar um circuito (com ajuda do Arduino ou do ESP8266), utilizando um receptor infra-vermelho (pequeno transistor capaz de “enxergar” as piscadas do LED infravermelho) e imprimindo na tela do editor (é possível imprimir para o usuário qualquer informação quando conectado a um PC).

Transistor receptor infra-vermelho

A imagem anterior é a de um receptor infravermelho. Todo equipamento controlado por um controle remoto infravermelho possui um transistor equivalente a esse em seu interior.

A imagem que segue é a de um circuito capaz de decodificar qualquer sinal infra-vermelho. O tutorial para esse  circuito está disponível no site Instructables.

Arduino UNO recebendo sinal Infra-vermelho

Após os códigos dos botões do controle remoto estarem disponíveis, basta coloca-los no software que será gravado dentro do ESP8266. De forma a emitir os sinais, é necessário colocar no ESP8266 um LED infra-vermelho e utilizar uma biblioteca de controle remoto (que fará todo o trabalho difícil de codificar os sinais e transmitir para o LED). Para isso o led do ESP8266 deve ficar em uma posição que seja percebido pelo receptor infra-vermelho do equipamento desejado.

 

Automatizando pelo WiFi

Independente do que se deseja automatizar, será necessário conectar o ESP8266 a uma rede WiFi. Pode-se colocar tanto o ssid da rede fixo no código ou criar uma rede temporária e fazer o usuário cadastrar ao ligar o módulo. Após a conexão estar estabelecida, pode-se colocar uma página HTML estática dentro do módulo, que irá conter botões que disparam ações no código, ou utilizar um protocolo de alto nível para automatização residencial com o MQTT. Independente da forma escolhida, o objetivo é sempre transmitir escolhas do usuário para um determinado ESP8266 via WiFi e deixar o ESP8266 emitir os comandos para o relé ou infra-vermelho.

O próximo artigo será sobre como automatizar um dispositivo específico.



							

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *