# Reactor Connections
# Introduction
The following repository aims to identify and document the connections of the photobioreactor instrumentation sensors for the growth of microalgae entitled as"*Modelo estadístico para la cinética de crecimiento de la microalga Chlorella vulgaris en fotobiorreactor evaluando las variables eléctricas y bioquimicas óptimas mediante el método de Taguchi*", Made by Dr. Jesús Alberto Coronado Reyes, which is located in the chemistry laboratory of the Technological Institute of Morelia.
# Instrumentation
The following table shows the sensors that were used for data collection from the photobioreactor
|Instrumentation|model|
|-|-|
|Termopar|CEIV|
|Electrodo para oxígeno disuelto|DFROBOT-SEN0237-A|
|Electrodo para pH|HANNA-HI2211|

# Análisis del diagrama de bloques de LabVIEW
A continuación se análisa el funcionamiento del diagrama de bloques en LabVIEW desarrollado para el control y monitoreo de un fotobiorreactor. La plataforma utilizada es una NI myRIO y los sensores conectados permiten la medición de ph, oxígeno disuelto, temperatura e intensidad de luz.

![](diagrama-bloques.png "diagrama de bloques")
## Arquitectura del sistema
||Entradas analógicas (Adquisición de señales)||
|-|-|-|
|**Sensor**|**Canal myRIO**|**Descripción interna**|
|Oxígeno disuelto|B/AI1 (Pin 5)|`Voltaje Sensor Oxígeno 2`|
|pH|B/AI2 (Pin 7)|`Voltaje Sensor pH 2`|
|Temperatura|B/AI3 (Pin 9)|`Voltaje Sensor temperatura`|

![](MXP-1.png "MXP-1")

![](Ports-myRIO-MXP.png "Ports-MXP")

## Convesión de sañales (Bloque de Fórmula)
Se usa un nodo de fórmula en LabVIEW para convertir los voltajes analógicos adquiridos desde los sensores en valores físicos útiles. Estas conversiones se realizan con base en las curvas de calibración propias de cada sensor. Estas curvas se obtienen a partir de mediciones empíricas realizadas durante el proceso de caracterización del sensor.
<br>A continuación, se describen las fórmulas utilizadas:
```plaintext
Y = (X * 2.7279) - 0.3655;      // Conversión de voltaje a pH
O = (165.75 * (S - 2.6819));    // Temperatura [°C]
Z = (124.96 * (V - 0.4816));    // O2 disuelto [mg/L]
T2 = (11376.7 * U) - 0.5538;    // Oxígeno disuelto en porcentaje
B = (A - 0.5538) / 1136.7;      // Alternativa de cálculo para % de O2
```
* `X`:Voltaje leído del sensor de pH.
* `S`:Voltaje del sensor de temperatura.
* `V`:Voltaje del sensor de oxígeno disuelto (mg/L).
* `U`:Voltaje del sensor de oxígeno para % O2.
* `A`:Otra señal de entrada relacionada con oxigeno.
Estas formulas buscan linealizar la respuesta del sensor y traducirla en una magnitud física. Los coeficientes dependen del modelo de sensor utilizado y de los datos de calibración obtenidos experimentalmente o del fabricante.

## Control PWM (Iluminación)
La iluminación dentro del fotobiorreactor es un parametro crítico, ya que influye directamente en el crecimiento de las microalgas al regular la cantidad de energía luminosa disponible para la fotosíntesis. En esta interfaz, se emplea una salida **PWM**(Modulación por ancho de pulso) de la tarjeta myRIO para controlar una fuente de luz artificial (LEDs).
|Canal myRIO|Descripción|
|-|-|
|Canal `DIO3`|Salida **PWM**|

![](MSP.png "MSP")

![](Ports-myRIO-MSP.png "Ports-MXP")

Variables utilizadas:
* **Duty Cycle(%)**:Controla el porcentaje de tiempo que la señal PWM está en estado alto. Un valor más alto indica mayor intensidad luminosa.
* **Frecuencia (Hz)**:Define la velocidad a la que la señal alterna entre encendido y apagado. Se debe ajustar para evitar oscilaciones visibles.

La interfaz permite modificar en tiempo real la variable `Ajustar Luxes (o a 11200)`, que representa una escala arbitraria (basada en calibración) para controlar la iluminaciíon interna del sistema. Esta variable alimenta directamente el bloque de PWM, modificando el duty cycle de la señal.

## Bloque I2C y lectura de intensidad de luz (Luxes)
Esté bloque permite realizar comunicación con un dispositivo esclavo mediante el protocolo I2C usando la NI myRIO. Por otra parte, la medición de la intensidad de luz se realiza mediante un sensor digital con comunicación I2C, el cual está conectado a la tarjeta myRIO por medio del canal `A/I2C`. 

|**Parámetros configurados:**||
|-|-|
|**Channel**|`A/I2C` Indica que se está usando el canal I2C del conector A.|
|**Slave Address**|`112`(dirección del dispositivo esclavo en formato decimal de 7 bits).|
|**Byte Count**|`1`(se está solicitando la lectura de un byte).|
|**Bytes Read**|Salida que entregará el valor leído del esclavo.|
|**Mode**|Está Marcado como `Read`, por lo tanto, el bloque solicitará datos desde el esclavo hacia la myRIO|
|**Velocidad**|Estándar I2C (100 kbps), adecuada para sensores comunes|

Este valor leído representa la intensidad de luz medida por el sensor. Posteriormente, este byte puede convertirse a luxes mediante una fórmula de calibración que depende del sensor utilizado.

**Conexiones físicas**
* **SDA (Serial Data):** Pin 34 del conector A.
* **SCL (Serial Clock):** Pin 32 del conector A. 

![](MXP.png "MXP")

![](Ports-I2C.PNG "Ports-MXP")

## Control de adquisición y temporización
Esta sección del sistema se encarga de gestionar cuándo y con qué frecuencia se deben tomar y registrar las lecturas de los sensores.
<br> **Variables Clave:**

* `Datos por segundo`: Determina la frecuencia de muestreo. Esta entrada controla la velocidad general de adquisición.
* `No. Muestras`: Define cuántas muestras se deben acumular por cada ciclo de lectura.

**Elemento Principal**: `Elapsed Time`
* Es un bloque de labVIEW que funciona como temporizador.
* Tiene una entrada de tiempo (en segundos) que representa el intervalo entre cada medición.
* Cuando ese tiempo transcurre, envía una señal lógica que habilita la ejecución del siguiente ciclo de adquisición.

**Lógica de adquisición**:
* Se compara la condición del temporizador con el número de muestras necesarias.
* Una compuerta AND determina cuándo ambos criterios se cumplen.
* Entonces se habilita la lectura de los sensores y el registro de los valores actuales en memoria o archivo.

Esto garantiza que las muestras se adquieran de forma periódica.

## Exportación y almacenamiento
Una vez que se adquieren y procesan los datos de los sensores, es necesario almacenarlos para análisis posteriores o para visualización externa.
<br>**Construcción de tabla (`Build Table`):**

* Cada conjunto de datos adquiridos (pH, temperatura, O2, luxes, tiempo, etc.) se agrupa como una fila en una tabla.
* Esta tabla se va actualizando continuamente durante la ejecución.
* Exportación mediante `Export Data to Excel`.
* Almacenamiento adicional en variable compartida `Variables de respuesta`.

# Estado actual del Fotobiorreactor
## Software en el que corre el programa de labVIEW actualmebte en el fotobiorrector

|LabVIEW|Version|
|-|-|
|LabVIEW 2019 myRIO Toolkit|19.0.1f5|

## Sensores utilizados

|instrumentos de medición|Modelo|
|-|-|
|Oxigeno disuelto|M021.00263|
|pH|Hanna instruments|HI1110 de 0 a 13 pH|
|termopar|J1M|

## Problemas de funcionamiento

### TERMOPAR J1M

Entre la tarjeta NI-myRIO y el sensor de temperatura (Termopar J1M), existe un circuito integrado (`LM324N`) el cual se encarga de amplificar el voltaje entregado por medido del termopar para poder ser medido mediante la tarjeta myRIO, este pequeño circuito integrado se encuentra quemado completamente y no permite la recolección de datos. Para solucionar esté problema se reemplazará el circuito integrado quemado por uno nuevo.

<br>La tarjeta se muestra en la siguiente imagen:

![](CATP.png "Circuito amplificador del termopar")

Diagrama del circuito diseñado para conexión de termopar:

![](DiagramaTERMOPAR.png "Circuito amplificador del termopar")

El termopar es alimentado por la fuente de alimentación a 24 voltios y desde este sensor se conectan en seire los demás sensores utilizados en el fotobiorreactor.

# Recomendaciones
## Control de iluminación
El control de iluminación que se está utilizando actualmente consta de controlar las luces led por medio de un control por radio frecuencia propio del fabricante (Steren), en donde se cambia el tipo de color de la luz led y algunas intensidades predeterminadas de luz, también se utiliza un tipo de timer independietne que se conecta directamente a la toma de luz, permitiendo determinar un valor de tiempo en el que se quiere que permancezca encendida la luz led.
<br>Todo esté sistema se pretende eliminar para poder controlarlo por medio de la interfaz de LabVIEW, para ello, se tienen que realizar los siguientes cambios:

* La tira led que se está utilizando actualmente es una tira led de la marca `Steren` modelo `GAD-LED2` a un voltaje de 5v, lo que supone un problema, ya que la alimentación con la que contamos en el gabinete es de 24v, por ello la solución es optar por otra tira led que se alimente a 24v y pueda controlarse mediante una señal de PWM, es decir que sea del tipo analogica, ya que existen tiras led "COB", las cuales son digitales y no pueden ser controladas mediante un PWM. La tira led que se recomienda para este uso la siguiente: [RGBCCT Tira LED 5050 12V / 24V](https://a.co/d/gdilPkj).

* Para poder controlar la tira led por medio de un PWM proporcionado por la tarjeta NI-myRIO, se tiene que implementar un circuiro de aisalmiento, que proteja a la myRIO del alto voltaje que se necestia para alimentar la tira led, el circuito ya se diseño y consta de un optoacoplador que recibe la señal del pwm, mientras que a su salida se conecta un MOSFET el cual se encarga de controlar la intenisdad luminica de la tira led, es necesario mencionar que el circuito que se diseño estaba pensado para controlar una tira led de un solo color, por lo que se tendrá que repetir el mismo circuito dos veces más para poder controlar los tres colores de los leds RGB.

El siguiente circuito que se muestra es el encargado de controlar la intensidad de la tira led por medio de un PWM el cual se suministra desde la tarjeta NI-myRIO, en el, se puede observar una terminal nombrada `INPUT` en la cual se conecta la señal de PWM, mientras que en la teminal `OUTPUT` se conecta la tira led, también se puede observar una terminal que corresponde a la alimentación de 24v para alimentar la tira led.

![](CPWM.png "Circuito PWM para el control de leds")

|Componentes|Descripción|
|-|-|
|Optoacoplador|4N35|
|MOSFET|IRF540|
|Resistencias| 470 ohms, 4700 ohms|

Es necesario mencionar que para poder controlar la tira de leds completa se necesitaran tres circuitos conectados en el siguiente arreglo.

![](ACPWM.png "Circuito PWM para el control de leds")

### Conexión con la tarjeta NI-myRIO

|led|Pin|Descripción|Bloque|
|-|-|-|-|
|Red|PIN27|DIO8/PWM0|B|
|Green|PIN29|DIO9/PWM1|B|
|Blue|PIN31|DIO10/PWM2|B|

