Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482

Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482

Monitoramento preciso de temperatura é essencial para muitos projetos Raspberry Pi, desde controle climático até data logging. A família de sensores 1‑Wire da Maxim Integrated, como o DS18B20, oferece uma solução simples de baixo pin count. Usando o bridge DS2482 1‑Wire‑to‑I2C você pode anexar até dez sensores a um único barramento I2C, mantendo o footprint GPIO do Pi mínimo.

Visão Geral do Hardware

Pré‑requisitos de Software

Estas instruções assumem uma instalação padrão Raspbian com source do kernel disponível. Você precisará recompilar o kernel após fazer as seguintes alterações.

Passo 1 – Habilitar DS2482 no Barramento I2C

Modifique arch/arm/mach-bcm2708/bcm2708.c no source do kernel para registrar o DS2482 como dispositivo I2C. Adicione a seguinte definição de platform device e array de board info:

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

Após adicionar o dispositivo, recompile e instale o kernel.

Passo 2 – Gerenciar Pull‑ups 1‑Wire no Kernel

Modifique drivers/w1/w1_io.c para permitir que o DS2482 controle o resistor pull‑up durante conversões. Substitua a função w1_post_write por:

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

Passo 3 – Adicionar Controle de Pull‑up ao Driver DS2482

Em drivers/w1/masters/ds2842.c adicione um helper que ativa o strong pull‑up do DS2482 quando um delay é requisitado:

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) { /* Garante que o barramento está idle antes de mudar config */ ds2482_wait_1wire_idle(pdev); /* Habilita tanto SPU quanto APU para strong 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; } 

Passos Finais

Com esses ajustes de kernel no lugar, o Raspberry Pi pode ler confiavelmente até dez sensores de temperatura 1‑Wire através de um único bridge DS2482, tornando‑o ideal para projetos de monitoramento multi‑sensor.

Recursos Adicionais

Processo de manufatura

  1. Sistema Integrado de Controle de Acesso com QR, RFID e Verificação de Temperatura
  2. Construa um Registrador de Temperatura com Raspberry Pi e Sensor I2C de $5
  3. Perfilamento de Temperatura Preciso no Raspberry Pi com Python, SQLite e LabVIEW
  4. Conecte Múltiplos Sensores DS18B20 1-Wire ao Raspberry Pi para Monitoramento Preciso de Temperatura
  5. Monitor de Temperatura e Umidade em Rede com Raspberry Pi – Guia DIY de Configuração
  6. Como Ler Temperatura com DS18B20 no Raspberry Pi 2
  7. Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
  8. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  9. Monitoramento Contínuo de Temperatura e Umidade no Raspberry Pi com EzTemp
  10. Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi