fbpixel
Etiquetas: ,
0
(0)

A frequência de rádio de 433MHz (RF 433MHz) é amplamente utilizada no campo das transmissões de rádio, seja para controlo remoto ou transmissão de dados. Pode ser encontrado em controlos remotos ou em domótica.

Material

  • Computador
  • Arduino UNO
  • Cabo USB A Masculino
  • Reed Switch (ILS)

Como funciona

O módulo RF de 433 MHz é utilizado para transmitir informação sem fios através de ondas de rádio. O transmissor modula os dados de série externos em alta frequência e transmite-os por ligação rádio para o módulo receptor. O módulo consiste num transmissor de rádio APF03 e num receptor APRXB12. Utiliza a modulação ASK (Amplitude Shift Keying) com uma frequência de 433 MHz.

Os módulos de rádio RF433MHz têm um alcance de alguns metros (<5m). Esta gama pode ser grandemente aumentada com uma fonte de tensão mais alta e uma antena de tamanho adequado. Em teoria, até 100m sem obstrução.

Existem diferentes módulos de comunicação sem fios utilizando diferentes protocolos (Wifi, LoRa, etc.) ou com desempenho superior (HC-12, nRF24l01, nRF905, etc.) Verificar as especificações técnicas e o desempenho do módulo utilizado.

Esquema

Na biblioteca VirtualWire que vamos utilizar, os pinos predefinidos utilizados são o pino 12 para o pino de dados do transmissor e o pino 11 para o pino de dados do receptor.

A atribuição dos pinos pode ser diferente dependendo do código e da biblioteca utilizada.

Código do emissor

Para começar, é necessário descarregar a biblioteca VirtualWire em zip, depois em Arduino, ir ao sketch, incluir uma biblioteca, adicionar a biblioteca .zip e colocar a pasta .zip correspondente. Uma vez instalado, é necessário reiniciar o Arduino. Quando as placas estiverem ligadas ao seu PC, escolha uma porta diferente para cada placa.

#include <VirtualWire.h>
#define TxPin 12
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(12, INPUT);
  Serial.begin(9600);    // Debugging only
  Serial.println("Setup Transmitter");

  // Initialise the IO and ISR
  vw_set_ptt_inverted(true); // Required for DR3100
  vw_setup(2000);  // Bits per sec
}

void loop()
{
  const char *msg = "Bonsoir tous le monde";

  digitalWrite(13, true); // Flash a light to show transmitting
  vw_send((uint8_t *)msg, strlen(msg));
  vw_wait_tx(); // Wait until the whole message is gone
  digitalWrite(13, false);
  delay(200);
}

Código do receptor

#include <VirtualWire.h>
#define RxPin 11
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(11, OUTPUT);
  Serial.begin(9600);  // Debugging only
  Serial.println("Setup Receiver");

  vw_set_ptt_inverted(true); // Required for DR3100
  vw_setup(2000);  // Bits per sec

  vw_rx_start();       // Start the receiver PLL running
}

void loop()
{
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;

  if (vw_get_message(buf, &buflen)) // Non-blocking
  {
    int i;

    digitalWrite(13, true); // Flash a light to show received good message
    // Message with a good checksum received, dump it.
    Serial.print("From transmitter : ");

    for (i = 0; i < buflen; i++)
    {
      //Serial.print(buf[i], HEX);       →sert a afficher les valeurs en héxa
      Serial.print(char(buf[i]));
      //Serial.print(" ");
    }
    Serial.println("");
    digitalWrite(13, false);
  }
}

É possível alterar os pinos utilizados utilizando as funções vw_set_rx_pin e vw_set_tx_pin:

//Pour l’émetteur il faut taper
vw_set_tx_pin(txPin);

//Pour le récepteur il faut taper
vw_set_rx_pin(rxPin);

Resultados

Uma vez carregados os códigos em cada um dos microcontroladores, deverá ver a mensagem exibida no monitor de série do receptor.

Aplicações

  • Transmissão remota de dados
  • Controlo remoto do sistema

Fontes


How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?