Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug

Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug

Accurate temperatuurbewaking is essentieel voor veel Raspberry Pi-projecten, van klimaatbeheer tot datalogging. De Maxim Integrated 1-Wire familie van sensoren, zoals de DS18B20, biedt een eenvoudige, lage-pin oplossing. Door de DS2482 1-Wire-naar-I2C brug te gebruiken, kunt u tot tien sensoren aan een enkele I2C-bus koppelen, waardoor de GPIO-footprint van de Pi minimaal blijft.

Hardware-overzicht

  • Raspberry Pi – elk model met een I2C-bus (bijv. Pi 2/3/4)
  • DS2482‑2 – 1-Wire master op I2C, adres 0x18
  • Maxim 1-Wire temperatuursensoren – tot 10 eenheden, elk met een uniek 1-Wire adres
  • Pull-up weerstanden – 4,7 kΩ op de 1-Wire datalijn (optioneel als DS2482 pull-ups regelt)

Softwarevereisten

Deze instructies gaan uit van een standaard Raspbian-installatie met beschikbare kernelsource. U moet de kernel herbouwen na de volgende wijzigingen.

Stap 1 – DS2482 inschakelen op de I2C-bus

Wijzig arch/arm/mach-bcm2708/bcm2708.c in de kernelsource om de DS2482 te registreren als I2C-apparaat. Voeg de volgende platform device definitie en board info array toe:

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

Na toevoegen van het apparaat, compileer en installeer de kernel opnieuw.

Stap 2 – 1-Wire pull-ups in de kernel afhandelen

Wijzig drivers/w1/w1_io.c om de DS2482 toe te staan de pull-up weerstand tijdens conversies te regelen. Vervang de w1_post_write functie door:

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

Stap 3 – Pull-up controle toevoegen aan de DS2482 driver

In drivers/w1/masters/ds2842.c voeg een helper toe die de sterke pull-up van de DS2482 activeert wanneer een vertraging wordt aangevraagd:

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) {
        /* Zorg dat de bus rustig is voordat configuratie verandert */
        ds2482_wait_1wire_idle(pdev);
        /* Schakel zowel SPU als APU in voor sterke pull-up */
        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;
}

Laatste stappen

  • Herbouw en herstart de Pi met de nieuwe kernel.
  • Controleer of de DS2482 verschijnt onder /sys/bus/i2c/devices/1-0018.
  • Sluit uw Maxim 1-Wire sensoren aan op de DS2482 datalijn (pin 1) en ground.
  • Controleer of elke sensor verschijnt onder /sys/bus/w1/devices/ en dat cat /sys/bus/w1/devices/28‑xxxxxxxxxxxx/w1_slave een temperatuurwaarde retourneert.

Met deze kernel-aanpassingen kan de Raspberry Pi betrouwbaar tot tien 1-Wire temperatuursensoren uitlezen via een enkele DS2482-brug, ideaal voor multi-sensor monitoringprojecten.

Aanvullende bronnen

Productieproces

  1. Geïntegreerde QR, RFID en Temperatuurverificatie Toegangscontrolesysteem
  2. Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
  3. Nauwkeurige Raspberry Pi Temperatuurprofielering Met Python, SQLite En LabVIEW
  4. Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
  5. Raspberry Pi Temperatuur & Vochtigheid Netwerk Monitor – DIY Setup Gids
  6. Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
  7. Professionele temperatuurbewaking met Raspberry Pi en DS18B20
  8. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  9. Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
  10. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  11. Raspberry Pi BMP085: Accurate temperatuur- en drukmetingen via I2C