sábado, 29 de mayo de 2021

Enviar correos con archivos adjuntos con python3

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 todos los programas de esta entrada.

Objetivo:

Mostrar como poder enviar un email con archivos adjuntos utilizando python3. 

Programas utilizados:

- Python3 (Enlace de descarga)

Principio de funcionamiento:

La utilidad de este programa es muy elevada, ya que actualmente ya esta siendo integrada en varios sistemas automatizados de visión artificial enviando archivos adjuntos con las imágenes captadas. Para poder utilizarlo, se deben configurar las siguientes líneas:
  • Línea 8: coloque la dirección del remitente.
  • Línea 9: coloque la dirección de los destinatarios o destinatario en la lista.
  • Línea 10: Escriba el asunto del email
  • Línea 11: Escriba el cuerpo del mensaje, recuerda que aquí podrás introducir todo el contenido escrito del email.
  • Línea 12: coloque la ruta del archivo adjunto.
  • Línea 13: Nombre asignado al archivo adjunto, no con el que se ha guardado aunque puede poner el mismo.
  • Línea 47: coloque su email y su contraseña.
Recuerda si utiliza este programa, modificar la contraseña antes de enviárselo a otro usuario; proteja su información confidencial.


Figura 1: "Mantenga la seguridad en sus programas"

Para poder enviar email desde Gmail, antes deberá activar el acceso a aplicaciones poco seguras por medio del enlace mostrado a continuación. 
Usa con criterio este programa para evitar hacer spam, Gmail lo detectará.

Active el acceso a aplicaciones poco seguras pinchando AQUÍ

Ultima revisión 30/05/2021

Algoritmo de la división

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 todos los programas de esta entrada.

Objetivo:

Mostrar como poder realizar divisiones utilizando Python3 y Arduino IDE empleando únicamente sumas y restas.

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Python3 (Enlace de descarga)

Principio de funcionamiento:

Como se muestra en la Figura 1, se emplea la base matemática de la división para realizar los programas en donde; se define la división entre dos números como las veces que entra el divisor en el dividendo.


Figura 1: "Fragmento del código de la división"


Tanto en el código realizado en Python3 como en Arduino IDE continúan realizando el proceso de división mas veces si el resto es distinto de 0. Únicamente se va multiplicando el resto por 10 cuando es distinto de 0 y se obtiene un nuevo decimal de la división.

Seguramente cada código realizado por cada programador será distinto y mas o menos pesado; estos ejemplos no son la mejor forma, pero cumplen con el objetivo.

Ultima modificación 29/05/2021

Detector de nivel de CO2

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 todos los programas de esta entrada.

Objetivo:

Desarrollo de un dispositivo de control del nivel de CO2 y registro en un aula mediante, un sensor MG811 y un ESP32 con Node-RED


Materiales necesarios:

- Sensor MG-811 CO2 sensor V1.2 (Mostrado en la Figura 1)


Figura 1: "Sensor MG-811"

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


Figura 2: "ESP32 MINI D1"

- Fuente de alimentación +5V DC (Mostrado en Figura 3)


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

- PCB CO2 (PCB dedicada Figura 4 cara Botton y Figura 5 Cara Top)


Figura 4: "PCB CO2cara Botton"


Figura 5: "PCB CO2 cara Top"

- Módulo zumbador Arduino (Mostrado en Figura 6)

Figura 6: "Módulo zumbador Arduino"

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Proteus 8 Professional 

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 llevarán a cabo en el las lecturas del sensor y el envió de la información a Node-RED para ser tratada. También se encargará de enviar las señales al zumbador para que se emita una señal acústica ("Escapa" en morse) y led de información de estado.

El programa "co2.ino" ha sido realizado bajo un ajuste de los datos proporcionados por el fabricante y las mediciones empíricas obtenidas.
Se muestra en la Figuras 7 la gráfica de respuesta del sensor, cabe destacar que esta señal se interpretará aumentada 8,5 veces debido a su amplificador de señal incorporado.


Figura 7: "Gráfica de respuesta del MG811"


Conocida la gráfica de respuesta, se debe obtener la ecuación de funcionamiento que más se aproxima a la mostrada previamente. Esta labor de puede realizar utilizando Excel y midiendo los pixeles de la imagen para obtener reglas de 3. La tabla Excel adjunta en las descargas de esta entrada, alberga varias pruebas de aproximación hasta encontrar la más fiel a la realidad obtenida. Se muestra en la Figura 8 el fragmento de código empleado para realizar el ajuste junto a varias alternativas más inestables.

Figura 8: "Fragmento del código empleado"

La ecuación de ajuste, responde correctamente tras las 2 horas de funcionamiento siempre y cuando no se encuentre en una zona muy aireada.


Paso 2: Fabricación de PCB CO2 (PCB dedicada)

La fabricación de la PCB CO2 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, el sensor MG-811, 3 tipos distintos de conexión de alimentación, 3 LEDs y un módulo de zumbador.

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

Se muestra en la Figura 9 el esquema eléctrico realizado para la fabricación de la PCB.


Figura 9: "Esquema eléctrico"

Siguiendo este esquema, se realiza el diseño de la PCB como se muestra en la Figura 10.


Figura 10: "Layout de la PCB"

Toda la información mostrada, es obtenida del archivo Proteus adjunto a la descarga de esta entrada. Tanto en este programa como en el resto de los añadidos en este blog, tienen desarrollada las pestañas de plano esquemático, layout, costes y diseño 3D (Schematic Capture, PCB Layout, Bill of Materials y 3D Visualizer). Se muestra en la Figura 11 el coste de materiales de esta PCB.

Figura 11: "Presupuesto de la PCB"

Paso 3: Programación de Node-RED

El flujo empleado para monitorizar y registrar en una base de datos las lecturas de CO2, es complejo debido al diseño personal del sistema de base de datos empleada. Existen otros métodos para realizar una base de datos como SQL o empleando la librería csv en Python3, pero el objetivo que se pretende es estudiar la forma de crear una base de datos.

Se expone a continuación de forma breve en qué consisten los nodos más importantes de este flujo.

  • Figura 12: Se usan pulsos cada 10 segundos para registrar la hora actual en UTC y desglosar la información de forma que pueda ser mostrada en el Dashboard.
Figura 12: "Obtención de fecha"

  • Figura 13: Se muestra la información del flujo anterior en el Dashboard

Figura 13: "Fecha actual en el Dashboard"

  • Figura 14: En este flujo se realiza el muestreo y registro de los datos actuales de las publicaciones realizadas por el ESP32. Esto se logra gracias a que cada nuevo pulso de tiempo, se lee la última publicación del ESP32 de ambos canales y se unen. Después, estos datos se desfragmentan por tipo de dato y de registran en formato "csv".

Figura 14: "Flujo de registro y muestreo de datos actuales"

  • Figuras 15, 16 y 17: Flujo para el envió de e-mail en caso de alarma. Funciona tras recibir una publicación por su canal y con la programación configurada. Se debe modificar los nodos de la función y de email con el remitente y destinatario que desee.

Figura 15: "Flujo de envió de email"


Figura 16: "Configuración del nodo de función"


Figura 17: "Configuración del nodo de email"

  • Figura 18: Flujo de muestreo de la base de datos. Tras una entrada del día seleccionado en el calendario del Dashboard o por defecto en el día actúa; se actualiza la tabla tomando lecturas de los CSV almacenados y mostrándolos de forma gráfica y en una tabla de datos dinámica. 

Figura 18: "Lectura y muestreo de la base de datos"

  • Figura 19: Aspecto de la tabla de datos en el Dashboard

Figura 19: "Muestreo del registro de datos"

Si desea ver el Dashboard completo, puede descargarse el archivo "Flow_CO2.json" e importarlo a su Node-RED. Después, solo tendrá que activarlo y configurarlo como se ha explicado en esta entrada. Se muestra en las Figuras 20 y 21 el proceso de importación y activación del flujo.


Figura 20: "Importar flujos"


Figura 21: "Selección de archivo a importar"

Finalmente, si desea utilizar el Dashboard, asegúrese de activarlo en las configuraciones de edición como se muestra en la Figura 22.

Figura 22: "Activación del Dashboard"

Última revisión 30/05/2021

Sistema de reconocimiento de forma, color y lectura de códigos QR por visión artificial

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 todos los programas de esta entrada.

Objetivo:

Mostrar los fragmentos de los que se compone una máquina de visión artificial casera compuesta por las siguientes partes:

  • Sistema de evaluación de forma y color por visión artificial
  • Sistema de transporte de la muestra por una cinta transportadora
  • Control por voz en español e inglés y cambio de idioma dinámico
  • Acceso por niveles de seguridad, reconocimiento facial y RFID
  • Diseño y montaje de una PCB dedicada "P4_Shield"

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Python3 (Enlace de descarga)
- Proteus 8 Professional 

Principio de funcionamiento:

Se muestra en la Figura 1 el esquema de funcionamiento de la máquina de reconocimiento de forma y color por visión artificial.


Figura 1: "Esquema de funcionamiento"

La figura que se acaba de mostrar representa una máquina de estados por la cual, el programa va pasando de forma controlada realizando la labor pertinente a ese estado. A continuación, se analizará y explicará cada uno de los estados.
  • En el estado INTRO comienza la presentación del programa por medio de una pantalla OLED y avisos de audio en función del argumento introducido a la hora de su ejecución. "en" para inglés y cualquier otro código para el español. En el caso de querer introducir más idiomas al programa, se podrá realizar gracias a la estructuración interna del programa y el código de idioma introducido en forma de argumento.
  • Una vez transcurrida la introducción, comenzará la identificación por radio frecuencia, en donde el reconocimiento de un transductor (13,56 MHz). Según el transductor acercado, se reconocerá si pertenece a la lista negra y se reiniciará el programa, si no está autorizado y tendrá que repetir la aproximación de otro transductor, si es un usuario y comenzará el reconocimiento facial para el acceso o, finalmente si es el administrador y se saltará la fase de reconocimiento facial.
  • En el ESTADO 1, una vez se ha realizado el reconocimiento, se pondrá la cinta en marcha hasta situarse en la posición de escucha en donde se podrán dar varias órdenes:

 En español:

- Enviar: envía la pieza a la posición de evaluación

- Salir: salida del programa

- Ingles: cambia el programa a inglés (audio y reconocimiento de voz incluido)

En ingles:

- Send: envía la pieza a la posición de evaluación

- Exit: salida del programa

- Spanish: cambia el programa a español (audio y reconocimiento de voz incluido)

  • Cuando la pieza es enviada a la zona de evaluación, una cámara IP (no se recomienda la usar IP Cam del smartphone) se encarga de detectar el movimiento de la pieza de evaluación, en el caso de no haber pieza, el sistema lo reconocerá y volverá la cinta a su posición inicial para la próxima orden.
  • Una vez el movimiento de la pieza de evaluación a sido detectado, se leerá en primer lugar si lo introducido es un código QR y, lanzará la página emergente en caso afirmativo y en segundo lugar, si no había un código QR, detectará forma y color anunciándolo a través de un mensaje de audio en el idioma seleccionado.
  • El proceso se repetirá indefinidamente hasta que se decida salir del programa.
Se muestra en la Figura 2, la maqueta fabricada para el montaje de este sistema.

Figura 2: "Maqueta de la máquina"

Se muestra en la Figura 3, otra vista del sistema abierto. Durante su funcionamiento se cierran las tapas y se introduce el smartphone para asegurarla y usarlo como IPCam.


Figura 3: "Maqueta de la máquina abierta"

En las Figuras 4 y 5 se muestra la cara Top y Botton respectivamente de la PCB diseñada para el funcionamiento del sistema. En ella se ubican las siguientes conexiones en menos de 11 x 7,5 cm:
  • Módulo de RFID
  • Display OLED
  • Raspberry Pi 4 B
  • ESP32
  • Driver TMC2130
  • Motor bipolar paso a paso
  • Conexión del ventilador
  • Módulo de relé
  • Fuente de alimentación
  • Terminal de alimentación del motor

Figura 4: "Cara Top de la PCB"


Figura 5: "Cara Botton de la PCB"

Ultima revisión 29/05/2021

Control de un servo por voz

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 todos los programas de esta entrada.

Objetivo:

Mostrar como poder controlar un servo por voz mediante una Raspberry Pi 4 y un ESP8266.

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Python3 (Enlace de descarga)

Programación del ESP8266:

El ESP8266 será quien controle el servomotor y atenderá a la suscripción del broker MQTT publicada desde la Raspberry Pi 4. Como se ha expuesto en entradas anteriores, el servomotor requiere de cierta calibración para responder con mejor precisión al ángulo introducido, y eso se aplicará en los siguientes programas mostrados.

El primer programa, "servo.ino" utiliza una ecuación lineal para su calibración, esta proviene de la siguiente tabla obtenida de la calibración mostrada en la Figura 1 (Línea amarilla - Aproximación).
Figura 1: "Ecuación de calibración"


Esta ecuación se transcribe en la programación de la forma mostrada en la Figura 2.


Figura 2: "Aplicación de la ecuación en el programa"


El segundo programa, "servo2.ino" utiliza una aproximación por partes, esta proviene de una sencilla agrupación en función de la desviación lineal obtenida. La Figura 1 (Línea azul - Aproximación2) muestra cómo se realiza el ajuste manual aproximándose a la curva característica del motor. Cabe destacar que cuanto más fina se haga, mejor será el reajuste y por lo tanto, más fiel será su salida respecto de la entrada introducida.

Para transcribir esta aproximación por partes, se hace una sentencia condicional para discretizar el ángulo introducido y aplicar un reajuste directo. Como se aprecia en la Figura 3, el reajuste seleccionado para los ángulos introducidos de 0 a 21º es de 7 grados, mientras que para los ángulos introducidos de 21 a 25º es de 5 grados.




Figura 3: "Aplicación de la aproximación 2 en el programa"


Adicionalmente, para el uso de cualquiera de los programas se deberán modificar las siguientes líneas de código mostradas en la Figura 4.


Figura 4: "Cambio de configuración para la conexión Wifi"

Programación de Python3:

El programa de Python3 se ubicará en una Raspberry Pi 4 donde se conectará el sensor de ultrasonidos a los pines:

TRIGGER    GPIO 25    PIN 22
ECHO          GPIO 7      PIN 26

El programa "Ultrasonidos2.py" es una función dedicada al programa principal "Control_Servo2.py" desde el cual, se le llama para realizar una medición y registrar el resultado.
La diferencia con "Ultrasonidos.py" y "Control_Servo.py" es que, en esta ocasión, ambos se ejecutan individualmente sin la necesidad de disponer de dos terminales abiertos.
La información viaja por el broker MQTT, puede ser capturada en un Dashboard de Node-RED, donde se puede ver la información de la medición y el ángulo introducido. (Se agregará próximamente).

Ultima revisión 30/05/2021



Calibración de un servo con IDE Arduino

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 todos los programas de esta entrada.

Objetivo:

Mostrar como calibrar un servo con IDE Arduino de forma sencilla para guiarlo al alguno deseado con la precisión deseada.

Programas utilizados:

- Arduino IDE 1.8.12 (Enlace de descarga)
- Microsoft Excel 2016 

Proceso calibración:

Paso 1: Programación del Microcontrolador

Para realizar la calibración, se recurre al empleo de la librería servo y, a un reajuste del valor de salida para obtener el ángulo deseado.

Cuando se le envía al servo una instrucción con "miservo.write(angulo);" si se mide la salida con transportador de ángulos, comprobará que no acude al ángulo exacto indicado y debe realizarse un ajuste.

El primer paso para el reajuste, es hacer un barrido de los ángulos y anotar a que posición acude el servo. Una vez anotado, se rellenará una tabla similar a la mostrada en la Figura 1.

Puede descargar la tabla y los programas AQUÍ


Figura 1: "Tabla de anotación de resultados" 

Para rellenar la tabla, en la columna INPUT se coloca el ángulo programado en el servo y en la OUTPUT el ángulo al que ha acudido. Una vez se dispone de una gran variedad de datos haciendo el barrido de 0 a 180º (cada 5º dependiendo de la precisión que desee) se elabora una gráfica de datos y se escoge la línea de tendencia más aproximada a su resultado. 

Tras aplicar la ecuación obtenida al ángulo entregado, se podrá ver la precisión con la que responderá el servo una vez se introduzca en el código.

En los archivos de descarga, está elaborada la tabla Mostrada en la Figura 2, donde se muestra la curva característica del servo MG995 con las dos aproximaciones realizadas (Lineal y por partes). 


Figura 2: "Curva característica del Servo MG995" 


La programación incluida en los archivos ".ino" corresponden a una futura entrada de este blog, "Control de servo por voz"; en donde se controlará un servo por medio de la voz utilizando una Raspberry Pi 4 usando este proceso para su calibración.

Última revisión 30/05/2021


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


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...