Electrónica y programación para Microcontroladores.

Libros técnicos para electrónica programable.

Email
Contactanos en:

consultas@firtec.com.ar

Arduino

Enviar información por Bluetooth a un móvil con la interfaz HC-06 es bastante simple. Esto debido a que la propia interfaz  resuelve  todas las cuestiones relacionadas con el transporte y protocolo de la comunicación y solo requiere de una conexión serial (UART) para conectar con el microcontrolador o dispositivo que procesará los datos. 
Está claro que con Bluetooth se facilitan las comunicaciones entre equipos móviles, se eliminan los cables y conexiones y además podemos crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.
Además un detalle no menor es que cuando trabajamos con microcontroladores, la visualización de los datos o información que leemos de sensores puede ser engorrosa. Usar pantallas gráficas o cualquier dispositivo de Hardware que sumemos a nuestro proyecto lo encarece sumando recursos, conexiones, cantidad de memoria para el código que maneja la parte gráfica, etc. 
Con esta tecnología el propio móvil del usuario sirve como pantalla de visualización pudiendo incluso ver los datos no estando frente al propio equipo. 
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 lugares separadas siempre que la potencia de transmisión es suficiente para alcanzar el destino.

La placa HC-06 tiene cuatro pines necesarios para la comunicación propuesta.

Vcc, Voltaje positivo de alimentación, aquí hay tener cuidado porque hay módulos que solo soportan voltajes de 3.3V, pero en su mayoría ya vienen acondicionados para trabajar en el rango de 3.3V a 6V.

GND, Voltaje negativo de alimentación, se tienen que conectar al GND de la placa que se esté usando, en este caso Raspberry PI Pico.

TX, Pin de Transmisión de datos, por este pin el HC-06 transmite los datos que le llegan desde el computador o el Móvil mediante Bluetooth, este pin debe ir conectado al pin RX de la placa Pico.

RX, pin de Recepción, a través de este pin el HC-06 recibirá los datos desde la placa Pico los cuales se transmitirán por Bluetooth, este pin va conectado al Pin TX de la placa Pico.
Recuerde que los pines de comunicaciones van cruzados.

En el siguiente ejemplo con MicroPython vamos a vincular dos canales analógicos (pines 26 y 27) de una placa Raspberry Pico a un móvil Android.
El siguiente código envía los datos a la interfaz HC-06, el pin 0 de Raspberry Pico se ha conectado el pin RX del HC-06 y el pin 1 de Raspberry Pico al TX del HC-06.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import time
from machine import ADC, UART, Pin
bandera = 0
uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
def main():
    canal_0 = machine.ADC(26) # Canal 0 ADC en pin 26
    canal_1 = machine.ADC(27) # Canal 1 ADC en pin 27
    factor_16 = 3.29 / (65535)  
    while True:
        global bandera
        
        
        if (bandera == 0):
            bits_16 = canal_0.read_u16();
            volts_16 = bits_16 * factor_16
            datos_tx = "%.02f" % (volts_16) + ';'
            uart0.write(datos_tx)
            print('Voltios Canal 0: {}'.format(datos_tx))
            bandera = 1
            print('-----------------------')
        if (bandera ==1):
            bits_16 = canal_1.read_u16();
            volts_16 = bits_16 * factor_16
            datos_tx = "%.02f" % (volts_16) + ';'
            uart0.write(datos_tx)
            print('Voltios Canal 1: {}'.format(datos_tx))
            bandera = 0
            print('-----------------------')
            
        time.sleep(.5)
        
if __name__ == '__main__':
    main()

Para construir la aplicación usamos App Inventor, siendo la imagen siguiente el conjunto principal de bloques para el despliegue de datos recibidos.
Se reciben cuatro bytes que incluyen el separador de campos ";" para separar y ubicar los datos de los dos canales analógicos en su correcto lugar.

Si no está familiarizado con la programación para Android puede descargarla aplicación desde el siguiente link habilitando la instalación de aplicaciones desconocidas en su móvil.

 

Resultado obtenido con el ejemplo. 

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.