Se você está pensando em um projeto usando módulos RF (radiofrequência) precisa conhecer o Mini Transmissor RF 433MHz H34A, um módulo barato, pequeno e com baixo consumo de energia.

Nós já usamos módulos RF 433MHz aqui no Arduino e Cia, como no projeto do Sistema Chama Garçom, um sistema com vários transmissores e apenas 1 módulo receptor. É um projeto onde o mini transmissor se encaixaria muito bem, pelo tamanho e praticidade de uso.

O mini transmissor RF 433MHz H34A

O módulo RF 433MHz H34A é esse minúsculo módulo da imagem abaixo. Medindo apenas 10,5 x 10,5 mm e extremamente leve, pode ser facilmente embutido em robôs, alarmes, drones ou projetos de automação residencial.

Módulo Mini Transmissor RF 433MHz H34A

A comunicação com o microcontrolador é feita por meio do pino DAT e o módulo suporta alimentação entre 2,5 e 12 VDC, possuindo um pino para conexão de antena externa (recomendo).

Módulo RF H34A Pinagem

Apesar do módulo H34A possuir um “irmão” receptor, o H3V3F/H3V4F, conseguimos utiliza-lo sem problemas com um outro conhecido receptor 433MHz.

Neste post então vamos montar dois circuitos: um transmissor, com o módulo H34A e Arduino Uno, e o receptor, com o módulo receptor 433MHz MX-05V.

Circuito transmissor RF

Neste circuito vamos conectar o pino DAT do H34A no pino digital 2 do Arduino Uno. No pino 7 do Arduino vamos conectar um push-button, que quando acionado enviará comandos para a outra placa.

O esquema de ligação fica assim:

Circuito Arduino Uno e módulo transmissor RF 433MHz

Note que estamos usando alimentação de 5V e para o push-button vamos acionar o resistor pull-up interno do Arduino.

Circuito Receptor RF

No receptor, vamos seguir a mesma linha: pino de dados (qualquer um dos dois pinos) do módulo conectado no pino digital 2 do Arduino Uno, e no pino digital 6 vamos conectar um led:

Circuito Arduino Uno e módulo Receptorr RF 433MHz

Usei no led um resistor de 1K como limitador de corrente, mas você pode usar outros valores sem problemas.

Instalação da biblioteca para módulos RF 433MHz

Para os dois programas a seguir usaremos a biblioteca RCSwitch, instalada a partir da IDE do Arduino.

Na IDE, acesse o menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Na tela do gerenciador, procure por RCSwitch e selecione Instalar:

Instalação biblioteca RCSwitch na IDE Arduino

Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.

Com a biblioteca devidamente instalada, vamos carregar um programa em cada placa Arduino.

Programa transmissor RF 433MHz

Carregue o programa abaixo na placa Arduino que tem o circuito Transmissor (com o H34A).

Este programa verifica o estado do botão e, caso seja pressionado, envia o valor 1 ou 2 para o circuito receptor, que liga (caso receba o valor 1) ou desliga (caso receba o valor 2) o led conectado no Arduino.

//Programa: Mini Transmissor RF 433 MHz H34A
//Autor: Arduino e Cia

#include <RCSwitch.h>

RCSwitch rfsense = RCSwitch();

boolean envia_dado = 1;

void setup()
{
  Serial.begin(9600);
  //Pino push-button
  pinMode(7, INPUT_PULLUP);

  Serial.println("Transmissor RF 433 MHz");
  Serial.println("Iniciando.....................");
  delay(2000);

  //Pino DAT e transmissao de dados
  pinMode(2, OUTPUT);
  rfsense.enableTransmit(2);
  delay(1000);
}

void loop()
{
  //Verifica se o botao foi pressionado
  int botao = digitalRead(7);

  //Caso tenha sido pressionado, muda o estado da variavel envia_dado
  if (botao == 0)
  {
    envia_dado = !envia_dado;
    if (envia_dado == 0)
    {
      Serial.println("Enviado 1 (ligar led");
      rfsense.send(1, 8);
    } else if (envia_dado == 1)
    {
      Serial.println("Enviado 2 (desligar led");
      rfsense.send(2, 8);
    }
  }
  while (digitalRead(7) == 0)
  {
    delay(50);
  }
}

Vamos agora carregar o programa do receptor.

Programa receptor

O programa receptor basicamente aguarda os dados enviados e, caso receba o valor 1 liga o led conectado na porta 6, e desliga o led caso receba o valor 2.

//Programa: Circuito Receptor RF 433 MHz
//Autor: Arduino e Cia

#include <RCSwitch.h>

RCSwitch rfsense = RCSwitch();

void setup()
{
  Serial.begin(9600);
  //Pino do led
  pinMode(6, OUTPUT);

  //Receptor na interrupção 0 (pino digital 2)
  rfsense.enableReceive(0);

  Serial.println("Receptor RF 433 MHz");
  Serial.println("Iniciando.....................");
  delay(2000);
}

void loop()
{
  if (rfsense.available())
  {
    //Verifica o valor recebido pelo receptor
    int valor = rfsense.getReceivedValue();

    //Caso receba o valor 1 liga o led, caso receba 2, desliga
    if (valor == 1)
    {
      Serial.println("Liga o led");
      digitalWrite(6, HIGH);
    }
    else if (valor == 2)
    {
      Serial.println("Desliga o led");
      digitalWrite(6, LOW);
    }
    rfsense.resetAvailable();
  }
}

Você pode acompanhar o processo de envio e recepção de mensagens pelo serial monitor.

Gostou? Confira outros posts usando wireless aqui mesmo no Arduino e Cia!

3.7/5 - (8 votes)