Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana

Tras adquirir una Raspberry Pi y revisar la guía de usuario de Eben Upton —especialmente las secciones GPIO— emprendí mi primer proyecto: un sistema de monitorización de temperatura doméstica. Este post detalla la iteración inicial usando Raspberry Pi, breakout Adafruit MCP9808, un viejo Mac Mini, InfluxDB, Grafana, Python y el supervisor de procesos runit.

Hardware del sensor

Para el sensor de temperatura seleccioné el breakout MCP9808 de Adafruit. Mi elección se basó en:

Montaje del circuito

La placa MCP9808 llega casi ensamblada; lo único que requiere soldadura es el header de 8 pines. Usé un breakout GPIO y protoboard para conectar la Pi al sensor, simplificando cableado y facilitando ajustes futuros. Conexiones esenciales:

Los pines restantes —para selección de dirección y alertas— quedaron sin conectar en esta configuración de un solo dispositivo.

Almacenamiento de datos

Capturar datos en el tiempo permite análisis de tendencias y correlación con eventos externos. Elegí InfluxDB por su enfoque en series temporales y lenguaje de consulta intuitivo. La base de datos corre en un Mac Mini de principios de 2009 (OS X 10.10) bajo Homebrew:

brew install influxdb

Configurar base de datos InfluxDB

Tras la instalación, creé una base de datos y usuario dedicado via consola web (puerto por defecto 8083). También configuré una base de datos llamada mcp9808_test para almacenar lecturas del sensor.

Configuración de Raspberry Pi

Habilitar I²C

La Pi no carga módulos I²C por defecto. Añade estas líneas a /etc/modules y reinicia:

i2c-bcm2708
i2c-dev

Verifica que el sensor se detecta con:

sudo i2cdetect 1

Software del sensor

Usé el wrapper Python MCP9808 de Adafruit, que también trae la capa de abstracción I²C.

Instalar dependencias de compilación

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus

Instalar wrapper Adafruit MCP9808

cd ~/Downloads
git clone https://github.com/adafruit/Adafruit_Python_MCP9808
cd Adafruit_Python_MCP9808
sudo python setup.py install

Leer, reportar, repetir

Abajo está el script poll.py que lee temperatura cada minuto y escribe el valor en InfluxDB:

#!/usr/bin/python
import time
import Adafruit_MCP9808.MCP9808 as MCP9808
from influxdb import InfluxDBClient

# Preparar payload para InfluxDB
def temperature_data(degrees_c):
    return [{
        'points': [[c_to_f(degrees_c)]],
        'name': 'Temperature Readings',
        'columns': ['degrees_f']
    }]

# Convertir Celsius a Fahrenheit
def c_to_f(c):
    return c * 9.0 / 5.0 + 32.0

# Inicializar sensor
sensor = MCP9808.MCP9808()
sensor.begin()

# Intervalo de captura en segundos
capture_interval = 60.0

# Conectar a InfluxDB (reemplaza placeholders con valores reales)
influxClient = InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test')

# Bucle continuo
while True:
    temp_c = sensor.readTempC()
    print('Temperature {0:0.3} F'.format(c_to_f(temp_c)))
    influxClient.write_points(temperature_data(temp_c))
    time.sleep(capture_interval)

Ejecuta el script como root para acceder a pines GPIO:

sudo python /path/to/poll.py

Supervisión de procesos con runit

Para asegurar que poll.py permanezca vivo tras reinicios y ciclos de energía, configuré runit como supervisor de procesos. Pasos detallados en la documentación original del proyecto.

Resumen

Con el sensor, base de datos y pila de monitorización en marcha, tienes un registrador de temperatura doméstico fiable y de bajo coste. Usa Grafana para visualizar datos, configurar alertas y obtener insights accionables sobre tu entorno.

Proceso de manufactura

  1. Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
  2. Perfilado preciso de temperatura en Raspberry Pi con Python, SQLite y LabVIEW
  3. Conectar múltiples sensores DS18B20 1‑Wire a Raspberry Pi para monitorización precisa de temperatura
  4. Monitor de temperatura y humedad en red con Raspberry Pi – Guía DIY completa
  5. Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
  6. Monitorización profesional de temperatura con Raspberry Pi y DS18B20
  7. Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
  8. Sensor infrarrojo TMP006 con Raspberry Pi: librería Python y guía de configuración
  9. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  10. Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
  11. Monitorización precisa de temperatura en armario de servidores con Raspberry Pi