Trabajando con módulos Bluetooth RN41 y RN42 en Android

Trabajando con módulos Bluetooth RN41 y RN42 en Android

Desde la invención del bluetooth se han desarrollado infinidad de aplicativos electrónicos, pero en la actualidad estos dispositivos se han tornado más asequible para cualquier persona, la microelectrónica, los PCB de diferentes capas han hecho que hoy por hoy tengamos el mismo bluetooth de hace más de 15 años pero en tamaño tan reducido, y tan fácil de conectar que hace que cada vez se puedan crear aplicativos enlazados con microcontroladores, computadores, celulares o cualquier dispositivo que cumpla con los protocolos de comunicación blueooth.
En este tutorial hablaremos de módulos bluetooth como el RN42 y RN41 de la casa Roving Networks , que gracias a sus características y facilidad de configuración podemos crear aplicativos de control o censado de datos.

Las Características más importantes son:

– Voltaje de operación de 3V a 3.6 V.
– Consumo: 26 uA en modo inactivo, 3mA en conexión establecida y 30mA hasta 50ma transmitiendo.
– Máxima distancia de transmisión: 20m el RN42 y 100m el RN41
– Puerto UART local y USB.

En la hoja de datos podremos encontrar muchos datos de conexión, tecnología, frecuencias y comandos, aquí resumiremos y solo comentaremos las que se requieren para conectar nuestro bluetooth con un microcontrolador y con el fin de hacer un aplicativo donde se pueda mirar su funcionamiento.

El bluetooth RN41 es de similares características, su diferencia principal es que es de clase1 de mayor alcance, con un poco más de consumo de corriente, pero su conexión es igual.

Pines de configuración del Bluetooth RN41 y RN42

Los pines que utilizaremos para conectar el bluetooth son el de TX (pin 14), RX (pin 13), GND (pin 12), VDD (pin 11), PI08 (pin 31 donde se conecta un led de estado que indica sin conexión o baja conexión), PIO2 (pin de estado conectado, aquí se conecta un led)
Como primera instancia miraremos como alimentar y conectar nuestro modulo bluetooth, esta práctica me permitirá saber sus características de funcionamiento y asi poder ingresar a modo de configuración y cambiar todos sus parámetros de fábrica, como la velocidad, nombre, identificador, código de seguridad, encriptamiento etc.

Circuito recomendado para conectarlo por primera vez

Recordemos que nuestro bluetooth solo trabaja a 3.3v, para su alimentación debemos usar un regulador para este propósito, podemos conectar un LD33, un LD1117V33 o un sencillo Lm317 calibrado a 3.3v. Para este propósito usaremos el LM317. Para hacerlo funcionar a 3.3v debemos encontrar la R1 que ira en ajuste. Hemos usado la ecuación característica del lm317 que proporciona el fabricante.

vout = 1.25 (1+R2/R1)+Iadj(R2)

De la cual despejamos R2y obtenemos: 393,6 ohm. Colocamos una resistencia aproximada con todo el circuito de proteccion y hacemos un puente entre TX y RX.

Circuito para montar el RN42 y RN41

En el circuito podemos ver una R3 y R4 que son necesarias solo cuando se conecta circuitos TTL (5v) porque si conectan directamente al módulo lo pueden quemar, para esto se debe colocar un divisor de voltaje que garantiza una entrada de 5v y en su salida sale 3.3v, voltaje requerido para su funcionamiento, cabe aclarar que un microcontrolador por lo común se lo puede trabajar a 3.3v entonces no es necesario las dos resistencias de protección, pero si conecta una LCD 2×16 esta no funcionara y aquí es cuando debemos tener dos fuentes, una de 5v y otra de 3.3v como sugiere la grafica. Estos modulos vienen de fábrica con un nombre preestablecido y a una velocidad de  115200bps, 8bits, Sin Paridad, 1bit de Stop.

Pasos para configurar el módulo RN42 y RN41

  1. Alimente a los modulos, active el bluetooth del celular o computador, luego realice el enlace o emparejamiento de estos digitando el PIN que de fábrica es 1234.
  2. Desconeste y vuelva a conetar el blueooth y tendrá 60 seundos para ingresar a su configuración.
  3. El modulo se lo puede conectar por RS232 con los acoples respectivos como MAX232 y el divisor de voltaje  a un puerto serie por medio de un DB9, se debe abrir el hiperterminal o cualquier programa que permita leer y enviar comandos AT. La segunda opción es prender el bluetooth de un computador o laptop y por medio de algún programa que controle bluetooth crear un COM virtual que le permita al hiperterminal enviar y recibir datos de forma inalámbrica (de esta manera se conecta TX y RX)
  4. Para entrar en el modo de configuración del módulo se debe enviar 3 signos pesos $$$ dentro de los primeros 60 segundos tras haber alimentado a 3.3v el dispositivo, ya que si no, entra en modo datos (Data mode) y los comandos son ignorados, si los datos fueron leidos, el modulo responderá con CMD y después del envío de instrucciones nos regresa un AOK. La forma de ver si el modulo está bien, es mirar el led de status, siempre debe  estar parpadeando, después de entrar en Command mode la oscilación del led es mas rápida y cuando esta enlazado con algún dispositivo el led deja de parpadear y también se enciende el led de estado conectado
  5. Para mirar la ayuda y mirar que comandos necesito digite en modo Command mode la letra “h“de ayuda, para mirar la configuración de fábrica digite “d”.
  6. Comandos básicos

Para cambiar el nombre de nuestro dispositivo bluetooth digitamos en hiperterminal o en el celular los siguientes comandos:

SN

SN,Micro                    ; Ahora nuestro dispositivo se llama Micro

 Para cambiar el Baud Rate:

SU

SU,96                      ; Solo se necesitan los primeros dos números.

 Se  lo puede configurar en cualquiera de las siguientes velocidades

1200, 2400, 4800, 9600, 19.2, 28.8, 38.4, 57.6, 115K, 230K, 460K, 921K

 Para cambiar el código de seguridad: de fábrica viene el código PIN 1234

SP

SP,0000                           ;ahora el código de enlace es 0000

Un aspecto bastante curioso y útil de estos modulos es la facilidad para cambiarle el identificador al bluetooth SC (Service Class) Y SD (Device Class) sirven para decirle al bluetooth si es una computadora, un modem, una laptop, un teléfono etc, para ello debemos buscar en internet páginas que nos generen el código CoD y mediante los comandos le cambiamos la forma de como lo reconocen los demás dispositivos.

En Microelectronicos hemos disenado un modulo adaptador PCB para el RN42 y RN41 para evitar daños en sus pines, y asi facilitar su uso en una protoboard.

En las imágenes puede observar detalles del aplicativo hecho con RN42 en prototoard y un enlace de control mediante  java con un móvil android, El aplicativo controla encendido y apagado y un la intensidad de luz mediante un dimer electrónico. Si desea mas informacion referente a como comprar a estos modulos inalambricos por favor de clic aca o contactenos. 


Tags:, , , , , , , , , , , , , , , , , ,

Comments

  • administrator | abr 15,2012

    Hola… me interesa mucho esta publicacion.. y tengo algunas dudas al respecto….
    lo que yo pretendo es enviar datos desde mi cell a mi PC via bluetooth… estas son algunas preguntas aver si me hechan una mano(tengo un RN-42):

    – se pueden enviar datos desde mi cell a la PC? me refieron a que el el RN-42 se conecte a la PC de forma serial (usando un max232), enlazar mi cell con el RN-42 y desde mi cell enviarle datos a la PC usando el hyperterminal.

    si fuese posible lo anterior… como hago pa elazar mi cell con el RN-42, tengo entendido que hacer esto es como si intercambiara imagenes, o musica entre dos celulares via bluetooth que es cuando yo doy un codigo de enlace y el otro celullar tambien debe poner el mismo codigo (en este caso dicho codigo seria el del RN-42 “1234”?)…

    en si mi duda es :
    – yo con mi ceel doy el codigo .. y acepto al modulo (RN-42) pero como hago para qu este modulo acepte el enlace… Si estoy eprdido diganemlo… muchas gracias… la publicacion esta pal libro…

    • administrator | may 30,2012

      es sencillo, primero debes conseguirte un pc con bluetooth y conectarlo via bluetooth con el modulo rn-42, el por defecto cuando se conecta por primera vez no posee clave ni nada, asi que podras asignarle a traves de hyperterminal mediante comando AT un nombre al dispositivo y un codigo, una vez hagas eso, podes conectarlo con un max 232 al PC y usarlo alamabricamente con el PC mediante puerto serial, ya desde el celular lo buscas nuevamente por bluetooth y escribes el codigo que ñle hayas asignadio y ya esta, aki te anexo una pagina donde esta la informacion mas detallada. http://www.neoteo.com/bluetooth-con-modulo-rn41-y-18f25k20

  • administrator | may 17,2012

    El módulo RN-42 funciona, pero tiene muy baja potencia. En nuestras pruebas, en ambiente despejado
    la conexión no se puede establecer si el RN-42 está a más de 5m del teléfono o PC. Una vez establecida la
    comunicación, el intercambio de datos por el puerto serie sobrevive hasta los 12m, en ambiente despejado.
    Pero ya a los 10m se aprecian retrasos en la transmisión.
    No recomiendo el RN42 para distancias mayores a 5m, a pesar que la hoja de datos sugiere 20m.

    • administrator | may 17,2012

      Hola Alejandro, muchas gracias por tus comentarios. Con el fin de ser mas objetivos al evaluar el desempeno del RN-42 debes tener en cuenta la sensibilidad y potencia de transmision en el lado que complementa la comunicacion del RN42. Tambien muchas de las aplicaciones requiren el uso de una antena adicional, que reemplace a la que el modulo trae embebida con el fin de lograr mejores alcances.

  • administrator | oct 11,2012

    hola muchas gracias por este tuto es muy bueno me encanta, tengo un problema. ejemplo tengo un circuito con leds de diferentes colores, lo que necesito es que por medio de bluetooth yo pueda enviarle la señal a el led que quiera no se como puedo hacerlo y el programa y todo eso muchas gracias y si puedes ayudarme te lo agradecería mucho me serviría mucho gracias por su atencion

  • administrator | nov 1,2012

    Ya pude configurar exitosamente mi modulo BlueSMiRF Silver.
    Muchas gracias.

  • administrator | ene 29,2013

    Hola, buenas noches, tengo una duda, tengo el RN41, una microSD de 2 g y el microcontrolador LPC1768, tanto el RN41 y la microSD estan conectados al LPC1768, el LPC1768 genera informacion que graba en la microSD, y ocupo el Getblue de Android para la descarga del archivo generado por el LPC1768, aqui es donde tengo el problema: hice una rutina de bucle para que transmita el contenido del archivo que genero en la microSD al Getblue, solo que necesito que solo se active el RN41 ( no se si esta bien aplicado el termino) cuando hago el empiezo de la descarga en el getblue y que detenga el proceso de generar informacion, una vez que se haya acabo el contenido del archivo, mande el mensaje de archivo descargado y que al momento de cortar la transmision del getblue con el RN41, se desactive el RN41 y que continue el proceso de generar informacion. Se que es una comunicacion RFCOMM que es una comunicacion en serie pero sin cables, la verdad es lo unico que me falla y no se que hacer, tambien conecte el GPI02 del RN41 al pin 21 del LPC1768, ya que es una salida de energia, y hasta aqui he llegado, espero que me puedan ayudar a terminar este proyecto.
    SALUDOS !!! y gracias de antemano

  • administrator | abr 8,2013

    oye tengo el modulo rn41 el que ustedes venden, la primera vez que lo conecte encendio el led status RF, luego lo conecte por bluetooth al pc y solo esa primera vez encendio el led de connect, despues de eso no volvio a encender, y nunca parpadeo el led de status,unicamente el que prende es el status RF, que puedo hacer, el pc y un celular lo reconoce pero cuando puenteo RX y TX; no se ve lo que estoy enviando.

  • administrator | abr 11,2013

    disculpe la pregunta, pero desearía saber como hacer que el modulo de Bluetooth RN42 solo reciba señales de audio, como unos manos libres, solo quiero saber como conectarlo si pudiera enviarme un diagrama se lo agradecería mi correo electrónico es kleinebiest@gmail.com.

    Por cierto Excelente vídeo,

  • administrator | abr 20,2013

    Hola. Estoy trabajando con el RN41, le envío $$$ y me devuelve CMD, pero luego de eso no es como si no me aceptara los comandos, no me devuelve mas nada.
    Pueden ayudarme con eso?? por favor.

  • administrator | oct 12,2013

    Buenas tardes. Te hago una consulta, quiero transmitir una señal de tensión ( 0 a 2 V) hacia una pc utilizando un dispositivo bluetooth o wifi. El alcance debería llegar hasta 50 mts. Me podrías decir que es lo que necesito y orientarme como lo debo conectar/configurar.
    Gracias y saludos. Fernando

  • administrator | feb 15,2014

    Hola espero puedas responder mi pregunta tengo una idea para mi proyecto de semestre y es enviar audio por bluetooth la idea es que con un micrófono se recolecten los sonidos y estos sean enviados por bluetooh a un auricular o aun audífono pero con el RN41 o RN42 seria posible?? o que tecnología o con que elementos electrónicos puedo mandar el audio por bluetooh??? gracias y hasta pronto

  • administrator | abr 29,2014

    Hola, estoy intentando comunicar dos modulos RN42 utilizando un par de microcontroladores(Arduino UNO y Teensy 3.1) pero no he logrado que los dos modulos se conecten entre si, solo he podido comunicarlos utilizando un computador como puente entre ellos. Alguien ha tenido este problema antes y lo pudo solucionar? o conocen alguna pagina donde pueda encontrar información al respecto?
    Muchas gracias
    PD: estoy utilizando un modulo BlueSmirf

  • administrator | ago 9,2014

    Hola, estoy queriendo determinar el ingreso y egreso de mi telefono celular a una zona, el modulo RN41 puedo determinar la distancia entre el telefono y el modulo? o sea puedo obtener la intensidad de la señal?
    Gracias

    • administrator | dic 30,2014

      Hola Roni, con un modulo bluetooth lo que puedes hacer es enviar y recibir información , no tomar medidas de ningún tipo. Para ello lo que requieres es un sensor. Ahora si lo que quieres es determinar la intesidad de la señal eso solo puede hacerse con intrumentos sofisticados, por ejemplo un analizador de espectro.