Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
El problema
Tras reformar mi oficina en casa dediqué un armario para toda mi electrónica – servidores, NAS, receptor AV y más. Instalé un ventilador de extracción para evacuar el aire caliente a la oficina contigua, pero el armario se mantiene alrededor de 90 °F (32 °C) incluso con el ventilador funcionando. Aunque está dentro de los límites de la mayoría del hardware, es más cálido de lo que me gustaría. Para determinar si es necesario refrigeración adicional, necesitaba una forma fiable de registrar cambios de temperatura durante varios días.
Usar una Raspberry Pi para esta tarea es ideal. Había trabajado previamente con el sensor analógico TMP36GZ en un Arduino, pero los pines GPIO de la Pi son solo digitales, por lo que un sensor analógico no es adecuado sin un ADC extra. Quería una solución directa que me permitiera empezar a programar de inmediato.
El sensor digital de temperatura DS18B20 resolvió el problema. Se comunica sobre un bus de un solo hilo (1-Wire), que encaja perfectamente con el BCM GPIO4 (pin 7) de la Pi. El sensor puede accederse directamente desde la terminal de Linux, y múltiples unidades DS18B20 pueden compartir la misma línea de datos.
El montaje
- Use un trozo corto de cable CAT5e y suelde los tres pines del DS18B20: naranja = +3,3 V, marrón = GND, verde = DATA.
- Instale una resistencia pull-up de 4,7 kΩ entre la línea de 3,3 V y datos.
- Envuelva el cableado expuesto con cinta aislante y termorretráctil para protección.
- Coloque conectores jumper hembra en el extremo del cable para conexiones rápidas a un divisor.
- Cree dos divisores Y de 2-macho-a-1-hembra para combinar VDD, GND y DATA de dos sensores en el único pin de la Pi.
- Conecte los divisores a la Pi: 3,3 V al pin 1, GND al pin 6, DATA al pin 7.
- Coloque los sensores dentro del armario – uno a cada lado del ventilador de extracción – para capturar variaciones de temperatura.
A continuación se muestra una foto del montaje final. Observe los tres divisores enchufados ordenadamente en los pines GPIO de la Pi.
Lectura del sensor desde la terminal
Una vez cableados los DS18B20, puede leer su salida directamente desde el sistema de archivos. Los siguientes comandos cargan los módulos del kernel necesarios, listan los dispositivos disponibles y muestran los datos de temperatura para un sensor elegido.
# Cargar controladores 1-Wire
sudo modprobe w1-gpio
sudo modprobe w1-therm
# Listar dispositivos conectados (p. ej., 28-0000055f311a)
ls /sys/bus/w1/devices
# Leer temperatura de un sensor específico
cat /sys/bus/w1/devices/28-0000055f311a/w1_slave
El archivo w1_slave devuelve dos líneas. La primera contiene una comprobación CRC; la segunda termina con t=XXXXX, donde XXXXX es la temperatura en milésimas de grado Celsius. Conviértala a Fahrenheit si lo desea.
Con esta configuración, puede registrar lecturas en un archivo CSV, enviar datos a un servidor remoto o disparar alertas si las temperaturas superan un umbral. La precisión del DS18B20 es ±0,5 °C, más que suficiente para monitorización rutinaria de hardware.
Para instrucciones más detalladas y código de ejemplo, visite documentación GPIO de Raspberry Pi y guía DS18B20 de Adafruit.
Proceso de manufactura
- Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
- Perfilado preciso de temperatura en Raspberry Pi con Python, SQLite y LabVIEW
- Conectar múltiples sensores DS18B20 1‑Wire a Raspberry Pi para monitorización precisa de temperatura
- Monitorizar eficientemente temperaturas de salas con Raspberry Pi y Nagios
- Monitor de temperatura y humedad en red con Raspberry Pi – Guía DIY completa
- Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
- Monitorización profesional de temperatura con Raspberry Pi y DS18B20
- Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
- Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
- Centro de Energía Doméstica: Monitorización de paneles solares fotovoltaicos, térmicos y temperaturas con Raspberry Pi y Moteino
- Raspberry Pi BMP085: Lecturas precisas de temperatura y presión vía I2C