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

Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482

Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482

La monitorización precisa de temperatura es esencial en muchos proyectos con Raspberry Pi, desde control climático hasta registro de datos. La familia de sensores 1-Wire de Maxim Integrated, como el DS18B20, ofrece una solución simple y de bajo consumo de pines. Mediante el puente DS2482 de 1-Wire a I2C, puede conectar hasta diez sensores en un único bus I2C, manteniendo mínima la huella de GPIO de la Pi.

Visión general del hardware

Requisitos previos de software

Estas instrucciones asumen una instalación estándar de Raspbian con código fuente del kernel disponible. Será necesario recompilar el kernel tras realizar los siguientes cambios.

Paso 1 – Habilitar el DS2482 en el bus I2C

Modifique arch/arm/mach-bcm2708/bcm2708.c en el código fuente del kernel para registrar el DS2482 como dispositivo I2C. Añada la siguiente definición de dispositivo de plataforma y array de información de placa:

static struct platform_device bcm2708_bsc1_device = {
    .name = "bcm2708_i2c",
    .id = 1,
    .num_resources = ARRAY_SIZE(bcm2708_bsc1_resources),
    .resource = bcm2708_bsc1_resources,
};

static struct i2c_board_info __initdata pi_i2c_devs[] = {
    { I2C_BOARD_INFO("ds1307", 0x68)},
    { I2C_BOARD_INFO("ds2482", 0x18)},
};

...
bcm_register_device(&bcm2835_thermal_device);
i2c_register_board_info(1, pi_i2c_devs, ARRAY_SIZE(pi_i2c_devs));

Tras añadir el dispositivo, recompile e instale el kernel.

Paso 2 – Gestión de pull-ups 1-Wire en el kernel

Modifique drivers/w1/w1_io.c para permitir que el DS2482 controle la resistencia pull-up durante las conversiones. Reemplace la función w1_post_write con:

static void w1_post_write(struct w1_master *dev) {
    if (dev->pullup_duration) {
        if (dev->enable_pullup && dev->bus_master->set_pullup) {
            dev->bus_master->set_pullup(dev->bus_master->data, 0);
            msleep(dev->pullup_duration);
        } else {
            msleep(dev->pullup_duration);
        }
        dev->pullup_duration = 0;
    }
}

Paso 3 – Añadir control de pull-up al controlador DS2482

En drivers/w1/masters/ds2842.c añada una función auxiliar que active el pull-up fuerte del DS2482 cuando se solicite un retardo:

static u8 ds2482_w1_set_pullup(void *data, int delay) {
    struct ds2482_w1_chan *pchan = data;
    struct ds2482_data *pdev = pchan->pdev;
    u8 retval = 1;
    u8 cfg;
    if (delay) {
        /* Asegurar que el bus está inactivo antes de cambiar configuración */
        ds2482_wait_1wire_idle(pdev);
        /* Habilitar tanto SPU como APU para pull-up fuerte */
        retval = ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG,
            ds2482_calculate_config(DS2482_REG_CFG_SPU | DS2482_REG_CFG_APU));
        ds2482_wait_1wire_idle(pdev);
    }
    return retval;
}

Pasos finales

Con estos ajustes en el kernel, la Raspberry Pi puede leer fiablemente hasta diez sensores de temperatura 1-Wire a través de un único puente DS2482, ideal para proyectos de monitorización multi-sensor.

Recursos adicionales

Proceso de manufactura

  1. Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
  2. Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
  3. Perfilado preciso de temperatura en Raspberry Pi con Python, SQLite y LabVIEW
  4. Conectar múltiples sensores DS18B20 1‑Wire a Raspberry Pi para monitorización precisa de temperatura
  5. Monitor de temperatura y humedad en red con Raspberry Pi – Guía DIY completa
  6. Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
  7. Monitorización profesional de temperatura con Raspberry Pi y DS18B20
  8. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  9. Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
  10. Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
  11. Raspberry Pi BMP085: Lecturas precisas de temperatura y presión vía I2C