UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional Profesional de Ingeniería Ingeniería Informática Informática y Sistemas Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS
PRÁCTICA PRÁCTICA DE LABORATORIO LABORATORIO 04 Comunicació Comunicación n Inalambrica Inalambrica via Radio Radio Frecuencia Frecuencia (RF) a 433 MHz I. OBJE OBJETI TIVO VOS: S: •
En este laboratorio Ud. aprenderá a realizar la comunicación de forma inalámbrica mediante módulos de Transmisión Transmisión (TX) y Recepción Recepción (RX) bidireccional.
II. II. MATERI MATERIALE ALES: S: • • • • • • • • •
01 Computadora Computadora personal personal 01 Tarjeta Tarjeta Arduino Arduino UNO R3 (Opcional) por cada grupo 01 Modulo transmisor SKR 315 + Modulo receptor SKR 315 02 antenas tipo látigo (whip) de 17.5 cm 01 diodo diodo LED LED de 3mm o de 5 mm de cualq cualquie uierr color color 01 Resistencia de valor 560 Ω (pu ede ser cualquier valor entre 330 Ω y 1 KΩ) 01 Protoboard 01 Cautil + pasta pasta + estaño estaño 01 juego de cablecillos cablecillos de 10 ó 20 cm
III. FUNDAMENTO TEÓRICO: En este Laboratorio Laboratorio se realizara una comunicación inalámbrica entre entre dos Arduino usando módulos de radiofrecuencia radiofrecuencia RF de 433Mhz de bajo costo. Los módulos RF de 433Mhz son de fácil uso. Vienen Vienen en pareja, emisor (FS1000A) y receptor (XY-MK-5V), (XY-MK-5V), el el tipo de comunicación es Simplex, es decir en un solo canal y unidireccional, son son de baja velocidad de transmisión transmisión pero para para aplicacione aplicacioness básicas son muy útiles. útiles. Modu Modulo lo RF Receptor
Modu Modulo lo RF Transmisor
La frecuencia de trabajo es de 433MHz, debido a que es una banda de libre uso. Para utilizar estos módulos basta con alimentarlos y conectar el pin de datos por un lado del Transmisor (TX) y en otro el Receptor (RX). Para la programación no es necesario agregar ningún tipo de librería, ya que es un proceso "transparente", por lo que el programa sería igual a usar una comunica comunicación ción serial serial (UART) (UART) entre entre 2 Microcontro Microcontroladore ladoress (MCUs) (MCUs) , sin embargo existen algunas librerías que nos ofrecen ciertas ventajas como: verificación de errores, mejor transmisión, Direccionamiento, Enrutamiento, mallas, etc.
Antena para módulos de 433Mhz La antena tiene una gran influencia sobre todo en el módulo receptor, por lo que se uno s 17cm de largo para alcanzar la frecuencia recomienda conectar un cable de cobre de unos de 433MHz.Tambien son muy comunes y eficientes antenas helicoidales de 5mm de diámetro y 3.4cm de longitud. La posición de la antena también afecta la recepción de datos. Docente: MSc. Alberto E. Cohaila B.
[email protected]
1
10-10-2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional de Ingeniería Informática y Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS
Figura 1: Antena Helicoidal
IV. PROCEDIMIENTO: 1. Realice el conexionado de Arduino con el Modulo transmisor como muestra la figura 2. Conecte el módulo RF al Pin TX del Arduino dependiendo si es transmisor y receptor. Pin 1: Tx
Nota: Debe soldar la antena de 16.5 cm
Pin GND Pin 5v Figura 2: Conexionado Arduino y Modulo Tx de 433 MHz Docente: MSc. Alberto E. Cohaila B.
[email protected]
2
10-10-2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional de Ingeniería Informática y Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS 2. Conexión del Receptor:
Pin 2: Rx
Nota: Debe soldar la antena de 16.5 cm
Pin GND Pin 5v
EXPERIENCIA 01: ENCENDER Y APAGAR UNA LED DE FORMA INALÁMBRICA En esta experiencia se encenderá un LED conectado al pin 7 del Arduino, para apagar y prender se lo hará de forma inalámbrica (remota) desde otro Arduino, para enviar la orden lo haremos desde la PC pero se lo puede hacer a través de un pulsador. Se debe instalar la librería del fabricante RadioHead y su controlador RH_ASK VirtualWire.h, que será proporcionado por el profesor o en todo caso descargar la última versión del siguiente link: http://www.airspayce.com/mikem/arduino/VirtualWire/ 3. El Sketch del Transmisor es el siguiente:
#include
void setup() { Serial.begin(9600); Serial.println("Emisor RF"); // Se inicializa el RF vw_setup(2000); // velocidad: Bits per segundo vw_set_tx_pin(2); //Pin 2 como salida para el RF
} void loop() { while (Serial.available() > 0) { char dato[1]; dato[0] = Serial.read(); //Enviamos el carácter recibido al RF vw_send((uint8_t*)dato,sizeof(dato)); vw_wait_tx(); } delay(200); } Docente: MSc. Alberto E. Cohaila B. [email protected]
3
10-10-2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional de Ingeniería Informática y Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS 4. El Sketch del Receptor es el siguiente:
#include void setup() { Serial.begin(9600); Serial.println("setup");
// Debugging only
// Se inicializa el RF // velocidad: Bits per segundo vw_setup(2000); vw_set_rx_pin(2); //Pin 2 como entrada del RF // Se inicia como receptor vw_rx_start(); pinMode(7, OUTPUT); digitalWrite(7, false);
//Configuramos el pin del LED como entrada
} void loop() { uint8_t dato; uint8_t datoleng=1; //verificamos si hay un dato valido en el RF if (vw_get_message(&dato,&datoleng)) { if ((char)dato=='a') { digitalWrite(7, true); //Encendemos el Led } else if(( char)dato=='b') { digitalWrite(7, false); //Apagamos el Led } } } 5. Desde el Arduino Transmisor, para encender el LED remoto es necesario abrir el Monitor Serial del Trasmisor y enviar una “a” o “b” para encender o apagar el LED respectivamente 6. ¿Cuánto es el alcance máximo que llego con la comunicación RF? ______________________________________________
EXPERIENCIA 02: ENVIO DE MENSAJES ENTRE MODULOS RF: En esta experiencia el Arduino Transmisor envía una mensaje “Hola mundo” hacia otro Arduino Receptor, para visualizar el mensaje recibido usaremos el Monitor serial. 7. El Sketch del Módulo Transmisor es el siguiente:
#include void setup() Docente: MSc. Alberto E. Cohaila B. [email protected]
4
10-10-2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional de Ingeniería Informática y Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS {
Serial.begin(9600); Serial.println("Emisor: Setup"); // Se inicializa el RF vw_setup(2000); // velocidad: Bits per segundo vw_set_tx_pin(2); //Pin 2 como salida para el RF
} void loop() { const char *msg = "Hola Arduino … te saludo"; digitalWrite(13, true); // Parpadeamos el LED al enviar vw_send((uint8_t *)msg, strlen(msg)); //Esperamos hasta que el mensaje se envíe vw_wait_tx(); digitalWrite(13, false); delay(200);
} 8. El Sketch del Módulo Receptor es el siguiente:
#include void setup() { // Debugging only Serial.begin(9600); Serial.println("Emisor: Setup"); // Se inicializa el RF vw_setup(2000); vw_set_rx_pin(2); vw_rx_start();
// velocidad: Bits per segundo //Pin 2 como entrada del RF // Se inicia como receptor
} void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; //verificamos si hay un dato valido en el RF if (vw_get_message(buf, &buflen)) { int i; digitalWrite(7, true); // Parpadeamos el LED al recibir //verificamos si hay un dato valido en el RF Serial.print("Mensaje: "); for (i = 0; i < buflen; i++) { Serial.print((char)buf[i]); Docente: MSc. Alberto E. Cohaila B. [email protected]
5
10-10-2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN Escuela Profesional de Ingeniería Informática y Sistemas - FAIN CURSO: COMUNICACIÓN DE DATOS }
Serial.println(""); digitalWrite(7, false);
} } 9. Finalmente para visualizar los datos en el Receptor es necesario abrir el Monitor Serial.
10. ¿Qué ocurre si envía por ejemplo dos datos diferentes 3.14 y 177? _____________________________________________________________ _____________________________________________________________
V. INFORME FINAL: 1. Realizar todos los pasos efectuados en el siguiente laboratorio. 2. Realizar la simulación respectiva en el Proteus 3. A que distancia máxima se puede usar la comunicación Inalmbrica por RF entre dos 4. 5. 6. 7. 8. 9.
Módulos RF 433 MHz Modificar el sketch del Arduino transmisor de modo que mediante un pulsador encienda el LED remoto. Realice también la simulación en Proteus. Realizar un programa para que se envíe dos datos diferente (por ejemplo 3.14 y 177), el modulo receptor deberá leer dichos datos Qué utilidad le puede dar al presente laboratorio en su carrera profesional como Ing. Informático y Sistemas. Mire el siguiente link, de su opinión al respecto https://www.youtube.com/watch?v=1xQNtevELVM De 3 conclusiones del presente laboratorio. De 3 recomendaciones del presente laboratorio.
NOTA: FECHA DE PRESENTACION DEL INFORME FINAL, PROXIMO MARTES 17 DE OCTUBRE.011/11/queo-y-canal.html http://discipulosdeelvia.blogs6/red-punto-punto.html
Docente: MSc. Alberto E. Cohaila B. [email protected]
6
10-10-2017