Práctica 21 – Bluetooth HM-10

 

 

INTRODUCCIÓN

 

En esta práctica se implementa el control del encendido y apagado de un LED por medio de bluetooth 4.0 LE (Low Energy). El control del LED se realiza a través de un módulo bluetooth HM-10 para recibir y enviar datos a un smartphone mediante una aplicación llamada “Serial Bluetooth Terminal” para Android. 

 

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
AVR
PIC
PIC C Compiler
PIC C Compiler
Bootloader X-TRAINER
Bootloader X-TRAINER

Descripción

En esta práctica se realiza la conexión con el módulo Bluetooth HM-10 para enviar y recibir datos hacia un smartphone por medio de una aplicación llamada “Serial Bluetooth Terminal” para Android, la cual enviá indicaciones para el encendido y apagado de un LED, también pregunta el estado de un push button usando los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o PIC18F25K50. Para encender el LED se enviá el número 1, si se desea apagar se enviá el número 0. Para recibir el estado del push button "BOOT", se envía el signo "?", si está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28Comprar

1 x Módulo Bluetooth HM-10. Comprar 

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

 

Software:

Windows 7 o posterior.

PIC C Compiler v5.069 o posterior. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto. En el siguiente link encontrarás un manual para compilar en PIC C Compiler.

4.Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5.Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

A continuación se muestran las instrucciones para la comunicación entre el módulo Bluetooth y el Smartphone.

Instrucciones para comunicación Bluetooth

Mostrar más información

PASO 1

Empareja el dispositivo Bluetooth HM-10 a través de las configuraciones de tu Smartphone.

Nota: si no se ha programado el dispositivo HM-10 el nombre y contraseña deberán ser los siguientes:

Nombre: BT05

Contraseña: 000000

 

PASO 2

Selecciona el tipo de Bluetooth desde el apartado de “Devices” teniendo dos opciones:

BLUETOOTH CLASSIC: Bluetooth 2.0 (HC-05)

BLUETOOTH LE: Bluetooth 4.0 (HM-10)

En este caso seleccionamos LE y BT05 (HM-10).

 

Nota: Una vez conectado los dispositivos, podrás enviar y recibir datos a través de la aplicación para el control de encendido y apagado del LED,  así como el estado del push button.

 

Diagrama esquemático

 

X-TRAINER P8 LITE
X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8 LITE

X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

 

/**************************************************************************

Esta práctica consiste en realizar el envio de datos por medio de un módulo

Bluetooth, usando el protocolo de comunicación serial UART, para enviar un

comando simple para prender y apagar un LED incluido en la tarjeta X-TRAINER,

y un segundo comando para preguntar el estado de un botón.

**************************************************************************/

#include <18F45K50.h>                                   // Incluye la librería para el PIC ( para X-TRAINERp8DIP28: #include <18F25K50.h> )

#device ADC=8                                              // Configura el ADC a 8 bits

#use delay(internal=48MHz)                            // Configura frecuencia del oscilador interno

#build(reset=0x02000,interrupt=0x02008)         // Asigna los vectores de reset e interrupción para la versión con bootloader

#org 0x0000,0x1FFF {}                                  // Reserva espacio en memoria para el bootloader
//——————————————————————————-
#USE RS232(stream=SERIE, BAUD=9600, PARITY=N, XMIT=PIN_C6, RCV=PIN_C7,BITS=8)

#define LED pin_A1

#define Boton pin_A2

     void main(void)
        {

              while(!kbhit())                                               //Pregunta si hay algun dato recibido

               while (TRUE)
                     {
                       char Caracter = getc ();                           //Guarda el caracter

                       if (Caracter == ‘0’)

                            {

                               output_low (LED);                            //Apaga el LED

                               fprintf(SERIE,”LED APAGADO\\\\n”);

                            }

                       else if (Caracter == ‘1’)

                         {
                               output_HIGH (LED);                           //Enciende el LED

                               fprintf(SERIE,”LED ENCENDIDO\\\\n”);

                         }

                       else if (Caracter == ‘?’)

                         {

                        if (1 == input (Boton))

                           {

                                                                                             //Pregunta el estado del botón

                       Printf (“1”);                                                     //Envía un 0 si el botón no está presionado

                            }

                 else

                       {

                           Printf (“0”);                                                   //Envía un 1 si el botón está presionado

                       }

                }

        }
}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 21– PIC – Bootloader – CCS

Descargar código en PIC C Compiler de la práctica 21.

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

Descripción

En esta práctica se realiza la conexión con el módulo Bluetooth HM-10 para enviar y recibir datos hacia un smartphone por medio de una aplicación llamada Serial Bluetooth Terminal para Android, la cual enviá indicaciones para el encendido y apagado de un LED, también pregunta el estado de un push button usando los módulos X-UNO o X-NANO. Para encender el LED se enviá el número 1, si se desea apagar se envía el número 0. Para recibir el estado del push button "BOOT", se envía el signo "?", si está presionado recibe el número 1, en caso contrario se recibe el número 0.

 

Materiales:

1 x Módulo X-UNOX-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Módulo X-AVR. Comprar

1 x Push Button. Comprar

1 x Módulo Bluetooth HM-10. Comprar

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Atmel Studio 7. Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto, verifica en el apartado de librerías que esté seleccionada la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for AVR.

4. Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

A continuación se muestran las instrucciones para la comunicación entre el módulo bluetooth y el smartphone.

Instrucciones para comunicación bluetooth

Mostrar más información

PASO 1

Empareja el dispositivo bluetooth HC-05 a través de las configuraciones del smartphone.

Nota: si no se ha programado el dispositivo HC-05, el nombre y contraseña deberán ser los siguientes:

Nombre: HC-05

Contraseña: 1234

 

PASO 2

Debemos seleccionar el tipo de Bluetooth desde el apartado de “Devices” teniendo dos opciones:

BLUETOOTH CLASSIC: Bluetooth 2.0 (HC-05)

BLUETOOTH LE: Bluetooth 4.0 (HM-10)

En este caso seleccionamos CLASSIC y HC-05.

 

Nota: Una vez conectado los dispositivos, podrás enviar y recibir datos a través de la aplicación para el encendido y apagado del LED, así como el estado del push button.

 

Diagrama esquemático

 

X-UNO
X-NANO
X-UNO

X-NANO

 

Código

Código

 

/**

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Esta práctica consiste en realizar el envió de datos por medio de un módulo Bluetooth, usando el protocolo de comunicación serial UART, para enviar un comando simple para prender y apagar un LED incluido en los módulos X-UNO, X-MEGA o X-NANO y un segundo comando para preguntar el estado de un botón.

**************************************************************************/

/**************************************************************************

Fuses:

HIGH.BOOTRST : desmarcar

LOW.SUT_CKSEL : desceleccionar> Ex.Crystal Osc.8.0- Mhz;Start-up time PWRDWN/RESET: 1K CK/14 CK + 65 ms

EXTXOSC_8MHZ_XX_1KCK_14CK_65MS

**************************************************************************/

#include <stdio.h>

#include <avr/io.h>

#define F_CPU 16000000

#include <util/delay.h>

#define USART_BAUDRATE 9600

#define UBRR_VALUE (((F_CPU / (USART_BAUDRATE *16UL))) – 1)

#define BOTON (PINB & (1<<PB0))

#define LED_HIGH (PORTB |=(1<<PORTB5))

#define LED_LOW (PORTB &= ~(1<<PORTB5))

char CaracterT,CaracterR;

void SisInit(void)

{

     DDRB|=(1<<DDB5);                                   // DDB5 = salida

     DDRB&=~ (1<<DDB0);                              // DDB0 = entrada

     PORTB|=(1<<PORTB0);                            // pull – up activa para PB0

    MCUCR&=~ (1<<PUD);                              // se habilita el pullup

}

void USART0Init(void)

{

   UBRR0H = (uint8_t) (UBRR_VALUE>>8);       // baudios de retardo altos

   UBRR0L = (uint8_t) UBRR_VALUE;                // baudios de retardo bajos

   UCSR0C|= (1<<UCSZ01)| (1<<UCSZ00);       //establece un marco de 8 bits, no paridad

   UCSR0B|= (1<<RXEN0)| (1<<TXEN0);           //habilita la transmisión y recepción

}

int USART_Trasmit(char u8Data)

{

   while ( ! (UCSR0A& (1<<UDRE0)));

   UDR0 = u8Data;                                                 // transmite el dato

   return 0;

}

unsigned char UART_Receive(void)

{

    while ( ! (UCSR0A& (1<<RXC0)));                   //recibe el dato

    return UDR0;                                                    //retorna el dato

}

int main(void)

{

    USART0Init ();                                                //inicializa USART0

    SisInit ();                                                         //inicializa SisInit

    while (1)

    {

     CaracterR = UART_Receive ();

     USART_Trasmit (CaracterT) ;

     if (CaracterR == ‘1’)

     {

     LED_HIGH;                                                   //enciende el LED

    }

    else if (CaracterR == ‘0’)

   {

    LED_LOW;                                                      //apaga el LED

    }

   else if (CaracterR == ‘?’)

   {

      if (BOTON)

      {

       USART_Trasmit (‘0’);                                   //envía el dato “0”

       }

      else

       {

        USART_Trasmit (‘1’);                                   //envía el dato “1”

        }

     }

  }

}

 

Descargas

Práctica 21-AVR-XCU

Descargar código en Atmel Studio 7 de la práctica 21.

 

 

 

Fecha

agosto 13, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish