viernes, 28 de mayo de 2021

Lecturas de PT100 de forma inalámbrica (PT100 + LabVIEW + XBee + ESP32 + BD)

Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos realizados por medio de guías dedicadas, actualizaciones y nuevas entradas.

Todos programas realizados pueden ser descargados y compartidos con referencia al autor.

Pincha AQUÍ para descargar los programas de esta entrada.

Objetivo:

Mostrar como monitorizar en Real Time las lecturas de una PT100 de forma inalámbrica. Se muestra en la Figura 1 el montaje final de los dispositivos en la PCB dedicada.


Figura 1: "Montaje de los componentes"


Materiales necesarios:

- Sonda de temperatura sumergible PT100 de 3 hilos (Mostrada en la Figura 2)


Figura 2: "Sonda PT100 de 3 hilos (Platino)"

- ESP32 MINI D1 (Ambas caras mostradas en la Figura 3)


Figura 3: "ESP32 MINI D1"

- 2 XBee con adaptador USB (Mostrados en la Figura 4; XBee USB Adapter izquierda, XBee derecha)

Figura 4: "XBee"

- Fuente de alimentación +3V3 / +5V


Figura 5: "Fuente de alimentación +3V3 / +5V"

- PT100 Shield (PCB dedicada Figura 6 cara Botton y Figura 7 Cara Top)


Figura 6: "PT100 Shield cara Botton"


Figura 7: "PT100 Shield cara Top"

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Proteus 8 Professional 
- LabVIEW 2019
- Microsoft Access 2016 

Proceso de diseño y fabricación:

Paso 1: Programación del ESP32

Para la programación del ESP32 se empleará el entorno de programación Arduino IDE 1.8.12. Se tendrá en cuenta no utilizar la conexión wifi (se verá en entradas posteriores) ni el puerto serie, ya que el objetivo será establecer una comunicación por UART (Transmisión - Recepción Asíncrona Universal) entre el ESP32 y uno de los XBee (Router).

Puede descargar el código explicado AQUÍ.

La parte más importante de este programa; resaltada en rojo en la Figura 8, reside en la toma de las lecturas debido a que al realizar una media de 1000 mediciones, se evitará la oscilación de la señal recibida enormemente obteniendo así una medición mucho más certera.

Figura 8: "Sistema de medición estable"

Serial1.println(suma/1000.0, 8);  //Usado para enviar 8 dígitos

Paso 2: Fabricación de PT100 Shield (PCB dedicada)

La fabricación de la PT100 Shield consiste en el diseño de una placa de circuito impreso (PCB) a doble cara (cara Top solo para serigrafia mecanizada, cara Botton conexiones) la cual, agrupará el ESP32, un XBee, un puente de Wheatstone, una fuente de alimentación y un terminal para la conexión de la PT100 de 3 hilos.

El esquema eléctrico, el Layout, los archivos CADCAM de fabricación y las librerías empleadas se pueden descargar AQUÍ

Se dejará para otras entradas posteriores las siguientes guías: (Esté atento)
- Guía de diseño de componentes en Proteus
- Guía de diseño de PCB en Proteus

Durante la selección de las resistencias a emplear, R3 de 100 ohmios del diseño en Proteus mostrado en la Figura 9, debe ser lo más exacta a su valor para obtener así, una lectura más fiable y no tener que recurrir a una calibración posterior más compleja y con más desviación.

Figura 9: "Resistencia de referencia (Muy importante)"

Se debe guardar especial cuidado al configurar la fuente de alimentación utilizada respetando las tensiones mostradas en las Figura 10 y 11.

Figura 10: "Configuración de la fuente (Esquema)"


Figura 11: "Configuración de la fuente (Dispositivo real)"


Paso 3: Programación de los XBee

La configuración que se realizará en los XBee se hace mediante el Software XCTU. Ambos usarán distinta configuración ya que, uno estará conectado a la PCB y, el otro a cualquier puerto USB del ordenador para su futura comunicación con LabVIEW (ambos se conectarán al PC durante su programación).

Se dejará para otras entradas posteriores la siguiente guía: (Esté atento)
- Guía de configuración de XBee con XCTU

Se muestra en las Figuras 12 y 13 respectivamente las configuraciones requeridas para establecer la comunicación entre XBee conectado al PC (Coordinador) y el XBee conectado a la PT100 Shield.

Figura 12: "Configuración de XBee Coordinador"

Figura 13: "Configuración de XBee Router"


Paso 4: Programación de LabVIEW

Una vez realizados todos los pasos anteriores, solo falta realizar la programación en LabVIEW donde se visualizará en tiempo real la información transmitida desde la PT100 Shield. Este paso se realizará en dos etapas, una la programación de LabView y la otra la configuración de los enlaces de comunicación con la base de datos.

Puede descargar el código AQUÍ

El programa mostrado tiene adjunto varios archivos ".vi" que deberán ser ubicados en la misma carpeta que el programa principal "Práctica1_PT100.vi". De la misma forma, la carpeta "Varios" se ubicará en la misma dirección que el resto de archivos.

La funcionalidad del programa desarrollado alberga desde una explicación de uso detallada, la demostración de los cálculos reales realizados para tomar la medición de una PT100 de 3 hilos con el sensor de platino, la monitorización en tiempo real de la medición de la sonda PT100 y la consulta a los registros de la base de datos que se registra con cada nueva lectura.

Se muestra en las Figuras 14, 15, 16 y 17 los diversos paneles mencionados previamente con el fin de motivar su descarga y consulta del código realizado, aun así, se mostrarán los fragmentos más llamativos o importantes del código.


Figura 14: "Panel de información"


Figura 15: "Panel de demostración"


Figura 16: "Panel de mediciones"


Figura 17: "Panel de Historial"

Uno de los fragmentos más llamativos de este programa, es la posibilidad de hacer emerger un documento PDF con solo hacer Click en un botón. Esto se logra gracias al programa desarrollado (el subVI mostrado en la Figura 18) capaz de reconocer la ubicación del archivo escogido. Si quiere observar su código únicamente tiene que doble Click en el área remarcada en rojo (en el Block Diagram CTRL +E).

Figura 18: "SubVI Open pdf.vi"

El otro fragmento a mencionar; es el mostrado en la Figura 19, gracias al cual se evitará el parpadeo de la tabla que muestra los registros de la base de datos. Esto se logra ya que se evita con una simple comparación si se ha solicitado un nuevo acceso a la base de datos, de caso contrario, el bucle seguiría en ejecución realizando nuevas lecturas cada segundo.

Figura 19: "Evitar parpadeos en el muestreo"


Para poder comenzar a utilizar el programa, primero se deben crear los archivos de la base de datos ejecutando el programa CrearDB.vi. Con su ejecución, comenzarán a crearse tablas indexadas diarias organizadas por Día y Mes para los próximos 10 años reunidas en 10 archivos indexados por año. Se obtendrá un resultado como el mostrado en la Figura 20.

Figura 20: "Base de datos preparada"


El paso final es la creación de los ficheros .udl que permitirá a LabVIEW leer y escribir datos en las tablas generadas. Para ello, el proceso de obtención de estos archivos de enlace se realiza mediante la siguiente secuencia mostrada a continuación en las Figuras 21, 22 y 23.


Figura 21: "Crear udl Tools/Create Data Link..."



Figura 22: "Crear udl Selección de Proveedor"


Figura 23: "Crear udl Prueba de conexión"


La ruta seleccionada para el udl debe ser la misma que los archivos de la base de datos generada y escogida para realizar el enlace. Esta tarea se deberá realizar con cada archivo de la base de datos (10 veces en total). Las rutas .udl no se pueden transferir, ya que algún intento de modificación para acelerar la tarea romperá el enlace establecido.

Por último, ya está todo listo para comenzar a tomar lecturas y monitorizarlas.

Última revisión 29/05/2021


No hay comentarios:

Publicar un comentario

Fabricación de PCB con CNC

  Se recuerda que este Blog esta realizado con fines educativos y, a medida que vaya creciendo, se explicará con más detalle los pasos reali...