Uso de Controle Remoto Infravermelho com aparelhos Sonoff Deixe um comentário

Nesse post vamos apresentar uma maneira de utilizar qualquer controle remoto infravermelho como meio de acionar dispositivos Sonoff, utilizando apenas uma placa de desenvolvimento baseado no ESP8266 e um Receptor Universal Infravermelho.

projeto do controle remoto com sonoff completo

Com o projeto apresentado no post você pode facilmente utilizar um controle remoto sobressalente ou botões não utilizados do controle remoto da sua televisão para controlar as luzes e eletrodomésticos da sua casa. 

Gostou da ideia? Então continue lendo 🙂

Materiais Necessários

Para montar esse projeto serão necessários os seguintes materiais:

Se você ainda não conhece os dispositivos Sonoff, acesse o post “Qual dispositivo Sonoff comprar?

Montagem do Circuito

Esquemático do controle remoto com sonoff

A montagem desse projeto é extremamente simples. O pino VCC do Receptor Infravermelho deve ser conectado ao pino 3V3 do NodeMCU, o pino GND do receptor ao GND do NodeMCU e o pino de dados do receptor a um pino digital do módulo – utilizaremos o D5.

Configuração IFTTT

Utilizaremos o IFTTT para enviar os comandos para a plataforma eWeLink quando fizermos um pedido GET através do ESP8266 ao URL fornecido.

O primeiro passo, é criar uma conta no serviço IFTTT através desse link ou do aplicativo mobile.

Após criada a conta, utilize a área de busca e escreva Webhooks. Vá na aba “Services” e clique em “Webhooks”.

No canto superior direito clique em “Documentation” você verá a frase “Your Key is:” seguido de uma senha em negrito que você deve anotar para uso posterior.

Na página inicial, vá em “Explore” (na web) ou “Get more” (no app) e clique em “Make your own Applets from scratch”.

 Nesse momento você vai ser apresentado a uma página onde estará em destaque a frase If + This Than That. Clique em “This” para escolher a condição para a qual a ação será realizada.

Utilizaremos o serviço Webhooks, e a funcionalidade Receive a web request. Escolha um nome para o evento de ligar o seu interruptor e clique em “Create trigger”.

Agora você verá a frase If This Than + That. Clique em “That” para escolher a ação a ser realizada quando a condição é atendida.

Utilizaremos o serviço eWeLink que é a plataforma de controle padrão dos dispositivos Sonoff e cuja conta você criou no momento da configuração inicial do seu dispositivo. A atividade a ser selecionada é Turn 1 Channel Plug on or off. Escolha o dispositivo a ser controlado e selecione on.

IFTTT completando o campo

Agora é só repetir o processo para desligar o dispositivo escolhendo um nome diferente para o evento do Webhooks e selecionando off na atividade do eWeLink. Caso deseje, o processo pode ser repetido para quantos dispositivos desejar.

Programação

Agora, precisamos obter os códigos referentes aos botões do controle remoto que deseja utilizar. Para isso vá até o gerenciador de bibliotecas da Arduino IDE e instale a biblioteca IRremoteESP8266

Na IDE vá em Arquivo →  Exemplos →  IRremoteESP8266 →  IRrecvDumpV2. Carregue esse sketch exemplo na sua placa. Para saber como carregar um programa no seu NodeMCU acesse “Como programar o NodeMCU com IDE Arduino”.

Após carregado o sketch e feita as conexões, abra o monitor serial. Aponte o controle remoto para o receptor e clique no botão que deseja utilizar para ligar o Sonoff. O monitor serial deve apresentar uma mensagem da forma abaixo.

Monitor serial com os dados do controle remoto com sonoff

Anote o código destacado, e repita o processo para o botão que deseja usar para desligar o dispositivo. 

Com os códigos em mãos, copie o sketch abaixo para sua IDE e substitua os asteriscos nos locais indicados pela sua senha do serviço Webhooks, códigos do controle remoto, nome e senha da sua rede WiFi e o nome dos eventos para ligar e desligar os dispositivos. 

No código abaixo o GPIO 14 (pino D5 da placa NodeMCU 1.0) está definido como o pino de dados do receptor infravermelho, caso seja necessário pode-se utilizar outro pino.

//Chave individual do serviço Webhooks
#define Webhooks  "**********************"

//Códigos do controle a ser utilizado
#define Ligado      **********
#define Desligado   **********


#define ssid      "***********" //Substitua os asteriscos pelo nome da sua rede WiFi
#define password  "***********" //Substitua os asteriscos pela senha da sua rede WiFi

#define kRecvPin 14       //Pino no qual o receptor infravermelho está conectado

//Bibliotecas-----------------
#include <IRac.h>
#include <IRrecv.h>
#include <IRtext.h>
#include <IRutils.h>
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <IRremoteESP8266.h>
#include <ESP8266HTTPClient.h>
//----------------------------

//Parâmetros da Biblioteca-----
#define kTimeout 15
#define kMinUnknownSize 12
#define kCaptureBufferSize 1024
//-----------------------------

//Declaração de Objetos-------------------------------------
HTTPClient http;
decode_results results;
IRrecv irrecv(kRecvPin, kCaptureBufferSize, kTimeout, true);
//----------------------------------------------------------

//Protótipos------------------
void IFTTTevent(String event);
//----------------------------

void setup() 
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  //Espera a conexão com a rede ser bem sucedida
  while(WiFi.status() != WL_CONNECTED)
  {
    delay(100);
  }

  //Incia o Receptor Infravermelho
  #if DECODE_HASH
    irrecv.setUnknownThreshold(kMinUnknownSize);
  #endif  // DECODE_HASH
    irrecv.enableIRIn();
}

void loop() 
{ 
  if (irrecv.decode(&results))            
  { 
    if(results.value == Ligado)
    {
      IFTTTevent("*******************");    //Substitua pelo nome do evento para ligar o dispositivo! 
    }
    
    if(results.value == Desligado)
    {
      IFTTTevent("*******************");    //Substitua pelo nome do evento para ligar o dispositivo! 
    }
  }
}

void IFTTTevent(String event)
{
  String URL = "http://maker.ifttt.com/trigger/";
  URL += event;
  URL += "/with/key/"
  URL += Webhooks;
  
  http.begin(URL);    //GET request URL
  http.GET();         //Send GET Request
  
  http.end();
}

Resultado

Com o projeto pronto, você pode colocá-lo próximo a sua televisão para que você possa apagar as luzes da sua casa ou ligar um ventilador de mesa sem levantar do sofá na hora de assistir um filme por exemplo. O dispositivo pode também ser usado para controlar as luzes de um quarto onde o interruptor fica longe da cama. 

Projeto montado na protoboard do controle remoto com sonoff

Gostou de aprender a controlar o Sonoff por Controle Remoto? Deixe um comentário aqui embaixo nos contando o que achou. 

Deixe uma resposta

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