Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ninja-forms domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114

Notice: A função _load_textdomain_just_in_time foi chamada incorretamente. O carregamento da tradução para o domínio twentyseventeen foi ativado muito cedo. Isso geralmente é um indicador de que algum código no plugin ou tema está sendo executado muito cedo. As traduções devem ser carregadas na ação init ou mais tarde. Leia como Depurar o WordPress para mais informações. (Esta mensagem foi adicionada na versão 6.7.0.) in /home/ff4jg8asu0ua/public_html/wp-includes/functions.php on line 6114
RF 433 MHz - Módulos Transmissor e Receptor - VLADCONTROL

RF 433 MHz – Módulos Transmissor e Receptor

RF 433 MHz consiste em um par de módulos transmissor e receptor de baixíssimo custo.
Ideal para iniciantes que desejam uma comunicação Wireless.
Popularmente usado em controle remoto, também se usa para transmissão de dados em baixa velocidade e curta distância.
Utiliza uma comunicação via rádio frequência com modulação AM e frequência de trabalho de 433MHz.

Especificações

Transmissor:

    • Descrição do Produto: MX-FS-03V
    • Alcance: 20-200 metros
    • Tensão de operação: 3,5-12V
    • Modo de operação: AM (Modulação em Amplitude)
    • Taxa de transferência: 4KB/s
    • Potência de transmissão:10mW
    • Frequência de transmissão: 433MHz
    • Dimensões: 19mm x 19mm

Receptor:

    • Descrição do Produto: MX-05V
    • Tensão de operação: 5V DC
    • Corrente de operação: 4mA
    • Sensibilidade: -105dB
    • Frequência de recepção: 433MHz
    • Dimensões: 30mm x 14mm x 7mm

Material Necessário para Teste e Projeto

    • 02 – Arduino
    • 01 – Par de Módulos TX/RX RF 433 MHz
    • 02 –  Push button
    • 02 – Resistor 220 Ω
    • 02 – Resistor 10 KΩ
    • Jumpers

Conhecendo os Módulos RF 433 MHz

Quase sempre, quando obtemos algum dispositivo novo, é logo saber se realmente está funcionando, mas para isso devemos ter conhecimento de como fazer a conexão correta.
A montagem com o Arduino é bem simples como podemos observar nos esquemas a seguir:

RF 433 MHz

Primeiramente, devemos incluir a biblioteca RH_ASK.h na IDE Arduino. Feito isso, monte os módulos nas respectivas placas conforme os esquemas:

Transmissor

RF 433 Transmissor - Esquema

 

Receptor

RF 433 Receptor - Esquema

Feita a montagem, então carregue os códigos:

Transmissor (Pino DATA na Porta Digital 12)

//TRANSMITTER PINO 12

// RadioHead - Version: Latest 
#include <RH_ASK.h>
// SPI - Version: Latest
// Not actualy used but needed to compile 
#include <SPI.h>

RH_ASK driver; 

void setup()
{
    Serial.begin(9600);
    if (!driver.init())
         Serial.println("init failed");
}

void loop()
{
    const char *msg = "Hello World!";
    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(1000);
}

 

Receptor (Pino DATA na Porta Digital 11)

//RECEIVER

// RadioHead - Version: Latest 
#include <RH_ASK.h>
// SPI - Version: Latest
// Not actualy used but needed to compile 
#include <SPI.h>

RH_ASK driver; 

void setup()
{
    Serial.begin(9600);
    if (!driver.init())
         Serial.println("init failed");
}

void loop()
{
    uint8_t buf[12];
    uint8_t buflen = sizeof(buf);
    if (driver.recv(buf, &buflen))
    {
      int i;
      Serial.print("Message: ");
      Serial.println((char*)buf);  
          
    }
}

O interessante desta biblioteca RH_ASK.h é que os pinos DATA já estão definidos. O transmissor devemos conectar o pino DATA na porta digital 12 no Arduino. O receptor devemos conectar o pino DATA na porta digital 11.
Então, já com os códigos carregados, basta abrir o Monitor Serial do receptor e se estiver tudo correto aparecerá uma mensagem a cada 1 segundo.

MENSAGEM TESTE RF433

Projeto

Depois de testar o funcionamento dos módulos RF 433 MHz, estamos prontos para iniciarmos um projeto simples de acendimento de LEDs via rádio.
Então, monte o projeto conforme os esquemas:

Transmissor

RF 433 Transmissor

Receptor

RF 433 Receptor

Inclua a biblioteca VirtualWire.h e depois carregue os códigos:

Código transmissor

#include <VirtualWire.h>

#define pinRF  12

struct tipoPacote {
  boolean valor1;
  boolean valor2;
};

tipoPacote pacote;

boolean leBotao(int porta);   // Protótipo função que lê o botão.

# define botaoPin_1 5   // Entrada do push button
# define botaoPin_2 6   // Entrada do push button

void setup() {

  vw_set_tx_pin(pinRF);
  vw_set_ptt_inverted(true);
  vw_setup(2000);

  Serial.begin(9600);

  pinMode(botaoPin_1, INPUT_PULLUP);   // Define o pino do botão como INPUT_PULLUP
  pinMode(botaoPin_2, INPUT_PULLUP);
  
}

void loop() {

  vw_send((uint8_t *)&pacote, sizeof(pacote));
  vw_wait_tx();

  pacote.valor1 = leBotao(botaoPin_1);
  Serial.print("Botao Verde     ");
  Serial.println(pacote.valor1);
  

  pacote.valor2 = leBotao(botaoPin_2);
  Serial.print("Botao Vermelho  ");
  Serial.println(pacote.valor2);
  

  delay(100);
}

boolean leBotao(int porta) // Funçao lê botão
{
  static boolean estadoAnterior[2] = {true, true}; /* static --> para manter a variável na memória */

  boolean estadoBotao = digitalRead(porta);
  boolean ligado = false;

  if (!estadoBotao && estadoAnterior[porta]) /* Esse controle permite que, mesmo o botão permanecendo apertado, vai ser considerado apenas uma vez*/
  {
    ligado = true;
  }

  estadoAnterior[porta] = estadoBotao;

  return ligado;
}

 

Código Receptor

#include <VirtualWire.h>

#define pinRF  11

struct tipoPacote {
  boolean valor1;
  boolean valor2;
};

tipoPacote pacote;
uint8_t buf[sizeof(pacote)];
uint8_t buflen = sizeof(pacote);

# define LedVerde 5
# define LedVermelho 6

void setup() {

  Serial.begin(9600);

  vw_set_rx_pin(pinRF);
  vw_setup(2000);
  vw_rx_start();

  pinMode(LedVerde, OUTPUT);
  pinMode(LedVermelho, OUTPUT);

}

void loop() {

  if ( vw_have_message() ) {
    vw_get_message(buf, &buflen);
    memcpy(&pacote, &buf, buflen);
  }

  if (pacote.valor1 == true)
  {
    digitalWrite(LedVerde, digitalRead(LedVerde) ^ 1); // Acende e apaga LED Verde
    Serial.println("LED Verde");
    pacote.valor1 = false;
  }

  if (pacote.valor2 == true)
  {
    digitalWrite(LedVermelho, digitalRead(LedVermelho) ^ 1); // Acende e apaga LED Verde
    Serial.println("LED Vermelho");
    pacote.valor2 = false;
  }

  delay(100);
}

 

Então, feito isso, é só observar que ao pressionar cada botão seu respectivo LED acende e ao pressionar novamente o mesmo  apaga.

 

PROJETO RF433

 

Onde comprar?

LOJAS

Conheça também!