Luego del artículo anterior, donde comenzamos a ver el potencial de una transmisión Bluetooth, la llegada de esta reforma no podía demorarse demasiado. A nuestra conocida Estación Meteorológica NeoTeo, que viera la luz como parte integral de una red RS485, ahora la hemos adaptado con el módulo Bluetooth RN41 hasta transformarla en un equipo autónomo, portátil e inalámbrico. Gracias a esta posibilidad, podemos realizar nuestras tan ansiadas “mediciones meteorológicas de campo”. Ya no estaremos atados a un cable, a la red de energía domiciliaria y a un ordenador. Ahora, la maravilla de la radio nos permitirá observar y estudiar los datos del tiempo a distancia y con cualquier ordenador móvil.
Luego de mantenerse a la espera desde marzo hasta la fecha, la Estación Meteorológica NeoTeo resurge desde su descanso para tomar protagonismo junto al módulo Bluetooth RN41 de Microingenia S.L. Luego de ser un eslabón dentro de una red RS485, nuestra Estación Meteorológica toma otra dimensión gracias a la movilidad e independencia que le ofrece el enlace vía radio. Las reformas que deben realizarse al montaje anterior son mínimas y puedes verlas en el circuito y en el video de explicación. Si posees la anterior versión del desarrollo (como es nuestro caso) sólo deberás quitar algunos componentes y adaptar otros. Si en cambio inicias una nueva construcción, deberás desarrollar un circuito impreso que incluya las conexiones para el módulo Bluetooth y que no incorpore el circuito integrado SN75176 (MAX485) junto a sus componentes periféricos.
En realidad, las reformas a realizar son mínimas tanto para un montaje nuevo como para re-utilizar la antigua placa impresa. Todo puede alimentarse desde el propio regulador de tensión 7805 que trae incorporada la placa original, y a su vez ésta puede tomar energía desde cualquier batería. En nuestro caso, utilizamos una batería conectada a la fuente modular NeoTeo para obtener los 5Volts que alimentarán a ambas partes del desarrollo: al módulo Bluetooth y a la placa que contiene el PIC y el resto de los circuitos. Ya que nos referimos a ese tema, aprovechamos para decir que nada más deberá cambiar en lo que a hardware respecta. Por supuesto, el firmware del PIC tendrá modificaciones importantes que significarán una simplificación en el programa y en consecuencia una mejor comprensión del mismo. Como siempre, al final del artículo encontrarás el código fuente para realizar las reformas que creas necesarias para tu aplicación, para cargar el PIC con el mismo firmware que utilizamos nosotros o, en su defecto, para analizar la estructura del programa y llevarlo a otro lenguaje de programación.
En este desarrollo quedarán atrás las precauciones de generar un sistema anticolisiones de datos dentro de la red RS485 y, además, se reducirá la necesidad del sistema de permanecer en forma constante “a la escucha de instrucciones” operativas. Ahora el sistema se encargará de tomar las mediciones y transmitirlas con una periodicidad programable (dentro del firmware del PIC) hacia el ordenador. Para capturar la señal Bluetooth utilizaremos el mismo accesorio que vimos en el artículo anterior que se conecta a uno de los puertos USB disponibles en el equipo. Tal como expresé en el artículo anterior, mi ordenador no posee conectividad Bluetooth nativa y debemos apelar a un accesorio externo para lograr este objetivo.
Cristal del PIC y programación del módulo RN41
Si repasamos el circuito empleado en la Estación Meteorológica, recordaremos que utilizamos para el reloj del PIC un cristal de 20Mhz. También recordemos que la velocidad de conexión de datos era de 38400bps. Una mayor velocidad de datos para esa frecuencia de cristal puede generar errores en la transmisión de datos, y en un enlace de radio (donde las interferencias externas juegan un rol muy importante) 38400bps es un valor seguro y efectivo. Para programar la velocidad de trabajo del módulo Bluetooth RN41 teníamos un método ágil y práctico que consistía en llevar a un estado lógico alto al pin PIO7 para bajar a 9600bps. Si el mencionado pin permanecía sin conexión o forzado a un estado lógico bajo, la velocidad de trabajo cambiaba a 115.200bps. Por supuesto, hubiera sido muy sencillo bajar la velocidad dentro del firmware del PIC a 9600bps, pero aprovechando que estamos trabajando con la mejor tecnología, lo mejor es apostar a trabajar a la máxima velocidad que establecimos para el PIC.
Para esto es necesario “programar” el módulo Bluetooth. ¿Cómo se realiza esto? Muy sencillo: mediante los comandos SET. Para esto debemos ingresar al modo programación del módulo a través de la instrucción “$$$” (tres signos de peso). A esta instrucción, el módulo debe responder CMD y luego un signo de interrogación. En ese momento, el módulo estará listo para recibir el comando SET que quieras enviarle. En este caso, sería (sin las comillas) “SU,38”. Para cerrar el diálogo con el módulo, se le envía tres signos “menos” (—) y el módulo devuelve la frase “END”, indicando que hemos terminado la programación. Luego de esto, reiniciamos el sistema y el módulo ya estará listo para trabajar a la velocidad impuesta desde el PIC.
Así como cambiamos la velocidad de trabajo, recuerda dar una leída a todos los comandos disponibles para configurar el módulo Bluetooth RN41 a tu conveniencia. Como a todos nos ocurre alguna vez (como a mí me ocurrió hoy), existe la posibilidad de cometer errores al trabajar con los comandos. Puede suceder que nos encontremos con la necesidad de restituir los ajustes a los valores de fábrica. Para esto, colocamos una resistencia de 1K desde la conexión de PIO4 del módulo hacia la alimentación de 3,3Volts. Luego, conectamos y des-conectamos el pin no menos de tres veces a la alimentación y, de ese modo, el modo se restituye todo a los ajustes de fábrica. Por supuesto, luego de esta maniobra deberás volver a cargar los datos personalizados con anterioridad.
Para cargar los comandos SET y programar el módulo RN41 para leer el envío que haga el sistema de datos hacia el ordenador, puedes utilizar cualquier software que permita trabajar con el puerto serie. Puede ser el Hyperterminal o, como en nuestro caso, un accesorio del programa que utilizamos para programar los PICs. Proton trae consigo un Serial Communicator que nos permite enviar y recibir datos en forma serial. Como siempre te recomendamos, debes observar que coincidan las velocidades de transmisión de datos y los ajustes del ordenador y de los programas que utilices para enviar o recibir datos. Es decir, tanto sea para cuando decidas programar el módulo o para cuando decidas tomar de él los datos que te suministra.
Todo es tan sencillo como muestran los videos. Conectas la alimentación, el cable de datos y ya puedes trabajar de manera inalámbrica. El módulo Bluetooth RN41 de Microingenia S.L. lo hace fácil. La magia de la radio lo hace posible y, por supuesto, NeoTeo lo comparte contigo.