Arduino - Comunicação sem fio
Os módulos de transmissor e receptor sem fio funcionam a 315 MHz. Eles podem caber facilmente em uma placa de ensaio e funcionar bem com microcontroladores para criar um link de dados sem fio muito simples. Com um par de transmissor e receptor, os módulos funcionarão apenas comunicando dados unilateral, entretanto, você precisaria de dois pares (de frequências diferentes) para atuar como um par transmissor / receptor.
Note- Esses módulos são indiscriminados e recebem bastante ruído. Tanto o transmissor quanto o receptor funcionam em frequências comuns e não possuem IDs.
Especificações do módulo receptor
- Modelo do produto - MX-05V
- Tensão de operação - DC5V
- Corrente Quiescente - 4mA
- Freqüência de recepção - 315Mhz
- Sensibilidade do receptor - -105DB
- Tamanho - 30 * 14 * 7 mm
Especificações do módulo transmissor
- Modelo do produto - MX-FS-03V
- Distância de lançamento - 20-200 metros (tensão diferente, resultados diferentes)
- Tensão de operação - 3,5-12V
- Dimensões - 19 * 19 mm
- Modo de operação - AM
- Taxa de transferência - 4KB / S
- Potência de transmissão - 10mW
- Frequência de transmissão - 315Mhz
- Uma antena externa - linha comum multi-core ou single-core de 25 cm
- Pinagem da esquerda → direita - (DADOS; V CC ; GND)
Componentes necessários
Você precisará dos seguintes componentes -
- 2 × placa Arduino UNO
- 1 × transmissor de link Rf
- 1 × receptor Rf link
Procedimento
Siga o diagrama do circuito e faça as conexões conforme mostrado na imagem abaixo.
Esboço
Abra o software Arduino IDE em seu computador. A codificação na linguagem Arduino controlará seu circuito. Abra um novo arquivo de esboço clicando em Novo.
Note- Você deve incluir a biblioteca do teclado em seu arquivo de biblioteca do Arduino. Copie e cole o arquivo VirtualWire.lib na pasta de bibliotecas, conforme destacado na captura de tela abaixo.
Código Arduino para transmissor
//simple Tx on pin D12
#include <VirtualWire.h>
char *controller;
void setup() {
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true);
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop() {
controller="1" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,1);
delay(2000);
controller="0" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,0);
delay(2000);
}
Código a ser anotado
Este é um código simples. Primeiro, ele enviará o caractere '1' e depois de dois segundos ele enviará o caractere '0' e assim por diante.
Código Arduino para receptor
//simple Rx on pin D12
#include <VirtualWire.h>
void setup() {
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(5, OUTPUT);
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 {
if(buf[0]=='1') {
digitalWrite(5,1);
}
if(buf[0]=='0') {
digitalWrite(5,0);
}
}
}
Código a ser anotado
O LED conectado ao pino número 5 na placa Arduino é LIGADO quando o caractere '1' é recebido e desligado quando o caractere '0' é recebido.