Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SCADA Arduino PDF
SCADA Arduino PDF
INDUSTRIALES Y DE TELECOMUNICACIN
UNIVERSIDAD DE CANTABRIA
INGENIERO INDUSTRIAL
Agradecimientos
ndice
CAPTULO 1. MOTIVACIN Y OBJETIVOS ....................................................... 1
1.
MOTIVACIN ....................................................................................................... 1
2.
OBJETIVOS ........................................................................................................... 1
SCADA ................................................................................................................... 3
1.
Introduccin ......................................................................................................... 3
2.
Historia ................................................................................................................ 4
3.
4.
5.
6.
2.
LABVIEW .............................................................................................................. 7
1.
Qu es LabVIEW? .............................................................................................. 7
2.
Programacin en LabVIEW................................................................................. 8
QU ES UN INVERNADERO? ......................................................................... 10
2.
HISTORIA ............................................................................................................ 10
INTRODUCCIN ................................................................................................ 12
2.
DAQ ................................................................................................................... 12
1.
Introduccin ................................................................................................................................................ 12
2.
2.
PLC .................................................................................................................... 14
1.
Introduccin ................................................................................................................................................ 14
2.
3.
ARDUINO .......................................................................................................... 15
1.
4.
3.
Introduccin ................................................................................................................................................ 15
1.
Introduccin ....................................................................................................... 20
II
2.
3.
4.
5.
2.
3.
6.
2.
3.
7.
2.
INTRODUCCIN ...................................................................................................... 42
2.
PROGRAMACIN EN ARDUINO................................................................................ 42
1.
Introduccin ....................................................................................................... 42
2.
3.
4.
5.
2.
3.
3.
PROGRAMACIN LABVIEW................................................................................... 77
1.
Introduccin ....................................................................................................... 77
2.
2.
3.
Thermistor Read.vi...................................................................................................................................... 82
4.
3.
VI Principal........................................................................................................ 85
1.
2.
3.
4.
5.
III
6.
INTRODUCCIN ...................................................................................................... 97
2.
PROGRAMACIN LABVIEW................................................................................... 97
1.
2.
3.
4.
2.
2.
3.
2.
3.
2.
IV
ndice de Figuras
VIII
ndice de tablas
IX
1. MOTIVACIN
El clima juega un papel relevante en muchos aspectos de nuestra vida, uno de los
ms importantes es la relacin directa entre el clima y nuestros cultivos.
2. OBJETIVOS
El objetivo de este proyecto ser el diseo e desarrollo de un sistema que nos permita
la adquisicin de datos y control tanto automatizado como manual, de las
1
Este objetivo global se puede dividir en diferentes objetivos parciales del proyecto de
fin de carrera, que son:
5. Visualizacin del muestreo de datos por medio de una interfaz de usuario con
grficos en tiempo real.
1. SCADA
1. Introduccin
Los sistemas SCADA (Supervisory Control And Data Adquisition) son aplicaciones
de software, diseadas con la finalidad de controlar y supervisar procesos
2. Historia
Los sistemas SCADA han evolucionado a travs de 3 generaciones de la siguiente
manera:
3. Capacidades de SCADA
Un software SCADA debe ser capaz de ofrecer al sistema:
Interfaz Hombre-Mquina: Una interfaz hombre-mquina o HMI (humanmachine interfaz) es el aparato que presenta los datos del proceso a un
operador humano, y a travs del cual el operador controla el proceso.
El HMI est generalmente ligado a la de base de datos del sistema SCADA y
al software del programa, para ofrecer tendencias, los datos de diagnstico y
gestin de la informacin, tales como esquemas detallados para un sensor en
particular o de la mquina en general.
Unidad Central: Una unidad central o MTU (master terminal unit) Ejecuta las
acciones de mando programadas en base a los valores actuales de las
variables medidas. Tambin se encarga del almacenamiento y procesado
ordenado de los datos.
FABRICANTE
Aimax
CUBE
FIX
Intellution
LabVIEW y Lookout
National Instruments
Monitor Pro
Schneider Electric
Scada InTouch
LOGITEK
SYSMAC SCS
Omron
ABB
Siemens
CIRNET
CIRCUTOR S.A.
FIXDMACS
Omron-Intellution
RS-VIEW32
Rockwell
GENESIS32
Iconics
2. LABVIEW
1.
Qu es LabVIEW?
2. Programacin en LabVIEW
El lenguaje de programacin usado en LabVIEW es conocido como G, donde G
simboliza que es lenguaje grfico. Esto significa que los programas no se escriben,
sino que se dibujan, facilitando de esta manera la comprensin de los mismos.
1. QU ES UN INVERNADERO?
Es un invernculo destinado a la produccin de cultivos, habitualmente est cubierto
exteriormente por medio de una cobertura translucida de vidrio o plstico, que
permite el control de la temperatura, la humedad y otros factores ambientales, con el
objetivo de favorecer el crecimiento de las plantas.
2. HISTORIA
La idea de cultivar plantas en reas ambientalmente controladas ha existido desde los
romanos. El emperador romano Tiberio se coma pepinos como su racin de verdura
diaria. Los jardineros romanos usaban mtodos artificiales (similar al sistema de
invernadero) para tenerlo disponible para su mesa todos los das del ao. Los pepinos
eran cultivados debajo de telas de selenita de acuerdo con las descripciones de Plinio
el viejo.
El botnico francs Charles Lucien Bonaparte fue quien concedi el dinero para
construir el primer invernadero moderno, en la ciudad de Leiden en Holanda, para el
cultivo de plantas medicinales tropicales.
Los franceses llamaron a sus primeros invernaderos orangeries, dado que los usaban
para proteger los naranjos de las heladas. Cuando las pias se hicieron populares
tambin aparecieron los primeros invernaderos dedicados a las pias, los cuales
10
Las estructuras de los invernaderos fueron adaptados en la dcada de los 60, cuando
se empezaron a cubrir con pelculas de polietileno. Los invernaderos de arco fueron
construidos por un amplio nmero de compaas, as como tambin por los
agricultores. Construidos con extrusiones de aluminio, tubos de acero galvanizado o
simplemente con tubos de acero o PVC para el agua. En la dcada de los 70, el
polietileno fue mejorados, aumentando su duracin as como aadindole filtros UV
mucho ms efectivos. En la dcada de los 80 y los 90 se hicieron populares los
invernaderos de canales conectados. Estos invernaderos tienen 2 o ms bahas
conectadas por una pared comn, o una fila de postes de soporte. Esto produjo que
tanto las entradas de calefaccin como la proporcin entre en suelo necesario y la
superficie techada se redujera considerablemente.
11
1. INTRODUCCIN
En este captulo y antes de empezar el diseo se ha realizado una bsqueda de los
componentes, tanto de adquisicin de datos y comunicacin con la computadora,
como de los sensores de temperatura, humedad del suelo y luminosidad, con el
objetivo de elegir correctamente los que mejor se adapten a nuestros requisitos
bsicos, que como se dijo en los captulos anteriores, van a ser criterios econmicos
y de facilidad de instalacin.
2. ADQUISICION DE DATOS Y COMUNICACIN
Lo primero que se estudi, fue la manera con la cual comunicaramos los sensores
con la computadora, para la adquisicin de los datos, as como la conexin entre la
computadora y los elementos tanto de iluminacin como de ventilacin y riego.
1.
DAQ
1. Introduccin
Las DAQ son por lo general las interfaces entre la seal y un PC. Podra ser en
forma de mdulos que pueden ser conectados a la computadora de los puertos
(paralelo, serie, USB, etc...) o ranuras de las tarjetas conectadas a (PCI, ISA) en la
placa madre. Por lo general, el espacio en la parte posterior de una tarjeta PCI es
demasiado pequeo para todas las conexiones necesarias, de modo que una ruptura
de caja externa es obligatoria. El cable entre este recuadro y el PC es cara debido a
los numerosos cables y el blindaje necesario y porque es extico. Las tarjetas DAQ a
menudo contienen mltiples componentes (multiplexores, ADC, DAC, TTL-IO,
temporizadores de alta velocidad, memoria RAM). Estos son accesibles a travs de
un bus por un micro controlador, que puede ejecutar pequeos programas. El
controlador es ms flexible que una unidad lgica dura cableada, pero ms barato
12
que una CPU de modo que es correcto para bloquear con simples bucles de
preguntas.
2. Mercado de las DAQ
Existe una gran variedad de fabricantes de DAQ. Para el proyecto que nos concierne
necesitbamos tarjetas de adquisicin de datos de bajo perfil y bajo coste. De la
variedad que ofrece el mercado, se podan destacar:
Figura 3 Labjack U
13
NI USB-6501. Precio 99
o 24 lneas de E/S digitales
o Un contador de 32 bits
o Proteccin de sobre voltaje
o 8.5mA de capacidad de corriente
o Terminales de tornillo integradas o conector genrico de 34 pines (versin
OEM) para fcil integracin.
o Interfaz de bus USB 2.0 de alta velocidad (12 Mb/s)
2. PLC
1. Introduccin
Los controladores lgicos programables o PLC (Programmable Logic Controller en
sus siglas en ingls) son dispositivos electrnicos muy usados en automatizacin
industrial.
Dentro de las funciones que un PLC puede cumplir se encuentran operaciones como
las de deteccin y de mando, en las que se elaboran y envan datos de accin a los
pre-accionadores y accionadores. Adems cumplen la importante funcin de
programacin, pudiendo introducir, crear y modificar las aplicaciones del programa.
2. Mercado de los PLC
Al igual que las DAQ, existe un amplio mercado de PLC. Entre los principales
fabricantes de PLC podemos encontrar ABB, Allen-Bradley, Omron, Rockwell,
SIEMENS, Telemecanica. El precio de los ms asequibles supera los 90.
3. ARDUINO
1. Introduccin
Arduino es una plataforma de hardware libre, basada en una placa con un
microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la
electrnica en proyectos multidisciplinares.
Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser
conectado a software del ordenador. Y al ser open-hardware, tanto su diseo como
15
Una vez decidido que se iba a utilizar Arduino para la realizacin de este proyecto,
pasamos a elegir la placa que ms se adapte a nuestras necesidades.
Arduino Mega
ATmega1280
o Voltaje de funcionamiento
5V
7-12V
6-20V
16
40 mA
50 mA
o Memoria Flash
arranque(bootloader)
16
o SRAM
8 KB
o EEPROM
4 KB
o Velocidad de reloj
16 MHz
El Arduino Mega (ver Figura 5) puede ser alimentado va la conexin USB o con
una fuente de alimentacin externa. El origen de la alimentacin se selecciona
automticamente.
17
Arduino UNO.
ATmega368
o Voltaje de funcionamiento
5V
7-12V
6-20V
40 mA
50 mA
o Memoria Flash
gestor de arranque(bootloader)
18
o SRAM
2 KB
o EEPROM
1 KB
o Velocidad de reloj
16MHz
El Arduino UNO (ver Figura 6) puede ser alimentado va la conexin USB o con una
fuente de alimentacin externa. El origen de la alimentacin se selecciona
automticamente.
19
La
fuente
de
voltaje
estabilizado
usado
para
alimentar
el
Para este proyecto, la placa elegida es la Arduino UNO en su versin rev3 que es la
ltima. Esto se puede justificar debido a que las prestaciones de la Arduino UNO son
suficientes para nuestro proyecto y debido a su menor coste, ser la seleccionada. En
proyectos de mayor entidad y con mayor nmero de sensores, se podr utilizar la
Arduino Mega.
3. SENSORES
En este apartado se van a exponer diferentes tipos de transductores que se utilizan en
los instrumentos de medida y se hace especial mencin en los tipos de dispositivos
que son objeto en este proyecto, temperatura, luminosidad, y humedad del suelo.
1.
Introduccin
etc.,
y se encarga de
21
Figura 7 Fotodiodo
22
Figura 8 Fotorresistencia
Su coste no las hace ptimas para la deteccin de luz, por lo que suelen
usarse nicamente como generadores elctricos.
23
3. Sensores de temperatura
Un sensor de temperatura es un dispositivo capaz de transformar la variacin de
temperatura en una seal elctrica capaz de ser leda por una computadora. Existen
distintos tipos de sensores de temperatura. A continuacin van a ser expuestas las
principales caractersticas de cada tipo.
24
Las caractersticas que deben tener los metales son un alto coeficiente de
resistencia y alta resistividad para que tenga mayor sensibilidad y que haya
una relacin lineal entre la resistencia y la temperatura (ver Figura 10). La
mxima calidad de los RTD la dan los detectores de platino ya que permiten
realizar medidas ms exactas y estables hasta una temperatura de
aproximadamente 500 C. Los RTD ms econmicos utilizan el nquel o
aleaciones de nquel pero stos no son tan estables ni lineales como los que
emplean platino.
Sus principales ventajas son su elevada linealidad, elevada precisin, buena
estabilidad a larga plazo (0.02% despus de 1000h), son elementos pasivos,
tiempos de respuesta pequeos, tienen elevados margen de temperatura. Por
el contrario sus principales puntos negativos son su elevado coste, su poca
robustez, sensible autocalentamiento y sensibilidad menor que los
termistores.
Las principales ventajas son que presentan una mayor sensibilidad, inferior
tiempo de respuesta, dispositivos de dimensin muy reducidas, as como un
precio ms econmico que los RTD. Como principal desventaja es que su
falta de linealidad (Ver Figura 11).
4. Sensores de humedad del suelo
Existen tres tipos de tecnologa para medir la humedad del suelo: sensores de
dominio de frecuencia (son de capacitancia o sensor de impedancia elctrica),
medidor de humedad de neutrones y sensores que miden la resistencia del suelo. A
continuacin se van a exponer las principales caractersticas de cada tipo.
26
27
1. Sensor de luminosidad
Una vez vistas las distintas alternativas (fotodiodo, fotorresistencia, fototransistor y
clula fotoelctrica) vamos a pasar a seleccionar el ms adecuado para nuestra
instalacin.
En nuestro caso, su aplicacin va ser la deteccin de noche y da. Para ello, segn lo
anteriormente visto, el mtodo ms adecuado es la fotorresistencia, debido a su bajo
coste y su sencillez.
tambin unas ventajas, como mdulos de bajo coste y alta sencillez, especialmente
diseado para arduino.
0.45
0.72
2.45
3.62.
29
Debido a que existe una baja oferta de sensores de humedad en suelo, y que la
mayora de esta oferta consta de su propio medidor, y no cuentan con salida para
medicin externa, se ha elegido el Mdulo Sensor Humedad del Suelo Conectar y
Listo, que debido a su bajo coste (7.25) y su facilidad de instalacin (forma parte de
la gama conectar y listo para arduino), es un sensor adecuado a este proyecto.
30
31
Artculos
Condiciones
Mnimo
Tipo
Mximo
Unidad
30
Corriente de suministro
0.5
mA
Caractersticas fotorresistor
Resistencia a la luz
10Lux
20
KW
Resistencia oscuro
0Lux
KW
0.6
Creciente
20
Que cae
30
540
Nm
La temperatura ambiente
-30
70
10010
Tiempo de respuesta
32
33
34
Min
Tpico
Max
Unidad
Dimensiones
2.0 x 2.0
Voltaje
3.3
30
Voltios
Corriente
0.5
mA
Cm
Modelo
Zero power
Tolerancia
Mxima
Disipacin
Constante
resistance
de la
potencia
trmica
trmica en
resistencia
TTC3A103_34D
tiempo
R25C(K)
+/-%
mW
mW/C
sec
10
150
>2.5
<18
35
Min
Tpico
Max
Unidad
Dimensiones
2.0 x 6.0
Voltaje
3.3
Voltios
Corriente
.5
mA
Cm
A continuacin se mostraran tanto es esquema (ver Figura 19) como sus dimensiones
mecnicas detalladas (ver Figura 20)
36
37
7. Elementos adicionales
Adems de los sensores, es necesario la utilizacin de otros componentes para el
control y la adquisicin de datos.
Para el control se van a utilizar 4 rels, mientras que para el control automatizado de
la iluminacin ser necesaria la utilizacin de un reloj, as como ser necesaria la
utilizacin del Arduino Shield conectar y listo (Ver Figura 21).
38
10A 24 VDC
El reloj de tiempo real cuenta segundos, minutos, horas, fecha del mes, mes,
da de la semana y ao con la compensacin del ao bisiesto vlido hasta
2100
interfaz serire
5V de alimentacin en CC
Mnimo
Tamao de la placa
2.0cm *4.0cm
Estructura IO
SCL,SDA,VCC,GND
ROHS
Si
Tabla 6 Especificaciones fsicas Modulo Reloj tiempo real DS1307 conectar y listo
40
Artculos
Condiciones
Min
Norma
Max
Unidad
VCC
4.5
5.0
5.5
Entrada
2.2
VCC+0.3
-0.3
+0.8
2.0
3.0
3.5
Corriente
(OSC ON);
300
500
nA
de la batera
SQW/OUT
480
800
nA
10
100
nA
Lgica 1
Entrada
Lgica 0
Tensin de
la batera
OFF
(OSC ON);
SQW/OUT
ON
(32kHz)
Corriente de
retencin de
datos
Tabla 7 Especificaciones electrnicas Modulo Reloj tiempo real DS1307 conectar y listo
41
1. Introduccin
En este captulo se desarrolla el software del proyecto. Se divide en dos partes:
Programacin en Arduino
Introduccin
43
Seleccionamos
el
botn
actualizar
controlador
continuacin
44
45
Una vez instalados los drivers podemos observar que ya no aparece como
dispositivo desconocido, sino que se le ha asignado un puerto COM, como se
puede observar en la Figura 29.
46
3. Entorno de programacin
El entorno de programacin Arduino 1.0 (ver Figura 30), es un entorno de
programacin en C.
47
Cuadro donde se
nos indica los errores y el estado de la memoria.
4. Lenguaje de programacin
Como se coment anteriormente, el lenguaje de programacin es Arduino, est
basado en C con funcionalidades de C++.
A continuacin vamos a mostrar una tabla con los comandos de estructura utilizados
en Arduino:
Estructura
o setup() (inicializacin)
o loop() (bucle)
Estructuras de control
o if (comparador si-entonces)
o if...else (comparador si...sino)
o for (bucle con contador)
o switch case (comparador mltiple)
o while (bucle por comparacin booleana)
o do... while (bucle por comparacin booleana)
o break (salida de bloque de cdigo)
o continue (continuacin en bloque de cdigo)
o return (devuelve valor a programa)
Sintaxis
o ; (punto y coma)
49
o {} (llaves)
o // (comentarios en una lnea)
o /* */ (comentarios en mltiples lneas)
Operadores Aritmticos
o = (asignacin)
o + (suma)
o - (resta)
o (multiplicacin)
o / (divisin)
o % (resto)
Operadores Comparativos
o == (igual a)
o != (distinto de)
o < (menor que)
o > (mayor que)
o <= (menor o igual que)
o >= (mayor o igual que)
Operadores Booleanos
o && (y)
o || (o)
o ! (negacin)
Operadores de Composicin
o ++ (incrementa)
o -- (decrementa)
o += (composicin suma)
50
o -= (composicin resta)
o *= (composicin multiplicacin)
o /= (composicin divisin)
Constantes
o HIGH | LOW (Alto y bajo en entradas y salidas digitales)
o INPUT | OUTPUT (Entrada y salida en pin digital)
o true | false (Verdadero falso)
Tipos de Datos
o boolean (booleano)
o char (carcter)
o byte
o int (entero)
o unsigned int (entero sin signo)
o long (entero 32b)
o unsigned long (entero 32b sin signo)
o float (en coma flotante)
o double (en coma flotante de 32b)
o string (cadena de caracteres)
o array (cadena)
o void (vaco)
E/S Digitales
o pinMode() (definimos el modo de ese pin como entrada o salida)
o digitalWrite() (Escribe en un pin digital el estado alto o bajo)
51
E/S Analgicas
o analogRead() (Escribe en un pin analgico)
o analogWrite() (Le el valor de un pin analgico)
Tiempo
o millis()
o micros()
o delay()
o delayMicroseconds()
Matemticas
o min() (mnimo)
o max() (mximo)
o abs() (valor absoluto)
o constrain() (limita)
o map() (cambia valor de rango)
o pow() (eleva a un nmero)
o sq() (eleva al cuadrado)
o sqrt() (raz cuadrada)
Trigonometra
o sin() (seno)
o cos() (coseno)
o tan() (tangente)
Nmeros Aleatorios
52
o randomSeed()
o random()
Comunicacin
o Serial
La pestaa LVIFA_Base (Ver Figura 31), es una pestaa preparada para introducir
el programa que interacte con LabVIEW, como en este proyecto sucede.
Se divide en 3 bloques. Un primer bloque donde se definen los includes, las variables
globales y en caso de hacer falta, algn programa corto para realizar alguna
operacin.
54
55
56
57
Para modificar esta pestaa hay dos opciones. Definir una nueva funcin en la
librera LabVIEWInterface.h y programarla es la pestaa LabVIEWInterface, o
aadir un case nuevo dentro de la funcin processCommand (Ver Figura 36).
58
59
60
Calculamos
el
62
Mdulo sensor Humedad del suelo conectar y listo (ver Figura 39):
63
64
(Inter-Integrated Circuit) y su
Vamos a dividir el cdigo en tres bloques. El primero (ver Figure X), ser
desde el inicio hasta el void setup().
minute = XX;
=
XX;
hour = XX;
month
XX;
dayOfWeek = X;
year
XX;
Por ultimo vamos a estudiar la ltima parte del cdigo asociado al reloj
DS1307 (ver Figura 42, el asociado al void loop().
&minute,
&hour,
&dayOfWeek,
Tambin ser necesario adaptar el cdigo para apagar los rels cada vez que se
cambie el interruptor de posicin, para evitar que se queden encendidos tras el
cambio de modo.
En primer lugar se expone la definicin de las libreras necesarias para este programa
(ver Figura 43) as como la definicin de las variables globales necesarias en esta
pestaa y la definicin de la direccin del reloj en el puerto
68
Como se puede observar (ver Figura 44), adems de las variables anteriormente
vistas, se encuentra la definicin de la variable Boton, EstadoBoton y
UltimoEstadoBoton que posteriormente veremos su utilizacin en la definicin del
interruptor y el programa necesario para el apagado de los rels en el cambio de
posicin del interruptor.
Tambin
se
han
aadido
las
variables
minHourValue,
maxHourValue,
Por medio de las funciones const int, establecemos los valores mnimos y mximos
para el encendido de los rels asociados a riego, luz, ventilacin y calefaccin.
Modificando esos valores se modificaran los valores lmites para el encendido y
apagado automtico de los rels.
69
Despus de las funciones para DS1307 se ubica el void setup() (ver Figura 46). Se
puede observar que se ha sustituido el comando Serial.begin(115200) por la llamada
a la funcin syncLV() que se encuentra en la librera LabVIEWInterface.h y se
desarrolla en pestaa LabVIEWInterface (ver Figura X).
70
Por ltimo se coloca la funcin void loop(). Esta parte del cdigo es la que ms vara
con respecto a la programacin individual de cada componente. Hay que adaptar,
primero el cdigo de cada componente al cdigo LVIFA_Base. Adems aqu se
programa el interruptor para la seleccin entre funcionamiento automtico (sin
conexin a pc) y manual (conexin a pc). Y tambin se implementa el cdigo
necesario para el apagado de los rels tras cada cambio de posicin del interruptor
para la seleccin de funcionamiento.
71
Y por ltimo dentro de esta primera parte del bloque void loop() se encuentra el
cdigo necesario para el apagado de los rels para el cambio de posicin en el
72
La segunda parte del void loop() es el cdigo void loop() del mdulo DS1307 (ver
Figura 51) sin ninguna variacin con respecto a lo visto anteriormente.
La tercera parte del void loop() la conforma el cdigo referente a los sensores,
activacin de rels, y la impresin en la salida serie de los datos obtenidos por los
mismo.
73
74
Para finalizar el void loop() y dar por terminada la pestaa LVIFA_Base se expone
la funcin para el estado de la variable boton LOW, correspondiente al
funcionamiento manual (ver Figura 52). Esta ltima parte comienza con la
asignacin a la variable EstadoBoton del valor 1, y continua con la funcin de
apagado automtico de los rels para el cambio de posicin del interruptor.
Tras la funcin de apagado automtico de rels, se ubica la ltima parta del cdigo
LVIFA_Base original, en la cual se llama a la funcin sampleContinously() (ver
Figura 53) correspondiente a la librera LabVIEWInterface.h y desarrollado en la
pestaa LabVIEWInterface, la cual se encarga del muestreo continuo y
comunicacin con arduino.
75
Por ltimo, se muestra una Figura de la salida que se obtiene en el serial monitor en
caso de conectar Arduino al ordenador.
3. Programacin LabVIEW
1.
Introduccin
anteriores. Esta toolkit nos proporciona una serie de subVI especialmente diseadas
para la placa arduino, de forma que solo tengamos que indicarle una serie de
variables para su conexin.
Board Tipe (Uno): Indicamos el tipo de placa que estamos conectando. Viene
predeterminado para la placa Uno, de forma que en caso de no introducir
ninguna otra placa, actuara como si la placa conectada sea Arduino UNO.
Nosotros utilizamos la placa Arduino UNO.
Una vez conocemos los subVI utilizados para iniciar y terminar la comunicacin con
LabVIEW, necesitamos otra serie de subVI para la obtencin de los datos que nos
79
proporcionan los sensores y otros para la comunicacin con los pines digitales que
hayamos definido como de salida en arduino.
En nuestro proyecto vamos a utilizar los subVI de lectura Digital Write Pin (ver
Figura 57 y 58), Analog Read Pin (ver Figura 59 y 60), Thermistor Read (ver
Figuras 61 y 62) y Photocell Read (Ver Figura 63 y 64).
Este subVI (ver Figura 57) lo que hace es escribir los pines digitales de salida con el
valor HIGH o LOW. Cuenta con 4 entradas y 2 salidas (ver Figura 58) que vemos a
continuacin:
Digital I/O Pin (0): Numero de pin digital en el cual se desea escribir. Viene
con el valor default 0.
Value (0): El valor que se desea escribir. Puede ser 0 (LOW) o 1 (HIGH).
Viene por defecto con el valor 0.
80
Este subVI (ver Figura 59) lo que hace es leer el voltaje recibido en los pines
analgicos de la placa arduino. Cuenta con 3 entradas y 3 salidas (ver Figura 60) que
vemos a continuacin:
Analog Input Pin (0): Numero de pin analgico del cual se desea obtener el
valor. Viene con el valor default 0.
3. Thermistor Read.vi
Este subVI (ver Figura 61) est especialmente diseado para la medicin de la
temperatura por medio un termistor. Como se puede observar, est formado por un
subVI Analog Read.vi y luego una serie de operaciones matemticas que nos
convierte el valor del voltaje de ese pin analgico en el valor de la temperatura
medida. Este subVI cuenta con 6 entradas donde definiremos las condiciones del
termistor, y 3 salidas en las que obtendremos los datos (ver Figura 62), que vemos a
continuacin:
82
83
4. Photocell Read.vi
Este subVI (ver Figura 63) est especialmente diseado para la medicin de la
luminosidad por medio una fotorresistencia. Como se puede observar, est formado
por un subVI Analog Read.vi y luego una serie de operaciones matemticas que nos
convierte el valor del voltaje de ese pin analgico en el valor de la luminosidad. Este
subVI cuenta con 4 entradas donde definiremos las condiciones de la
fotorresistencia, y 3 salidas en las que obtendremos los datos (ver Figura 64), que
vemos a continuacin:
Photo Cell Pin (0): Numero de pin analgico en el cual est conectada la
fotorresistencia.
84
3. VI Principal
En la siguiente figura 65 podemos ver el panel frontal que se ha diseado para este
proyecto que nos permite visualizar las medidas una vez conectada la placa arduino.
Si observamos la imagen del panel frontal del programa encontramos 4 partes
diferenciadas. Una destinada a salida de datos Excel, otra a luminosidad, otra
destinada a la humedad del suelo y una ltima parte destinada a la temperatura.
85
luminosidad, un control numrico para el valor mnimo de luz, dos controles de hora
para establecer la hora mnima y mxima de encendido, dos interruptores (uno para
la seleccin de funcionamiento entre manual y automtico y otro dentro del
funcionamiento manual para la activacin del rel asociado a la luz) as como un led
que nos indica el funcionamiento de la luz, una alarma que nos indica si el valor de
la luminosidad es menor que el designado o predeterminado, dos graficas las cuales
muestran la evolucin temporal de la luminosidad y por ultimo un botn de STOP
para realizar la parada del programa.
La primera de las grficas nos muestra la informacin referente a los ltimos 100
segundos, mientras que la segunda de las grficas muestra la evolucin de la
luminosidad durante toda la ejecucin del programa.
87
El panel frontal (ver Figura 71) cuenta con un indicador numrico de la humedad
del suelo, un control numrico para el valor mnimo de luz, dos interruptores (uno
para la seleccin de funcionamiento entre manual y automtico y otro dentro del
funcionamiento manual para la activacin del rel asociado al riego) as como un led
que nos indica el funcionamiento del riego, una alarma que nos indica si el valor de
la humedad del suelo es menor que el designado o predeterminado, dos graficas las
cuales muestran la evolucin temporal de la humedad del suelo y por ultimo un
botn de STOP para realizar la parada del programa.
89
La primera de las grficas nos muestra la informacin referente a los ltimos 100
segundos, mientras que la segunda de las grficas muestra la evolucin de la
humedad del suelo durante toda la ejecucin del programa.
El diagrama de bloques correspondiente a la humedad del suelo (ver Figura 72), se
encuentra englobado dentro del primer frame del flat secuence.
Por ltimo se encuentra el modulo Digital Write.vi el cual est asociado al pin digital
2, y en cuya entrada se encuentra una puerta AND, con una entrada correspondiente
a la salida del case structure y otra entrada correspondiente al botn STOP, de forma
que cuando se active el botn, se apague el rel automticamente.
El panel frontal (ver Figura 74) cuenta con un indicador numrico de la humedad
del suelo, dos controles numricos para el valor mnimo y mximo de la temperatura,
tres interruptores (uno para la seleccin de funcionamiento entre manual y
automtico y dos dentro del funcionamiento manual para la activacin de los rels
asociado a los ventiladores y la calefaccin) as como un dos led que nos indican el
funcionamiento de los ventiladores y calefaccin, dos alarmas que nos indican si el
valor de la temperatura es menor o mayor que el designado o predeterminado, dos
graficas las cuales muestran la evolucin temporal de la temperatura y por ultimo un
botn de STOP para realizar la parada del programa.
91
La primera de las grficas nos muestra la informacin referente a los ltimos 100
segundos, mientras que la segunda de las grficas muestra la evolucin de la
temperatura durante toda la ejecucin del programa.
El diagrama de bloques correspondiente a la temperatura (ver Figura 75), se
encuentra englobado dentro del primer frame del flat secuence.
92
En este diagrama de bloques se puede observar que comienza con la lectura del
Thermistor Read.vi, situada en el pin analgico 1. La salida de los datos procedente
del subVI Thermistor Read se conecta al grafico Temperatura, al indicador numrico
del mismo nombre, a la configuracin del XY Graph2, y a los dos case structure
destinados a ventiladores y calefaccin respectivamente.
El case structure destinado a los ventiladores tiene dos posiciones controladas por el
interruptor Manual/Auto. La posicin 0 o default correspondiente a la posicin
manual, y la posicin 1 corresponde a la posicin Automtica (ver Figura 76). El
93
case structure cuenta a su vez con dos salidas. Una correspondiente a la alarma y otra
correspondiente al control del rel asociado a los ventiladores.
94
Por ltimo se encuentran los mdulos Digital Write.vi los cuales estn asociados al
pin digital 4 para el caso de los ventiladores y 9 para el caso de la calefaccin, y en
cuyas entradas se encuentra una puerta AND, con una entrada correspondiente a la
salida del case structure y otra entrada correspondiente al botn STOP, de forma que
cuando se active el botn, se apague el rel automticamente.
95
96
1. Introduccin
En este captulo se describe el proceso de una funcin tpica en LabVIEW como
sera la exportacin de datos generados en LabVIEW directamente a Microsoft
Excel.
2. Programacin LabVIEW
La programacin necesaria para la exportacin de datos desde LabVIEW a Microsoft
Excel sigue una serie de pasos que sern los siguientes:
1.
En este punto se expone como abrir el programa Microsoft Excel desde LabVIEW.
Para ello ser necesario la utilizacin del subVI Open Excel and Make Visible.vi
(ver Figura 80). Este subVI lo que hace es llamar a una aplicacin externa (Microsoft
Excel) y abrirla.
97
Esta subVI lo que hace es, una vez abierta la aplicacin Microsoft Excel, nos crea un
nuevo WorkBook en el cual vamos a trabajar. Para ello sigue una serie de pasos que
son:
Una vez tiene la referencia del libro (refnum), crea un nuevo libro.
98
La subVI necesaria en este caso es Open New WorkSheet.vi (ver Figura 82). Esta
subVI sigue unos pasos que se exponen a continuacin:
99
100
Una se tiene localizada la celda donde se va introducir los valores, solo queda
introducir los mismo. Se va a comenzar con la introduccin de los encabezados y
posteriormente se explicara cmo se introducen los valores de forma ordenada.
1. Introduccin de encabezados
La introduccin de encabezados se va a realizar en dos pasos diferenciados. El
primero de ellos se encargara de introducir los primeros encabezados acto seguido de
abrir la hoja de clculo, y el segundo lo har cada vez que alcancemos el nmero
mximo de filas definido (en nuestro caso ser 7201 correspondientes a 2 horas de
muestro).
101
Para introducir los primeros encabezados (ver Figura 85) se ejecuta el subVI Set
Cell Value.vi para cada una de las primeras cuatro columnas, con el string asociado
a cada celda. Esto se realiza fuera del While loop, al iniciar el programa y solo se
ejecuta una vez quedando de la siguiente forma la hoja de clculo de Microsoft
Excel:
102
103
2. Introduccin de valores
Una vez hemos introducido los encabezados, pasamos a la introduccin de los datos.
Esto se realizara en el segundo Frame del Flat Secuence. Se realizara por medio de
Set Cell Value. La posicin se define por medio de los contadores de filas y
columnas anteriormente vistos. Los datos se introducen en forma de string por medio
del Number To Decimal String, al cual alimentamos con los valores salidos de los
sensores.
La nica excepcin ser el tiempo que se alimenta por medio del mdulo Format
Date/Time String que nos da la fecha y hora en formato string.
104
1. Introduccin
En este punto se va tratar la construccin fsica del sistema para el control y
monitorizacin de un invernadero domstico. Se expone por medio de imgenes la
propuesta realizada en este proyecto.
2. Elementos utilizados
En la ejecucin fsica de nuestro proyecto se han utilizado una serie de elementos
adems de los componentes anteriormente visto. En la tabla siguiente se muestra la
lista de elementos adicionales utilizados:
Elemento
Cantidad
Portafusible
Fusible 2A
Fusible 3A
Interruptor
Conmutador
Regleta
160*100 mm
Caja empalmes redonda 70x36 mm
Resistencia 100
3. Imgenes y esquemas
En este punto se muestran una serie de imgenes correspondientes a la instalacin
realizada, as como el esquema elctrico de la conexin.
106
107
108
109
110
CAPTULO 8. Presupuesto
Componente
Cantidad
Precio
unitario()
total
()
Ordenador
LabVIEW 2011 -
532.54
628.40
628.40
Gratuito
Gratuito
21.90
25.84
25.84
15.75
18.59
18.59
6.95
8.20
16.40
4.35
5.13
20.52
9.25
10.92
10.92
4.25
5.02
5.02
licencia campus
Arduino 1.0
Arduino
UNO 1
con ATMega328
Arduino
Shield 1
Conectar y Listo
Cables
4 2
Conductores
Shield Conectar
y Listo Verde
50cm. 5 ud
Mdulo Rel 5V 4
Conectar y Listo
Mdulo
RTC 1
Reloj
Tiempo
Real
DS1307
Conectar y Listo
Mdulo
Sensor 1
de Luz Conectar
y
Listo
Analgico
111
Mdulo
Sensor 1
4.25
5.02
5.02
7.25
8.56
8.56
de Temperatura
Conectar y Listo
Analgico
Mdulo
Sensor 1
Humedad
del
Suelo Conectar y
Listo
Pila CR1225
2.08
2.45
2.45
Portafusibles
0.36
0.43
0.86
Fusible 3A
0.17
0.2
0.2
Fusible 2
0.17
0.2
0.2
Interruptor
0.53
0.63
0.63
Conmutador
0.70
0.83
0.83
Regleta
0.45
0.53
0.53
2.14
2.53
2.53
4.40
5.20
5.20
0.68
0.8
0.8
2.08
2.45
2.45
LED 1
0.13
0.15
0.15
0.17
0.2
0.2
Cable
rojo
y 5m
negro
Caja
empalmes 1
superficie
estanca
Caja
empalmes 1
redonda
70x36
mm
Cable USB 2.0 1
terminales A y B
1.8m
Diodo
verde
Resistencia
100
Precio Total
640.91
756.30
112
2. Tiempo de Ingeniera
PROYECTO
HORAS EMPLEADAS
FASE
ACTIVIDAD
Estudio mercado
38
Eleccin
20
Seleccin dispositivos
Total horas Fase I
Programacin
58
en Funciones individuales
35
Programacin completa
18
Arduino
Total horas Fase II
Programacin LabVIEW
53
Funciones necesarias
26
Programacin
82
108
17
Construccin
10
Construccin fsica
Total horas Fase IV
Informe final
27
Redaccin
75
75
HORAS TOTALES
321
Tabla 10 Presupuesto Ingeniera
11556
113
3. Coste total
Coste
Hardware y software
756.30
Ingeniera
11556
TOTAL
12312.30
Tabla 11 Coste total
El coste total del proyecto, costes indirectos no incluidos, asciende a la cantidad de:
114
CAPTULO 9. Conclusiones
1. Conclusiones
Los sensores y la placa que se han utilizado han sido seleccionados siguiendo los
siguientes criterios: disponibilidad del producto, coste y comportamiento.
Mdulo Sensor
Humedad del Suelo Conectar y Listo, que es del tipo medida de resistencia
del suelo.
siguientes conclusiones:
Almacenamiento de datos sin conexin a pc, por medio del shield arduino
SD.
116
[ 1 ].
[ 2 ].
[ 3 ].
De Silva, Clarence W.
Sensors and actuators : control systems instrumentation
[ 4 ].
http://en.wikipedia.org/wiki/Resistance_temperature_detector
[ 5 ].
http://en.wikipedia.org/wiki/Thermistor
[ 6 ].
http://en.wikipedia.org/wiki/Photoresistor
[ 7 ].
http://arduino.cc/en/Reference/HomePage
[ 8 ].
https://decibel.ni.com/content/groups/labview-interface-for-arduino
[ 9 ].
http://zone.ni.com/reference/en-XX/help/371361H-01/
[ 10 ].
http://www.ni.com/pdf/manuals/320999e.pdf
117