PIC18F25K22 & XC8: Sensor DHT22 - Enviar datos por bluetooth a Python para almacenarlos en Excel o CSV


Saludos! Seguimos con los ejemplos del PIC18F25K22, en esta ocasión retomaremos un anterior post en el cual se enviaban los datos del DHT22 a través del bluetooth FSC-BT986 para monitorearlo en "MRC SerialPortCtrl", solo que en esta ocasión estaremos probando la función que se ha implementado al proyecto, para exportar los datos a CSV o Excel.

Circuito:
Como ya hemos venido haciendo en otros ejemplos para testear el codigo estaré usando la PIC18BT MCE Development Board v1.0 la cual recientemente en otro post mostré como he agregado el FSC-BT986, bueno el circuito es muy sencillo y aca tienes como quedaría conectado:


Código:
Para realizar el código de este ejemplo se han realizado tres principales cambios:
  1. Se ha habilitado el TIMER0 para que el desbordamiento se atienda con una interrupción, el tiempo sera de cada 1ms. Con esto en la función RTCC_Update() obtenemos retardos de 2 segundos, necesarios entre cada lectura del sensor.
  2. Se ha creado la función SERIAL_RXProcessCommand() para estar monitoreando los datos recibidos por la UART, por lo tanto esta función contiene un método para poder leer una "String" y procesarlo. Para este ejemplo en particular esperamos recibir la palabra "Start" o "Stop" para habilitar/deshabilitar el envio de datos.
  3. Se ha creado la funcion SERIAL_TXProcess() la cual arma el paquete de datos a enviar. "sprintf(dataSendBuffer, "Temperatura: %.1f, Humedad R: %.1f \r\n", miDHT_Sensor.temperature, miDHT_Sensor.relativeHumidity)" hacemos uso dela función sprintf para este trabajo, recordar que esta función consume memoria pero para este ejemplo es suficiente. Ademas en este ejemplo estamos haciendo uso del valor tipo float que nos entrega la estructura de la librería. Nota: Es importante mencionar que el script de python esta en la espera de recibir números separados por comas "," para poder separar las columnas, también al final estera "\r\n" para dar por terminado la recepción de datos. Como ejemplo de dato enviado tendríamos "Temperatura: 25.5, Humedad R: 60.3 \n\r" (mas adelante se ve como los recibe y el resultado de almacenarlos). 
El codigo principal es el siguiente:

Monitor serial:
Una vez ejecutado el monitor serial "MRCSerialPortCtrl" lo primero que se debe de hacer es configurar los datos para el almacenamiento. En la sección "Registro de Datos", seleccionar la opción de Habilitar Exportación y configurar:
  • Seleccionar formato: CSV o Excel
  • Elegir los nombre para las columnas de los datos a exportar.
    • Titulo Dato Final: Columna donde almacenara toda la trama recibida.
    • Sub-Columnas: Columnas en donde almacenara los datos que requerimos obtener de la trama.
  • Seleccionar Archivo: Seleccionar la ruta en donde se guardara el archivo y puedes optar por asignarle un nombre o dejar el sugerido.

Una vez configurado, el siguiente paso seria seleccionar puerto y velocidad, para poder conectarse. En cuanto esto pase vamos a enviar "Start" para comenzar a recibir datos.


Con esto ya podemos visualizar los datos que se están enviando por el bluetooth.


Para detener la transmisión, basta con enviar "Stop", el MCU retornara mensaje de que se ha finalizado el envio.


Bueno al fina  revisamos el documento que nos ha generado, ya en Excel podremos hacer graficas, bueno procesar los datos como mejo nos convenga.


Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.



Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Links:

Publicar un comentario

0 Comentarios