Arduino – Controle de Lâmpada através de RF e Interruptor

Arduino – Controle de Lâmpada através de RF e Interruptor

Nesta prática você vai aprender a utilizar com Arduino o Controle Remoto RF e o Receptor RF. O resultado final desta prática será o controle de uma lâmpada através do Controle Remoto RF e do Interruptor Three Way (paralelo).

img00_arduino_controle_de_lampada_através_de_rf_e_interruptor_controle_remoto_receptor_433_315_mhz_rele_sensor_tensao_ac

Antes de prosseguir, recomendo que você leia e execute a prática Utilizando o Controle Remoto RF e Receptor RF. Na prática, passei informações detalhadas sobre o controle remoto rf e o receptor rf e que serão importantes você saber para continuar.

Na prática anterior relacionada ao controle remoto rf e o receptor rf, fizemos o controle de quatro LEDs através do pressionamento dos botões no transmissor rf. Não foi utilizado nenhuma plataforma embarcada para trabalhar em conjunto com nosso KIT RF (transmissor em formato de controle remoto e o receptor).

O uso de RF em conjunto com o Arduino nos permite implementar projetos bem interessantes. Nos passos abaixo, vamos implementar o controle de uma lâmpada através do controle remoto RF e do interruptor paralelo. A lâmpada será conectada ao módulo relé 5V que consequentemente vai estar conectado ao Arduino. Vale ressaltar que com o controle remoto rf utilizado nesta prática é possível controlar até quatro lâmpadas ou quatro circuitos de lâmpadas.

Ao utilizar o interruptor paralelo, será necessário o uso do sensor de tensão ac para que seja possível capturar o estado atual da lâmpada e informar ao Arduino. Se o controle da lâmpada fosse feito apenas pelo controle remoto rf não seria necessário o sensor de tensão ac, pois todo controle estaria em cima do Arduino. Para um projeto de automação residencial em que vá utilizar um sistema microcontrolado para acionamento da iluminação, o ideal é que se tenha um controle manual independente do sistema, pois se por ventura o sistema ficar inoperante, você poderá fazer o controle da iluminação através do meio externo. Esta é uma das vantagens em se usar interruptor paralelo no seu projeto de automação de iluminação, pois você poderá controlar a iluminação mesmo que o sistema esteja offline.

Para que o relé seja acionado através do transmissor rf, será necessário conectar o receptor rf ao Arduino.

Há no mercado opção do KIT com frequência de 315 MHz e 433 MHz. Para esta prática utilizei o KIT de 433 MHz, mas se já possui o de 315 MHz, poderá utilizá-lo sem nenhum problema.

Abaixo está a lista dos itens necessários. Alguns dos itens você pode adquirir em lojas de elétrica:

Arduino Uno R3 com Cabo USB A/B
KIT Controle Remoto (Transmissor RF) e Receptor RF 433MHz ou KIT Controle Remoto (Transmissor RF) e Receptor RF 315MHz
Módulo Relé 5V de 1 Canal
Chave Gangorra KCD1-102 Preta 3T (Three Way)
Sensor (Detector) de Tensão AC 127V / 220V
LED
Resistor de 220Ω
Cabo Jumper Macho-macho
Cabo Jumper Macho-fêmea
Protoboard
Fonte Ajustável 3.3V / 5V para Protoboard MB102
Fonte DC 12V 1A Bivolt Chaveada
Antena Helicoidal de 2dBi para RF 433MHz ou Antena Helicoidal de 2dBi para RF 315MHz (Opcional)
Cabos com Garra Jacaré (Opcional)
– Lâmpada
– Receptáculo (boquilha)
– Cabo paralelo de 1,5mm ou 2,5mm
– Tomada (Rede alternada de 127V)

A antena helicoidal aumenta o alcance de recepção da placa, mas fica a seu critério utilizá-la.

Se ainda não codificou seu controle remoto rf e o receptor rf, leia e execute a postagem Utilizando o Controle Remoto RF e Receptor RF para continuar.

Utilizei a Chave Gangorra 3T nesta prática, contudo você pode utilizar qualquer interruptor three way.

Abaixo está o esquema de ligação que você deve montar:

ATENÇÃO: MUITO CUIDADO AO EXECUTAR PRÁTICAS QUE ENVOLVAM TENSÃO / CORRENTE ALTERNADA! FAÇA TODAS AS LIGAÇÕES COM O CIRCUITO COMPLETAMENTE DESLIGADO E ANTES DE FAZER OS TESTES VERIFIQUE CADA UMA DAS LIGAÇÕES PARA ELIMINAR A POSSIBILIDADE DE CURTO ENTRE FASE / NEUTRO OU FASE / FASE.

img01_arduino_controle_de_lampada_através_de_rf_e_interruptor_controle_remoto_receptor_433_315_mhz_rele_sensor_tensao_ac(Clique na imagem para ampliar)

Utilizei uma fonte ajustável para protoboard padrão MB102 para alimentar o receptor rf, o módulo relé 5V e o sensor de tensão ac. Alimentei a mesma com uma fonte DC de 12V 1A e na saída ela gera 3.3V / 5V e uma corrente máxima de 700mA. Basta acoplar a fonte ajustável na extremidade da protoboard e as linhas laterais passam a ter 3.3V ou 5V. Note que a fonte possui jumpers que definem qual a tensão de saída nas linhas laterais da protoboard:

img02_utilizando_controle_remoto_rf_e_receptor_rf_433_315_mhz_arduino_pisca_piscando_led

Um outro ponto importante ao utilizar a fonte ajustável, é ficar atento ao lado da protoboard em que vai conectá-la, pois dependendo do lado, o VCC (+) e o GND (-) vão ficar invertidos e isso pode danificar os componentes e o receptor. Caso não possua a fonte ajustável para protoboard, você pode utilizar uma fonte de 5VDC de pelo menos 500mA.

Terminado o esquema de ligação, faça a conferência e se tudo estiver OK ligue o circuito a rede AC para ser alimentado e o Arduino ao computador através do cabo USB.

Será necessário instalar uma biblioteca na IDE do Arduino para em seguida carregar o código. A biblioteca que vamos instalar é a SimpleTimer. Com esta biblioteca o Arduino pode executar um trecho do código em um determinado intervalo de tempo sem que haja interrupção. Comumente é utilizado a função ‘delay’ para definir o tempo de execução de um trecho do código, contudo, ao usar esta função o código vai ficar parado até que o tempo definido seja executado. No código que vamos utilizar para esta prática, será necessário definir um tempo de execução para a função que vai verificar se o botão do controle remoto foi pressionado. Caso não seja usado um tempo para execução da função, a lâmpada não será controlada corretamente, pois ao pressionar o botão o relé poderá ser acionado mais de uma vez. Além disso, a função garante que não seja necessário manter o botão do controle remoto rf pressionado para que a lâmpada se mantenha acesa.

Se você não sabe como fazer a instalação de bibliotecas na IDE, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Importando bibliotecas para a IDE

Faça o download da biblioteca SimpleTimer e em seguida faça a instalação da mesma na IDE do Arduino.

O código para testes está abaixo, basta copiar o mesmo, colar na IDE, salvar e carregar:

Leia os comentários do código para entender qual a finalidade cada linha.

Após o carregamento do código abra o monitor serial na IDE do Arduino e veja que a informação de “LAMPADA DESLIGADA” ou “LAMPADA LIGADA” está sendo mostrada. Pressione e solte o botão ‘A’ do controle remoto e veja que a lâmpada vai alterar o estado (ligada / desligada) e no monitor serial a informação vai atualizar. Quando o botão ‘A’ é clicado, a saída D0 do receptor RF que está conectado ao pino digital 7 passa a ter nível lógico 1 e isso faz com que o estado do módulo relé seja alterado de acordo com o nosso código e consequentemente a lâmpada irá acender ou apagar. Note que o LED conectado ao pino VT do receptor RF vai acender sempre que pressionarmos algum botão do controle remoto, pois ele indica que a transmissão é válida para qualquer um dos botões, contudo, apenas o botão ‘A’ é que irá fazer o controle da lâmpada.

Agora pressione o interruptor paralelo e veja que a lâmpada vai mudar de estado e a informação na serial vai atualizar.

Independente se o controle da lâmpada está sendo feito via controle remoto rf ou interruptor paralelo, o estado atual da mesma será apresentado no monitor serial, pois o sensor de tensão ac está ligado em paralelo com o circuito para detectar a presença de tensão, mais precisamente no retorno que sai do módulo relé para a lâmpada e no neutro.

Você vai notar que a informação na serial leva pelo menos 1 segundo para atualizar sempre que o estado da lâmpada muda. Isto ocorre, pois no código foi definido ‘if(analogRead(sensorTensao) > 70){‘, logo, a leitura no pino analógico deve atingir um valor maior que 70 para acusar lâmpada ligada e um valor menor que 70 para acusar lâmpada desligada. Se alterarmos o 70 para um valor menor, a informação de lâmpada ligada irá atualizar com mais rapidez, contudo a informação de lâmpada desligada vai levar um tempo maior para atualizar no monitor serial. Portanto, faça testes com outros valores e veja qual irá retornar a informação com mais rapidez.

No vídeo abaixo você pode ver o resultado desta prática:

No controle remoto ainda restam três botões que você pode programar para controlar mais lâmpadas ou definir outras funções.

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 11 comentários para esta postagem
  1. Daniel às 09:21

    Olá amigo! Estou tentando reproduzir, porém não está funcionando a parte do receptor RF. No desenho de conexão entre os componentes, o receptor está conectado na protoboard usando cabo jumper macho-fêmea?
    Porém no seu vídeo, o receptor parece estar conectado direto na protoboard, nesse caso, em qual fileira da protoboard você conectou? E como ficou o esquema dos jumpers para funcionar?

    Agradeço desde já, e parabéns pelo trabalho!

    • Euler Oliveira Autor às 08:51

      Olá Daniel.

      Agradeço pelo comentário!

      O esquema de ligação mostrado no tutorial é o mesmo usado em vídeo.

      Independente se o Receptor RF está na protoboard, soldado diretamente no terminais ou cabos jumpers ligados ao terminais do mesmo, o esquema de ligação deve ser feito conforme o tutorial.

  2. clomilson às 16:09

    estou com um problema com esse sensor. tudo esta funcionando mas a distancia do controle para receptor é extremamente baixa, se eu afastar o controle 10 cm, o sensor não recebe mais o comando.
    se puder me ajudar eu agradeço muito.

  3. Filipe Cardoso às 22:11

    Boa noite,
    Parabéns por essa postagem !
    Existe esse kit completo para venda ?

  4. Wagner às 20:49

    Olá!
    Estou fazendo um projeto sobre domótica e vou usar Arduino.
    Para acionar lâmpadas tanto pelo interruptor (manualmente) ou via Arduino (remotamente), forçosamente, o interruptor da lâmpada a ser acionada tem que ser paralelo, ou seja, de três contatos? e se sim, então para realizar esta ação através do Arduino, é impossível com interruptores simples, correto?

    • Euler Oliveira Autor às 08:02

      Olá Wagner.

      Se você deseja obter o estado atual da lâmpada, terá que usar interruptor paralelo (three way) ou interruptor pulsador. Abaixo você pode ver a vantagem e desvantagem de cada um deles.

      Interruptor paralelo:

      Vantagem: supondo que o Arduino dê um problema (desligue ou não aceite os comandos da interface virtual) e você queira controlar a lâmpada, ainda será possível, pois o interruptor three way não depende do Arduino para que suas ações sejam executadas.

      Desvantagem: exige um componente auxiliar (Sensor de Tensão AC 127V / 220V) para verificar o estado atual da lâmpada.

      Interruptor pulsador:

      Vantagem: possibilita que cenas pré-definidas no código sejam executadas de acordo com os cliques no pulsador. Exemplo: se pressionar o interruptor pulsador duas vezes seguidas um conjunto de lâmpadas é aceso ou se pressionar 3 vezes acende uma lâmpada por 30 segundos. Além disso, o mesmo NÃO exige um componente auxiliar para verificar o estado atual da lâmpada, visto que o interruptor fica conectado diretamente ao Arduino.

      Desvantagem: quando se utiliza interruptor pulsador o controle fica todo em cima da plataforma microcontrolada / embarcada, logo, se o Arduino desligar ou travar, você perde o controle sobre a lâmpada, pois depende que o Arduino interprete o pressionamento do interruptor para em seguida executar a ação.

  5. MARCELO às 18:47

    OLA SEU VIDEIOS SAO MUITO PEQUENOS MAS SAO OS MELHORES EM RESULTADO NAO PARE E DIVULQUE MAS

    • Euler Oliveira Autor às 15:15

      Olá Marcelo.

      Agradeço as considerações.

      Os vídeos são curtos, pois o intuito deles é demonstrar o resultado final da prática.

      As informações sobre as peças utilizadas, detalhes sobre elas, esquema de ligação e explicação sobre o funcionamento, fica tudo disponível na postagem aqui no blog.

      Fica ligado que vem muita postagem bacana por aí!

  6. Cidney às 21:02

    Olá,
    Parabéns pelo blog,

    Então esse sensor terá que ter em todos os circuitos para que possa ser detectada a tensão, no caso de uso de interruptor.

    • Euler Oliveira Autor às 12:14

      Olá Cidney.

      Obrigado pelo reconhecimento!

      Se apenas um interruptor paralelo estiver controlando um circuito de lâmpadas, poderá utilizar apenas um sensor de tensão ac para capturar o estado atual deste circuito. Caso tenha um interruptor paralelo controlando cada uma das lâmpadas, deverá utilizar um sensor de tensão ac por interruptor.