Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi

Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi

Präzise Temperaturüberwachung ist für viele Raspberry Pi Projekte essenziell – von der Klimasteuerung bis zum Data Logging. Die Maxim Integrated 1-Wire Sensorfamilie, wie der DS18B20, bietet eine einfache Lösung mit minimalem Pin-Verbrauch. Durch den Einsatz der DS2482 1-Wire-zu-I2C-Bridge können bis zu zehn Sensoren an einem einzigen I2C-Bus betrieben werden, wodurch der GPIO-Footprint des Pi minimal bleibt.

Hardware-Übersicht

Software-Voraussetzungen

Diese Anleitung setzt eine Standard-Installation von Raspberry Pi OS mit verfügbaren Kernel-Quellen voraus. Sie müssen den Kernel nach den folgenden Änderungen neu kompilieren.

Schritt 1 – DS2482 am I2C-Bus aktivieren

Ändern Sie arch/arm/mach-bcm2708/bcm2708.c im Kernel-Quellcode, um den DS2482 als I2C-Gerät zu registrieren. Fügen Sie die folgende Plattform-Geräte-Definition und Board-Info-Array hinzu:

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));

Nach Hinzufügen des Geräts den Kernel neu kompilieren und installieren.

Schritt 2 – 1-Wire Pull-Ups im Kernel handhaben

Modifizieren Sie drivers/w1/w1_io.c, um dem DS2482 die Steuerung des Pull-Up-Widerstands während Konvertierungen zu ermöglichen. Ersetzen Sie die Funktion w1_post_write durch:

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;
    }
}

Schritt 3 – Pull-Up-Steuerung zum DS2482-Treiber hinzufügen

In drivers/w1/masters/ds2842.c einen Helper hinzufügen, der den starken Pull-Up des DS2482 aktiviert, wenn eine Verzögerung angefordert wird:

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) {
        /* Sicherstellen, dass der Bus idle ist, bevor die Config geändert wird */
        ds2482_wait_1wire_idle(pdev);
        /* SPU und APU für starken Pull-Up aktivieren */
        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;
}

Abschließende Schritte

Mit diesen Kernel-Anpassungen kann der Raspberry Pi zuverlässig bis zu zehn 1-Wire Temperatursensoren über eine einzelne DS2482 Bridge auslesen – ideal für Multi-Sensor-Monitoring-Projekte.

Zusätzliche Ressourcen

Herstellungsprozess

  1. Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
  2. Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
  3. Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
  4. Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
  5. Raspberry Pi Temperatur- & Feuchtigkeits-Netzwerkmonitor – DIY Setup Guide
  6. Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
  7. Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
  8. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  9. Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
  10. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi