Midiendo la Temperatura Ambiente

En entradas anteriores hemos abordado el tema de la correcta medición de la temperatura de nuestro procesador. Esto con el fin de conocer la temperatura superior que alcanza nuestro CPU trabajando al 100% de carga, así como conocer la capacidad de disipación que posee nuestro PC. Un elemento muy determinante de la temperatura que alcanza nuestro CPU, es la temperatura ambiente, debido a que por ser la temperatura de la habitación en la que funciona nuestro PC, siempre será determinante para la temperatura de funcionamiento de nuestro CPU. Debido a esto, en esta entrada mostraré una forma de medir la temperatura ambiente de una manera más precisa que la convencional de utilizar un termómetro de pared.

Primero que nada, esta alternativa no es tan práctica como el hacer la medición con un termómetro análogo y observar el nivel de este durante el tiempo que dura la prueba. Pero con esta alternativa con una pequeña inversión y un poco de tiempo, se puede lograr una medición precisa y que queda debidamente documentada.

También recordar que soy un aficionado a la programación, por lo tanto si alguien tiene mejoras para este o críticas, son bienvenidas. Yo he tratado de “optimizarlo” lo más posible, pero si alguien tiene mejoras, por favor traten de compartirlas.

Temperatura ambiente: hardware

Bueno lo principal de esta opción para medir la temperatura ambiente, es que construyamos un dispositivo basado en Arduino, el cual tome mediciones de la temperatura ambiente mientras dure nuestra prueba de estrés; y que este se comunique con nuestro PC a través del puerto serial.

Las mediciones de la temperatura ambiente no tienen que ser de manera simultánea con las pruebas de estrés, pero entre menos tiempo exista entre la prueba de estrés y la toma de la temperatura ambiente, más válidas serán estas lecturas para el ejercicio.

Para este dispositivo utilizaremos las siguiente partes:

  • Arduino Nano que tiene un precio localmente que ronda los USD 10.00
  • Sensor de temperatura DS18B20 en su variante KY001 el cual ya viene con resistencia y en un empotre el cual facilita su manejo. Este tipo de sensor localmente solo se encuentra sin resistencia así que es posible que también tengas que conseguir una resistencia aparte. Este sensor tiene un precio sugerido de USD 4.75
  • Resistencia de 4.7k con un valor local sugerido de USD 1.75
  • Cables Dupont con un valor sugerido de USD 2.00
  • Mini Breadboard que tiene un costo de USD 3.75
  • Una pantalla OLED de 1.3” con resolución de 128×64 monocromática. Con un precio de USD 8.00

El dispositivo tiene un costo aproximado de poco más de USD 30.00

Temperatura ambiente: El Software

Utilizaremos la herramienta Realterm. Este es un programa que está especialmente diseñado para capturar y controlar toda la información que pasa por nuestros puertos de comunicación. Y ya que nuestro dispositivo de medición de temperatura estará conectado al puerto serial del PC, con Realterm podremos capturar esa data y guardarla en un archivo TXT para su posterior análisis.

Además de Realterm, también utilizaremos el compilador Arduino IDE para escribir nuestro programa directamente en nuestra placa Arduino Nano. De ser posible utilizar la versión más reciente y estable de esta herramienta para asegurar su correcto funcionamiento.

Para el análisis del archivo TXT creado, se puede utilizar cualquier programa de hoja de cálculo, si no se tienen ninguno instalado en el PC, podemos echar mano de herramientas como ‘Google Sheets’ que es basado en la web o LibreOffice que puede ser instalado en cualquier PC, ya sea con Windows 10 o Linux, el cual es gratuito y fácil de utilizar.

Construcción del Dispositivo

Temperatura Ambiente

Aquí dejo el cableado que se necesita hacer para que funcione con el código que más abajo les compartiré.

Este dispositivo se puede cablear de diferentes maneras y sigue haciendo el mismo trabajo que nosotros necesitamos, pero recuerden que si cambian algo del cableado es necesario también modificar el código para que este funcione de manera correcta.

Temperatura Ambiente

Si utilizan un sensor DS18B20 que no es su variante KY-001, recuerden que es necesario colocar una resistencia y modificar un poco el cableado para que este siga funcionando de manera correcta. En el diseño yo he dejado un poco de espacio de cables para que el sensor pueda ser colocado justo en el lugar donde quieren tomar las mediciones. 

Este dispositivo puede ser colocado dentro del Case, para tomar la temperatura interna de este y así probar diferentes configuraciones de ventiladores de flujo y/o diseño de flujo interno de aire.

El Código

// DS18B20 que se muestre en la pantalla OLED 128x64
// Incluye la librería OneWire
#include <OneWire.h>
// Inlcuye la librería Dallas Temperature
#include <DallasTemperature.h>
// Configura la librería OneWire en el Pin 2
OneWire bus(2);
// Configura DallasTemperature para que trabaje en el bus de OneWire
DallasTemperature sensors(&bus);
// Incluye la librería U8glib
#include <U8glib.h>
// Prepara la pantalla OLED (I2C)
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST);
float temperature;
char temperatureString[6] = "-";
void draw(void) {
  // Reinicia la información grafica de la pantalla
  u8g.setFont(u8g_font_fur11);
  u8g.drawStr( 0, 15, "Temp C:");
  u8g.setFont(u8g_font_fub25);
  u8g.drawStr( 20, 55, temperatureString);
  }
void setup() {
  // Inicia los sensores
  Serial.begin(9600);
  sensors.begin();
}
void loop() {
  sensors.requestTemperatures();   //Se envía el comando para leer la temperatura
  float temp = sensors.getTempCByIndex(0); //Se obtiene la temperatura en ºC
  Serial.print("Temperatura= ");
  Serial.print(temp);
  Serial.println(" C");
  // Inicia el Loop
  u8g.firstPage();
  do {
    draw();
  } while ( u8g.nextPage() );
  // Actualiza las lecturas del sensor
  sensors.requestTemperatures();
  // Lee la temperatura
  temperature = sensors.getTempCByIndex(0);
  dtostrf(temperature, 2, 2, temperatureString);
  // El tiempo que hay entre cada lectura del sensor
  delay(5000);
}

Funcionamiento

El dispositivo es bastante simple, una vez conectado a cualquier puerto USB de nuestra PC comienza a funcionar y a tomar mediciones. Cada medición estará separada por el intervalo de tiempo que se especifique dentro del código programado.

Al estar conectados a nuestro PC, tenemos que ejecutar Realterm. En esta herramienta debemos configurar en la pestaña ‘Port’ el nivel de baudios a los que está comunicando nuestro dispositivo, en el código que yo he compartido este nivel debe de ser 9600, y seleccionar el puerto por el cual está entrando la data. En la pestaña ‘Capture’, se debe establecer la ubicación donde se guardará el archivo TXT y el nombre que este archivo tendrá.

Una vez hecho esto ya se está almacenando las lecturas de nuestro sensor en el archivo TXT para su posterior análisis. Se puede en cualquier momento correr la prueba de estrés de nuestro CPU y estar seguros que se está grabando las temperaturas del ambiente.

Yo realice pruebas con este dispositivo simultáneamente conectado a mi PC, mientras corría pruebas del CPU con Prime95 y los parámetros del PC eran grabados por AIDA64; durante estas no se presentó ningún problema. Pero si únicamente quieren estresar el CPU con Prime95 y que nada más esté utilizando su PC, pues entonces puede hacer las mediciones de la temperatura ambiente un momento antes de hacer las pruebas de estrés, si hacen las pruebas de estrés inmediatamente después de tomar las medidas de la temperatura ambiente, pues no habrá mayor variación.

Conclusión

Temperatura Ambiente

Este dispositivo nos ayudará a tener una medición mucho más exacta de la temperatura ambiente en la cual trabaja nuestra PC. Esto con el fin de facilitar la medición de la capacidad de disipación que nuestro sistema posee. 

Ya que como mencione anteriormente, la temperatura ambiente es un elemento muy determinante de la temperatura máxima a la que llega nuestro CPU al estar al 100% de trabajo. Por tal motivo es bueno que contemos con una medición lo más exacta de esta variable.

Espero que a más de uno le sea útil este artículo.

Saludos a todos.-

1 thought on “Midiendo la Temperatura Ambiente”

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top