Vous êtes sur la page 1sur 10

Laboratorio 7

Comunicación serial
Configuración de bluetooth

1. Objetivos

1.1. Objetivo general

 Estudiar el protocolo de comunicación serial.

1.2. Objetivos específicos

 Controlar el encendido y apagado de un foco con una aplicación Android instalada en un teléfono
móvil conectado por bluetooth.
 Aprender a configurar el módulo Bluetooth HC-05.
 Manejar sensores con salidas analógicas y digitales.

2. Marco teórico

2.1. Módulo bluetooth HC-05

Módulo bluetooth HC-05 visto por Forma de conectar los fines del módulo HC-05 con la placa
adelante y por detrás Arduino UNO

El módulo bluetooth HC-05 viene configurado de fábrica para trabajar como maestro o esclavo. En
el modo maestro puede conectarse con otros módulos bluetooth, mientras que en el modo esclavo
queda a la escucha de peticiones de conexión. Agregando este módulo a un proyecto, se puede
controlar a distancia desde un celular o una laptop todas las funcionalidades que se deseen.
El modulo BlueTooth HC-05 utiliza el protocolo UART RS 232 serial. Es ideal para aplicaciones
inalámbricas, fácil de implementar con PC, microcontrolador o módulos Arduinos. La tarjeta incluye
un adaptador con 6 pines de fácil acceso para uso en protoboard.

Además, posee un regulador interno que permite su alimentación de 3.6 a 6V.


Características
 Compatible con el protocolo Bluetooth V2.0.
 Voltaje de alimentación: 3.3VDC – 6VDC.
 Voltaje de operación: 3.3VDC.
 Baud rate (tasa de baudios) ajustable: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
 Baud rate (tasa de baudios) por defecto: 9600
1
 Tamaño: 1.73 in x 0.63 in x 0.28 in (4.4 cm x 1.6 cm x 0.7 cm)
 Corriente de operación: < 40 mA
 Corriente modo sleep: < 1mA

Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN -
Wireless Personal Area Network) que posibilita la transmisión de voz y datos entre diferentes
dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales
objetivos que se pretenden conseguir con esta norma son:

 Facilitar las comunicaciones entre equipos móviles.


 Eliminar los cables y conectores entre estos.
 Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de
datos entre equipos personales.

Se denomina Bluetooth al protocolo de comunicaciones diseñado especialmente para dispositivos de


bajo consumo, que requieren corto alcance de emisión y basados en transceptores de bajo costo. Los
dispositivos que incorporan este protocolo pueden comunicarse entre sí cuando se encuentran dentro
de su alcance. Las comunicaciones se realizan por radiofrecuencia de forma que los dispositivos no
tienen que estar alineados y pueden incluso estar en habitaciones separadas si la potencia de
transmisión es suficiente. Estos dispositivos se clasifican como “Clase 1”, “Clase 2” o “Clase 3” en
referencia a su potencia de transmisión.

2.2.Puerto serial, protocolo y su teoría

Un puerto Serial es un módulo de comunicación digital para un sistema embebido. Es decir, permite
la comunicación entre dos dispositivos digitales. Cuenta con dos conexiones, RX y TX. Lo que indica
los modos de comunicación que puede manejar, Full/full-duplex, Full-duplex, Half dúplex o duplex.
Además, su principal ventaja es la sencillez de su protocolo de comunicación, sin embargo, también
tiene desventajas como que sólo se puede comunicar a un puerto dos dispositivos.
 Full/full dúplex: Transmisión y envío simultáneamente y con varios dispositivos.
 Full duplex. Significa que puede recibir y enviar información digital simultáneamente con un
solo dispositivo.
 Half-duplex. Es cuando sólo se puede transmitir o recibir información, una cosa a la vez.
 Simplex. Cuando sólo se puede recibir o transmitir, comunicación en un solo sentido.

La función principal de un puerto serial, es la de empacar y des-empacar paquetes de datos binarios


seriales. Como resultado, la serialización significa convertir un dato paralelo (byte) a un conjunto de
pulsos seriales que puedan ser recibidos y enviados por una línea de transmisión. En primer lugar, el
protocolo serial opera mediante tres condiciones digitales básicas: inicio de transmisión (IT), paridad
(P) y fin de transmisión (FT). Estas condiciones son sincronizadas mediante un oscilador interno. El
generador permite controlar la velocidad del puerto serial. Por lo tanto, la velocidad se mide en
Baudios. La comunicación serial puede ser:

 UART – Universal Asyncronos Receiver and Transmitter que en español se traduciría como
Transceptor Asíncrono.
 USART – Universal Syncronos and Asyncronos Receiver and Transmitter, que significa en
español Transceptor Síncrono y Asíncrono.
 EUART – Enhanced Universal Asyncronos Receiver and Transmitter ó Transceptor
Asíncrono Universal Mejorado.

2
Nota. Otros puertos seriales incluyen al puerto I2C, puerto spi, puerto USB, puerto CAN en un
microcontrolador.

 Estructura interna y configuración de un puerto serial

Una UART contiene, en su estructura interna, un generador de paridad, registros de corrimiento,


oscilador variable (para generar el BAUD), verificadores de las tres condiciones y lógica de control.
Por consiguiente, la siguiente figura muestra un diagrama a bloques general para una UART. Un
paquete de datos se transmite a través de un registro de corrimiento. Por lo tanto, la velocidad a la
que se transmite, está controlada por el generador de BAUD. La lógica de control se encarga de
agregar los bits de Inicio, Paridad y de Fin de transmisión. El proceso de recepción serial es lo
opuesto.
Diagrama general de un UART, PUERTO SERIAL

Para configurar al módulo se requiere indicar la velocidad de operación. Los baudios, que es una
medida de cuantos bits por segundo se van a transmitir, se configuran mediante un registro de
propósito específico. Dependiendo del lenguaje de programación la configuración puede ser
relativamente sencilla. En el caso de Arduino se haría con la instrucción Serial.begin(9600). También
es necesario configurar cuantos bits de parada y si habrá o no bit de paridad. Una de las
configuraciones más usadas para un puerto serial es:

 8 bits de datos  1 bit de inicio


 1 bit de parada  Velocidad de 9600 BAUD
 Sin bit de paridad
Para que pueda haber una sincronización de los datos enviados, se requiere que ambos dispositivos
que usen el mismo puerto serial, tengan la misma configuración.

3
Trama de comunicación serial con la siguiente configuración: 1 bit de parada, 1 bit de
inicio, 8 bits de datos a 9600 BAUDs.

Para esta trama, no se configuro el bit de paridad y la velocidad se configuro a 115200


BAUD.

Trama con 6 bits de datos, dos bits de parada y sin bit de paridad a 115200 BAUD,
solo se envían 6 bits de datos y con dos bits de parada sin bit de paridad. Esta
configuración se podría utilizar para cuando el byte a enviar no utilice los últimos dos
y permite velocidades más altas de transferencia de bytes, en este coso sería 115200/9
= 12800Bytes/s. Cada byte sólo teniendo 6-bits reales.

3. Material y equipos

 Placa Arduino MEGA 2560 


 Conectores  Transistor BC548 NPN
 Proto Board  Resistor 10 kΩ
 Computadora portátil con IDE Arduino  Teléfono móvil con sistema operativo
instalado Android
 Cable USB para la placa Arduino  Módulo bluetooth HC-05
 Sensor de GLP  Multímetro digita
 Relé de 12 V  Cinta aislante
 Foco incandescente 220 V 60 W  Destornilladores
 Socket  Alicate de corte
 Cable 14 AWG (lo necesario)  Led rojo alto brillo
 Diodo 1N4001  Resistores de 220 Ω

4. Circuitos y esquemas

Se implementaron los siguientes circuitos en el laboratorio después de haber sido simulados en


Proteus versión 7.

4
4.1. Esquema para la conexión del circuito de control de encendido y apagado de un foco a través
de una aplicación Android

Arduino
Mega
2560

4.2. Circuito de control para el encendido y apagado de un foco a distancia

5
El circuito antes mostrado, corresponde al circuito de control del encendido y apagado de un foco de
220 V mediante una aplicación Android instalada en un teléfono inteligente. El teléfono se conecta
con el modulo bluetooth, se reconoce el dispositivo a través de su nombre asignado y se ingresa la
contraseña correspondiente para establecer la conexión. Desde el celular se enviaban solamente dos
caracteres designados en el código, “e” para encendido y “a” para apagado.

4.3. Circuito de control con un sensor de GLP (utilizando la salida digital del sensor)

5. Marco práctico

- Antes de iniciar con el circuito del laboratorio correspondiente al tema de comunicación serial, se
procedió a configurar el módulo HC-05. Los pines TX y RX deben estar conectados a los pines 10

6
y 11 de la placa Arduino, respectivamente. La configuración de este módulo, requiere del siguiente
código escrito en el IDE de Arduino.

El módulo HC-05 viene por defecto configurado de la siguiente forma:


 Modo o role: Esclavo
 Nombre por defeco: HC-05
 Código de emparejamiento por defecto: 1234
 La velocidad por defecto (baud rate): 9600

EL Modulo HC-05 tiene 4 estados los cuales es importante conocer:

 Estado Desconectado:
Entra a este estado tan pronto alimentas el modulo, y cuando no se ha establecido una conexión
bluetooth con ningún otro dispositivo
EL LED del módulo en este estado parpadea rápidamente
En este estado a diferencia del HC-06, el HC-05 no puede interpretar los comandos AT
 Estado Conectado o de comunicación
Entra a este estado cuando se establece una conexión con otro dispositivo bluetooth.
El LED hace un doble parpadeo.
Todos los datos que se ingresen al HC-05 por el Pin RX se trasmiten por bluetooth al dispositivo
conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente
 Modo AT 1
Para entrar a este estado después de conectar y alimentar el modulo es necesario presionar el botón
del HC-05.
En este estado, podemos enviar comandos AT, pero a la misma velocidad con el que está configurado.
EL LED del módulo en este estado parpadea rápidamente igual que en el estado desconectado.
 Modo AT 2
Para entrar a este estado es necesario tener presionado el botón al momento de alimentar el modulo,
es decir el modulo debe encender con el botón presionado, después de haber encendido se puede
soltar y permanecerá en este estado.
En este estado, para enviar comandos AT es necesario hacerlo a la velocidad de 38400 baudios, esto
es muy útil cuando nos olvidamos la velocidad con la que hemos dejado configurado nuestro modulo.
EL LED del módulo en este estado parpadea lentamente.

7
Inmediatamente después de alimentar la placa Arduino conectada al módulo HC-05, se presionó el
botón de éste durante unos segundos y se observó que el led empezó a parpadear lentamente, esto
indica que esta en modo AT y se puede configurar. Una vez en modo AT1, se ingresó al IDE de
Arduino y se abrió el monitor serial; ya con el monitor abiarto, había que seleccionar la opción
“Ambos NL & CR” y se empiezan a escribir los comandos AT para probar la conexión y para cambiar
las configuraciones de fábrica.

COMANDOS AT

AT TIENE QUE RESPONDER OK


AT+VERSION DEVUELVE LA VERSION DEL BT
AT + ADDR DEVUELVE LA MAC
AT + ROLE DEVUELVE SI ESTA EN ESCLAVO O MAESTRO
(MAESTRO =1, ESCLAVO=0)
AT + NAME DEVUELVE EL NOMBRE
AT + PSWD DEVUELVE EL PASWORD ACTUAL
AT + UART DEVUELVE LA VELOCIDAD
AT + ORGL RESETEAR EL BLUETOOTH DATOS POR DEFAULT

Ejemplo de asignación de datos

AT + NAME=SML_400 ASIGAN EL NOMBRE SML 400 (Nombre del módulo)


AT + UART=9600,0,0 ASIGNA LA VELOCIDAD DE 9600
AT + PSWD=0007 ASIGNA EL PASSWORD A 0007

- Una vez configurado el módulo bluetooth, se procedió a armar el circuito de control de carga en
el programa Proteus versión 7 entorno ISIS.

- Posterior al armado se procedió a codificar el programa en el entorno de desarrollo integrado de


Arduino; para depurar errores, en caso de que existan, y se compiló el programa.

- Después, se armó el circuito mostrado en la simulación cuidando siempre de colocar los pines en
la posición designada en el código escrito.

- Una vez armado el circuito, se cargó el programa a la placa de desarrollo Arduino Mega 2560 y se
procedió a verificar el funcionamiento que se observó en la simulación y se pudo verificar que se
cumple la secuencia del código cargado.

- Para probar el funcionamiento del circuito y la comunicación con el modulo bluetooth, se descargó
una aplicación para Android del AppStore de Google, la aplicación se llamaba Bluetooth terminal
y era de descarga gratuita. Se instaló la aplicación en un teléfono móvil y se realizó la conexión
8
con el mismo usando la contraseña asignada en la configuración. Se probó el circuito ingresando
un carácter a la vez y luego ingresando una cadena de caracteres consecutivos. Se verificó el
correcto funcionamiento del circuito.

- Ya para finalizar el laboratorio, se distribuyeron diferentes sensores al azar entre los grupos
conformados en clase. Nuestro grupo recibió un sensor detector de GLP, el cual se muestra en la
siguiente figura.

Se nos asignó el sensor MQ – 6, este sensor de gas detecta la presencia de GLP, isobutano y propano
en concentraciones de 300 a 10.000 ppm. La interfaz de voltaje analógico simple del sensor requiere
sólo un pin de entrada analógica de su microcontrolador. Este sensor tiene una alta sensibilidad y un
tiempo de respuesta rápido. La salida del sensor es una resistencia análoga. El circuito de interfaz es
muy simple, todo lo que se necesita hacer es alimentarlo con 5V, añadir una resistencia de carga y
conectar la salida al conversor análogo – digital. Cuenta con un amplificador LM393 con un
potenciómetro para modificar la ganancia del sensor.

Características:
 Alimentación 5V DC ó AC
 Temperatura de funcionamiento: -10 a 50 °C
 Consumo de potencia: menos de 750 mW
Pines
 VCC ↔ 2.5V ~ 5.0V
 GND ↔ tierra
 AOUT ↔ MCU.IO (salida analógica)
 DOUT ↔ MCU.IO (salida digital)

- Se simuló el circuito en Proteus versión 7, solamente que, en vez de poner el sensor, del cual
no disponíamos en las librerías del programa, se utilizó un pulsador. Se codificó en el IDE
Arduino, se compiló el programa y se cargó a la placa Arduino Mega 2560. Se utilizó
prácticamente el mismo circuito utilizado en el control de la carga, solamente se quitó el
modulo bluetooth y se conectó el sensor.

- Se probó el circuito y se hicieron las modificaciones pertinentes en el sensor para ajustar su


sensibilidad.

6. Anexos, tablas y código de programación

6.1. Esquema para la conexión del circuito de control de encendido y apagado de un foco a través
de una aplicación Android

9
6.2. Código para el control del sensor de GLP

7. Conclusiones

Se estudió el protocolo de comunicación serial, se comprobó la comunicación entre dos dispositivos


digitales, que en este caso fueron un teléfono móvil con sistema operativo Android y el conjunto placa
Arduino Mega 2560 y el módulo HC-05.
Se controló el estado de una carga a distancia, utilizando una aplicación Android instalada en un
teléfono móvil.
Se configuró el módulo HC-05 en modo esclavo, además, se modificó su contraseña de acceso y su
nombre
Se manejó el sensor detector de GLP utilizando su salida analógica para controlar el estado de la
carga conectada al circuito de control.

8. Bibliografía
https://hetpro-store.com/TUTORIALES/arduino-serial-read/
https://hetpro-store.com/TUTORIALES/puerto-serial/
10

Vous aimerez peut-être aussi