Compra en ebay:
10Pcs 433Mhz RF transmitter and receiver link kit for Arduino/ARM/MCU WL
(Ver especificaciones técnicas al final de este post)
MAC ADDRESS: Ver este link para generarla aleatoriamente:
https://nicegear.co.nz/blog/autogenerated-random-persistent-mac-address-for-arduino-ethernet/
Atencion!!! para mejorar NOTORIAMENTE la señal, agregar una antena en el emisor, un cable multihilo de 20cm de largo.
Para que virtualwire funcione en la version 1.0.1 de Arduiono IDE:
en VirtualWire.h
sustituir:
#include <stdlib.h>
#include <wiring.h>
por esto:
#include <stdlib.h>
#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <wiring.h>
#endif
-----------------------------------------------------
En virtualwire.cpp
reemplazar
#include "WProgram.h"
por
#include "Arduino.h"
----------------------------------------------------
Ejemplo de emisor y receptor que funcionan:
Modelo de RF utilizado:
10Pcs 433Mhz RF transmitter and receiver link kit for Arduino/ARM/MCU WL
Cableado:
Se precisan 2 arduinos, uno para el emisor y otro para el receptor.
Emisor (el que tiene tres pines)
GND -> tierra de arduino
VCC -> 3V3 de arduino (o 5v) [Investigar porque a mayor voltaje mayor es la intensidad, hasta 12v]
ATAD -> digital pin 12 de arduino
Receptor (el que tiene 4 pines)
GND -> tierra de arduino
VCC -> 5v de arduino
Datos (pin que esta al lado de GND) -> digital pin 11 de arduino
Sketch:
(Para probarlo, abrir la consola del arduino receptor)
//---------- TRANSMISOR ------------
#include <VirtualWire.h>
const int led_pin = 11;
const int transmit_pin = 12;
const int receive_pin = 2;
const int transmit_en_pin = 3;
void setup()
{
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
}
byte count = 1;
void loop()
{
//char msg[7] = {'h','e','l','l','o',' ','#'};
char msg[7] = {'h','e','l','l','o'};
msg[6] = count;
digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
vw_send((uint8_t *)msg, 7);
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(led_pin, LOW);
delay(1000);
count = count + 1;
}
-----------------------------------------------------------------------------------------------
//---------- RECEPTOR ------------
//---------- para tener un feedback visual, poner un led en el pin 2 con una resistencia de 10k
//---------- cada vez que se recibe la palabra "hello", se enciende y apaga el led.
//------- RECEPTOR ---------
#include <VirtualWire.h>
const int led_pin = 6;
const int transmit_pin = 12;
const int receive_pin = 11;
const int transmit_en_pin = 3;
String str = "";
void setup()
{
delay(1000);
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
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(led_pin, HIGH); // Flash a light to show received good message
// Message with a good checksum received, print it.
Serial.print("Got: ");
str = "";
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
str += char(buf[i]);
Serial.print(" ");
}
Serial.println("");
Serial.println("Texto recibido: " + str);
Serial.println("Texto recibido: " + str);
if (str.indexOf("hello") >= 0)
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
digitalWrite(led_pin, LOW);
}
}
-----------------------------------------------------------------------------------------
Especificaciones técnicas
TX Technical Specifications:
A. Working voltage: 3V~12V
B. Working current: max≤40mA (12V), min≤9mA(3V)
C. Resonance mode: sound wave resonance (SAW)
D. Modulation mode: ASK /OOK
E. Working frequency: 315MHz-433.92MHz, customized frequency is available.
F. Transmission power: 25mW (315MHz at 12V)
G. Frequency error: +150kHz (max)
H. Velocity: ≤10Kbps
I. Self-owned codes: negative
RX Technical Specifications:
A. Working voltage: 5.0VDC +0.5V
B. Working current:≤5.5mA (5.0VDC)
C. Working principle: single chip superregeneration receiving
D. Working method: OOK/ASK
E. Working frequency: 315MHz-433.92MHz, customized frequency is available.
F. Bandwidth: 2MHz (315MHz, having result from testing at lowing the sensitivity 3dBm)
G. Sensitivity: excel –100dBm (50Ω)
H. Transmitting velocity: <9.6Kbps (at 315MHz and -95dBm)
No hay comentarios:
Publicar un comentario