Comunicacion



Integrantes

Alberto Barros

Gustavo Granados

Hernando Wills

Juan P. Lagos

Luis C. Covo

Modulo Seleccionado
COMPARACIÖN ENTRE MODULOS BLUETOOTH

Se investigó que módulos Bluetooth existían en el mercado y cuáles eran los más asequibles para el grupo. También se pudo observar que la mayoría de módulos tienes características de operación eléctricas muy similares, cambian en cosas mínimas. Existen unos que son más utilizados en la industria y también unos de carácter civil. A continuación se presentan dos de los modulo investigados, también se tuvo en cuenta el KC-21 pero por su costo elevado se eliminó de las posibilidades

Modulo RN-42:

Este módulo es uno de los más usados, está destinado a civiles. Sus características de operación son las siguientes: Su voltaje de operación y de alimentación es de 3.3 Voltios, con respecto a la corriente máxima  es de 50mA y su corriente de envió de datos y es de 25mA. El tiempo de apareamiento es en promedio de 8-10 segundos y como máximo 15segundos y su alcance es mayor a 8 metros. Hay otras características como el tamaño 1.3acmx1.5cmx0.2cm  y el precio de 16 dólares si envió.

Módulo HC-5

Este módulo es fácil de conseguir en el país, esta es una facilidad ya que se puede tener de manera rápida para iniciar con las pruebas. Este tiene características eléctricas casi iguales con respecto al módulo RN-42 pero tiene una ventaja con respecto a sus compañeros HC-03(industrial) y HC-06(civil) y es que se puede configurar como maestro o como esclavo. Su tamaño es de 2.8cmx1.5cmx0.23cm  un poco más grande que el anterior pero sigue siendo aceptable para el proyecto MIDEVERDE, su alcance es entre 8 y 10metros y con respecto al costo de 17 dólares todo incluido.

El escogido fue HC-05 por su costo, tiene características muy similares a los demás y su tamaño es bueno para el proyecto, además que tiene la ventaja de poder ser configurado como esclavo o como maestro. Una ventaja importante y es el tiempo ya que está disponible en el país puede ser conseguido casi que inmediatamente.



La selección fue el HC-05

Microcontrolador
Para el funcionaminmeto del dispositvo de MIDEVERDE en esta sección de comunicaciones no solo se debe tener un modulo bluetooth sino también un microcontrolador, el cuál será en principio el mismo que usa el bloque Sensores para digitalizar la señal del sensor ya sea de temperatura como de material particulado. Este mircocontrolador deberá ser programado para comunicarse con un Smartphone con sistema operativo Android.

EL microcontralador se comunicará dentro del dispositivo con el bloque del sensor y lo convertirá de una señal analogá a digital, pero también debe comunicarse con el Smartphone del usuario para la trasmisión de datos.

Video tutorial /HC-5
http://www.youtube.com/watch?v=kHDctxQRHVQ

http://www.youtube.com/watch?v=35tQBdpNXH0

Consumo de Potencia modulo bluetooth HC-05

Al encender el módulo HC-05, es decir proporcionarle alimentación está se estabiliza en valores que en promedio aproximado son 40mA, el mínimo medido fue de 39.8mA y el máximo 40.7mA.

Luego de encendido para poder comunicarse se debe emparejar, durante el proceso de emparejamiento el consumo de corriente es la misma que al encenderlo. Cuando el Smartphone termine de emparejarse son el modulo la corriente disminuye gradualmente durante 2 o 3 segundos de 40 mA a 3.8mA como promedio aproximado, oscilando entre 2.8mA y 5.6mA.

Como tercer paso para el envío y/o recibo de datos la corriente consumido también cambia,  es decir mientras este emparejado y no esté recibiendo ni enviando datos el consumo es el mencionado anteriormente, pero en el proceso de comunicación como tal la corriente aumenta de esos 3.8mA hasta 20.9mA teniendo valores pico y valle 23.1mA y 19mA respectivamente.

Teniendo en cuenta que el modulo se alimenta con un voltaje de 3.3V se presenta una tabla con las potencias consumidas en cada fase.

TUTORIAL DE MANEJO DE BLUETOOTH CONFIGURACIÓN DEL BLUETOOTH

La referencia seleccionada de bluetooth fue la HC-05, se debe saber que es te modulo tiene distintos modos de operación, uno es el modo AT, otro es el modo de búsqueda de otro dispositivo, y por último el modo en el cuál se empareja con otro bluetooth y se transmiten datos.

<p class="MsoNormal">Para este caso, en el que se está usando el micro controlador ATMEGA16A se debe cambiar el baudrate de transmisión a 4800 ya que es el único en el que este puede transmitir sin necesidad de usar un reloj externo (e.g. cristal oscilador). Para esto se debe entrar en el modo AT al poner el pin34 en “1” lógico, también se debe tener en cuenta que el baudrate por defecto del hc-05 es de 9600, entonces con otro dispositivo con comunicación serial se debe ingresar ciertos comandos. A continuación se presenta una sugerencia de configuración basada en la experiencia del proyecto.

<p class="MsoNormal">

<p class="MsoNormal">

<p class="MsoNormal">1.Se configura el BT en modo AT, colocando el pin34 del HC-05 (KEY) en 5V

<p class="MsoNormal">2. Se utiliza un dispositivo que cuente con puerto serial y al baudrate de 9600 para transmitir los comandos por primera vez (Este ejemplo fue realizado con un Arduino UNO.)



<p class="MsoNormal">3.Se programa y se corre el monitor serial, los comanos usados para cambiar nombre a MV0X, y baudrate a 4800 son los siguientes:

<p class="MsoNormal">

<p class="MsoNormal">AT+NAME=MV01              y             AT+UART=4800,0,0

<p class="MsoNormal">Ya con esto el bluetooth está listo para usarse tal como se necesita en mideverde; para mayor información o ayuda acerca los comadnos AT ver el video y/o remitirse al manual de HC-05. http://www.youtube.com/watch?v=xwu33aA89qQ

CONFIGURACIÓN DEL MICROCONTROLADOR



<p class="MsoNormal">Luego de configurar el bluetooth, para transmitir datos por él, el ATMEG16A (micro) debe programarse de tal manera que se use el puerto serial o USART tanto Rx  como Tx. Para esto se debe remitir al datasheet del micro en la sección de cómo usar el USART. EL código usado donde la parte importante son las funciones  void usart_init, y void usart_Transmit(unsidned chardata) las cualés se encargan de habilitar los puertos seriales  pin 14 y 15.

<p class="MsoNormal">Cabe resaltar que la conexión entre los dos módulos se hace de la siguiente manera: pin14 micro a pin1 bluetooth  y el pin14 micro a pin2 bluetooth.

<p class="MsoNormal">

CÓDIGO

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">//Librerías

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#include <util/delay.h>

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#include <avr/io.h>

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#include <string.h>

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#include <avr/interrupt.h>

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">//Definiciones

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#define F_CPU 1000000UL //Frecuencia de operación del CPU

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#define tiempo 1000 //Tiempo en ms entre mediciones

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#define USART_BAUDRATE 4800

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">int main(void)

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">{

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">Char temperature = 0;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">Char material = 0;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                usart_init;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                DDRB=0b11111111;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                while(1)

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                {

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">PORTB=temperatura;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">USART_Transmit(temperatura);

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                                               USART_Transmit(material);

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                                               //Tiempo de retardo entretrnasmisiones

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">_delay_ms(1000);

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">}

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">}

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">//Método en donde se hace la inicialización de la USART

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">void usart_init

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">{

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                UCSRB |= (1<<RXCIE) | (1 << RXEN) | (1 << TXEN);   // Turn on the transmission and reception circuitry

<p class="MsoNormal">

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1); // Use 8-bit character sizes

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">UBRRH = (BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                UBRRL = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">    UCSRB |= (1 << RXCIE); //Enable USART-interrupt

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">}

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">//Función que envía un dato (data) por el USART

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">void USART_Transmit( unsigned char data )

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">{

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                /* Wait for empty transmit buffer */

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                while ( !( UCSRA & (1<<UDRE)) );

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                /* Put data into buffer, sends the data */

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">                UDR = data;

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">}

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">Para mayor información de cómo programar el micro usar como referencia el datasheet del ATMEGA16A, visitar la ttde (wiki Universidad de los Andes):

<p class="MsoNormal">

<p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly">http://ttde.uniandes.edu.co/ttdewikim1/index.php/USBTINY

<p class="MsoNormal">