Mostramos los dispositivos, herramientas, hardware y software necesarios para realizar una aplicación que capture la temperatura de una sala y la muestre en pantalla mediante VB.Net. Este proyecto puede ser muy útil para empresas que necesiten realizar estudios de cambio de temperaturas. Una vez obtenida la temperatura, con VB.Net se puede desarrollar cualquier aplicación para enviar avisos en caso de que la temperatura llegue a un mínimo o a un máximo. Con estos avisos se puede programar cualquier tipo de sistema domótico: abrir/cerrar ventanas, encender/apagar aparatos de aire acondicionado y calefacción, etc.
- Introducción.
- Herramientas y material necesario para adquirir temperatura.
- Preparar sensor de temperatura, conectar a PC.
- Desarrollo de software en Visual Basic .Net para adquirir la temperatura.
Introducción
Os explicamos paso a paso los aparatos, herramientas, hardware y software necesario para realizar una aplicación que capture la temperatura de una sala y la guarde en una base de datos para su posterior consulta. Este proyecto puede ser muy útil para empresas que necesiten realizar estudios de temperaturas. La aplicación también puede enviar avisos en caso de que la temperatura llegue a un mínimo o a un máximo. Con estos avisos se puede programar cualquier tipo de sistema domótico: abrir/cerrar ventanas, encender/apagar aparatos de aire acondicionado y calefacción, etc.
Recomendamos que consultéis estos otros tutoriales sobre Arduino, pues es un sistema mucho más flexible y el uso de sensores de casi cualquier tipo está soportado:
- Obtener temperatura y humedad con Arduino.
- Obtener temperatura con sensor SEN118A2B de cabeza de acero y Arduino.
Herramientas y material necesario para adquirir temperatura
En primer lugar os mostramos los elementos físicos utilizados para realizar este proyecto:
- Tarjeta de adquisición de datos: NI USB-6008 8 Inputs, 12-bit, 10 kS/s Multifuction I/O (National Instruments). Precio aproximado: 160,00 euros. La compramos sin problemas a través de Internet, desde la web www.ni.com, nos atendieron estupendamente y tardó en llegarnos unos 8 días.
- Sensor de temperatura: LM35DZ. Precio aproximado: 2,15 euros. Se puede adquirir en cualquier tienda de electrónica.
- Resistencia: 1k2 Ohmios. En nuestro caso lo sacamos de un ratón de ordenador antiguo. También se puede adquirir en cualquier tienda de electrónica.
- Cable: obtenido de cualquier dispositivo que los lleve, o utilizando algún pedazo de cable que tengamos cortado de otros usos.
Las herramientas empleadas para realizar este proyecto fueron: un destornillador plano pequeño, unas tijeras, unas pinzas, un clip (aplanado por un extremo), un ratón Genius antiguo (de bola) y un mechero:
Preparar sensor de temperatura, conectar a PC
Para la parte lógica (software) hemos desarrollado una aplicación en Visual Studio .Net (Visual Basic .Net VB.Net) basándonos en un ejemplo que incorpora el software de la tarjeta de adquisición de datos. Dicha aplicación requiere del software que viene con el sensor instalado en el equipo.
A continuación os explicamos paso a paso y con fotos cómo conectamos el sensor de temperatura a la tarjeta de adquisición de datos:
1. Por la parte analógica de la tarjeta de adquisición de datos NI USB-6008 puenteamos el conector nº 1 con el nº 3, puenteamos también uniendo la resistencia de 1k2 Ohmios el nº 2 con el nº 3. Conectamos al conector nº 2 de la parte analógica un cable y en el otro extremo conectaremos la «pata» del centro (de las tres que incorpora el sensor de temperatura), conectaremos también el conector nº 4 a la «para» derecha del sensor de temperatura. Por último conectaremos el conector nº 31 de la parte digital de la tarjeta de adquisición de datos con la «pata» izquierda del sensor de temperatura.
Nota: suponemos (para decidir derecha e izquierda) que el sensor de temperatura se encuentra con la parte lisa hacia abajo y la ondulada hacia arriba.
La resistencia de 1k2 Ohmios utilizada anteriormente, como os comentábamos la hemos extraído de un ratón viejo inservible:
2. Una vez conectado el sensor de temperatura con la tarjeta de adquisición de datos instalaremos el software de la tarjeta de adquisición de datos pues será necesario para que el Sistema Operativo detecte correctamente la tarjeta de adquisición de datos. En este caso, el modelo utilizado, va conectado con el USB del PC, existen otros modelos con otro tipo de conexión (PCI, etc). La instalación del software y drivers es bastante sencilla, será suficiente con introducir el CD que incorpora la tarjeta y seguir los pasos del asistente de instalación. Para comprobar que la tarjeta de adquisición de datos y el sensor de temperatura están funcionando correctamente podremos utilizar la herramienta «Test Panels» que se encuentra en el software de NI (National Instruments) que se instala con los drivers de la tarjeta de adquisición de datos. Para abrirlo accederemos a «Inicio» – «Programas» – «National Instruments» – «Measurement & Automation» – «Devices and Interfaces» – «NI-DAQmx Devices», pulsaremos con el botón derecho del ratón sobre NI USB-6008 «Dev1», seleccionaremos «Test Panels»:
Nos mostrará esta aplicación para testeo de la tarjeta. Para configurarla es suficiente con indicar el nombre del canal (Channel Name), por defecto «Dev1/ai0», indicaremos el modo (Mode): «On Demand», la configuración de entrada (Input Configuration): «RSE», el valor máximo (Max Input Limit): 1, el valor mínimo (Min Input Limit): 0. Una vez configurado pulsaremos «Start» para que el software de NI inicie la adquisición de los valores devueltos por el sensor de temperatura y la tarjeta de adquisición de datos:

Desarrollo de software en Visual Basic .Net para adquirir la temperatura
A continuación realizaremos el software que leerá estos valores (la temperatura de la sala en donde esté ubicado el sensor de temperatura): AjpdSoft Sensor de Temperatura. Una vez conectados al sensor y obtenida la temperatura podremos hacer lo que queramos con dicho valor, por ejemplo guardarlo en una base de datos para su posterior consulta y para realizar cualquier tipo de acción ante un determinado evento (cuando la temperatura supere unos grados determinados, cuando sea inferior a los grados indicados, etc). Para realizar el software utilizaremos Microsoft Visual Studio .Net (Visual Basic .Net) para la adquisición del valor del sensor de temperatura:
Las librerías del aparato utilizado (NI USB-6008) soportan VB.Net.
El código fuente del formulario principal y sus botones:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Private Sub bObtenerValor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bObtenerValor.Click Try bObtenerValor.Enabled = False mTarea = New Task() 'Creamos una nuevo canal virtual mTarea.AIChannels.CreateVoltageChannel(physicalChannelComboBox.Text, "", _ CType(-1, AITerminalConfiguration), Convert.ToDouble(minimumValueNumeric.Value), _ Convert.ToDouble(maximumValueNumeric.Value), AIVoltageUnits.Volts) 'Verificamos la tarea mTarea.Control(TaskAction.Verify) mLector = New AnalogMultiChannelReader(mTarea.Stream) Dim data() As Double = mLector.ReadSingleSample() txtDatoActual.Text = CStr(data(0)) txtGrados.Text = CStr(data(0) * 100) Catch exception As DaqException MessageBox.Show(exception.Message) Finally mTarea.Dispose() bObtenerValor.Enabled = True End Try End Sub Private Sub temporizador_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles temporizador.Tick Call bObtenerValor_Click(sender, e) End Sub Private Sub bIniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bIniciar.Click temporizador.Interval = CInt(txtTiempo.Text) temporizador.Enabled = True bIniciar.Enabled = False bDetener.Enabled = True End Sub Private Sub bDetener_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bDetener.Click temporizador.Enabled = False bIniciar.Enabled = True bDetener.Enabled = False End Sub |
Desde aquí podréis descargar el código fuente en Visual Studio .Net (Visual Basic) de la aplicación AjpdSoft Sensor de Temperatura.
Nota: esta versión es la más simple y tiene un error aproximado de +/- 1 grado. Esto se podría solucionar amplificando la salida del sensor de temperatura 10 veces y así el error sería de +/- 0,1 grado.