산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기

라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기

정확한 온도 모니터링은 기후 제어부터 데이터 로깅까지 많은 라즈베리 파이 프로젝트에 필수적입니다. DS18B20 같은 Maxim Integrated 1-Wire 센서 제품군은 간단하고 핀 수가 적은 솔루션을 제공합니다. DS2482 1-Wire-to-I2C 브리지를 사용하면 단일 I2C 버스로 최대 10개의 센서를 연결할 수 있어 파이의 GPIO 점유를 최소화할 수 있습니다.

하드웨어 개요

소프트웨어 전제 조건

이 지침은 커널 소스를 사용할 수 있는 표준 라즈비안 설치를 가정합니다. 다음 변경 후 커널을 다시 빌드해야 합니다.

1단계 – I2C 버스에서 DS2482 활성화

커널 소스의 arch/arm/mach-bcm2708/bcm2708.c를 수정하여 DS2482를 I2C 장치로 등록합니다. 다음 플랫폼 장치 정의와 보드 정보 배열을 추가하세요:

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

장치를 추가한 후 커널을 다시 컴파일하고 설치합니다.

2단계 – 커널에서 1-Wire 풀업 처리

drivers/w1/w1_io.c를 수정하여 DS2482가 변환 중 풀업 저항을 제어할 수 있게 합니다. w1_post_write 함수를 다음으로 교체하세요:

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

3단계 – DS2482 드라이버에 풀업 제어 추가

drivers/w1/masters/ds2842.c에 지연이 요청될 때 DS2482의 강한 풀업을 활성화하는 헬퍼를 추가합니다:

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) {
        /* 설정 변경 전 버스 유휴 상태 확인 */
        ds2482_wait_1wire_idle(pdev);
        /* 강한 풀업을 위해 SPU와 APU 모두 활성화 */
        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;
}

최종 단계

이 커널 조정으로 라즈베리 파이는 단일 DS2482 브리지를 통해 최대 10개의 1-Wire 온도 센서를 안정적으로 읽을 수 있어 다중 센서 모니터링 프로젝트에 이상적입니다.

추가 자료

제조공정

  1. 통합 QR, RFID, 온도 검증 출입 통제 시스템
  2. 5달러 I2C 센서로 라즈베리 파이 온도 로거 만들기
  3. 파이썬, SQLite, LabVIEW로 라즈베리 파이 온도 프로파일링 정밀 구현
  4. 라즈베리 파이 다중 DS18B20 1-와이어 센서 연결으로 정확한 온도 모니터링
  5. 라즈베리 파이 온습도 네트워크 모니터 DIY 구축 가이드
  6. 라즈베리 파이 2에서 DS18B20으로 온도 읽기
  7. 라즈베리 파이와 DS18B20을 이용한 전문적인 온도 모니터링
  8. 라즈베리 파이와 파이썬으로 원격 온도 센서 만들기 – 단계별 가이드
  9. 라즈베리 파이에서 EzTemp로 매끄러운 온도 및 습도 모니터링
  10. 라즈베리 파이로 서버실 정확한 온도 모니터링하기