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

Raspberry Pi의 1선식 온도 센서 DS1820(GPIO 직접)

Raspberry Pi로 실내 또는 실외 온도를 측정하는 방법에는 여러 가지가 있습니다. 이 문서에서는 최소한의 외부 구성 요소가 포함된 버전에 대해 설명합니다. 이것은 DS18S20 온도 센서와 1-wire 프로토콜의 소프트웨어 에뮬레이션을 기반으로 합니다.

DS18S20 및 관련 DS18B20 및 DS1822는 온도 센서, 아날로그-디지털 변환기 및 1-와이어 인터페이스를 포함하는 TO-92 하우징의 집적 회로입니다. 언급된 유형은 핀 및 소프트웨어 호환 가능하며 측정 정확도와 가격이 크게 다릅니다. 3개의 커넥터(왼쪽 그림 참조)는 접지(GND, 핀 1), 데이터(DQ 핀 2) 및 작동 전압(VDD , 핀3). VDD를 연결할 수 있습니다. 및 GND를 연결하고 3-5볼트의 기생 전원으로 센서를 작동합니다. 그러면 간단한 2선 트위스트 페어 케이블로 컴퓨터와 회로를 연결할 수 있습니다.

이 케이블(1-와이어 버스)에서 여러 DS1820을 병렬로 연결할 수 있습니다. 각 센서에는 자체 식별을 위해 제조업체에서 할당한 고유 코드가 있습니다.

라즈베리 파이 및 1선식

Raspberry Pi 및 1선식 온도 센서 DS1820을 사용한 온도 측정에는 Raspberry Pi에서 1선식 버스를 구동하는 다양한 방법 목록이 포함되어 있습니다. 이 백서에서는 외부 회로가 가장 적은 솔루션(1)에 대해 설명합니다. 이 솔루션은 소프트웨어에서 1-와이어 프로토콜을 완전히 시뮬레이션하므로 센서와 별도로 단일 저항만 필요합니다.

단 하나의 저항기

DS1820의 데이터 포트 DQ는 Raspberry Pi의 GPIO 인터페이스의 GPIO4 포트에 직접 연결됩니다. GND 및 VDD 접지 터미널 GND에 있습니다. 기생 전원 공급 장치는 3.3볼트 연결 3V3과 GPIO4 사이에 4k7의 풀업 저항을 달성했습니다.

저항, GPIO 포트에 부착하기 위한 암 커넥터 및 1-와이어 연결은 GPIO 포트에 직접 장착되는 작은 브레드보드에 납땜됩니다. 1선식 연결은 공간 절약형 각진 암 커넥터로 실현할 수 있습니다. 이 모든 것이 Raspberry Pi의 TEK-BERRY 하우징에 맞습니다.

1-wire 소프트웨어 드라이버

1-wire 온도 센서 활성화에 필요한 커널 모듈은 Linux 배포판 Raspbian "wheezy"의 일부입니다. 그러나 명시적으로 로드해야 합니다.

sudo modprobe w1-gpio pullup=1sudo modprobe w1-therm

중요 매개변수는 pullup =1입니다. , 모듈에 풀업 저항을 통한 기생 전원 공급 장치가 있음을 알려줍니다. 모듈은 /sys/bus/w1/devices 바로 아래에 있는 각 센서에 대한 하위 디렉토리를 생성합니다. 디렉토리 이름은 센서의 제품군 코드와 고유 식별 번호로 구성됩니다. DS1820 및 DS18S20 유형의 센서에는 제품군 코드 10, DS18B20에는 코드 28, DS1822에는 22가 있습니다. 각 하위 디렉토리에는 센서 상태와 측정된 온도 값이 포함된 w1_slave 파일이 있습니다.

cd /sys/bus/w1/devicescd 10-000801b5*cat w1_slave0f 00 4b 46 ff ff 06 10 0c :crc=0c YES0f 00 4b 46 ff ff 06 10 0c 7375  

파일은 각각 센서 IC의 16진수 레지스터 덤프를 포함하는 두 줄로 구성됩니다. 첫 번째 줄의 끝에는 체크섬(CRC)과 유효한 판독값(YES)인지 여부에 대한 정보가 있습니다. 두 번째 줄은 섭씨 1/1000 단위의 온도 판독값으로 끝납니다. 따라서 이 예에서 온도는 7.375°C입니다. 소수점 이하 세 자리까지의 정확도는 물론 명백합니다. 예를 들어 DS18S20의 데이터시트에는 측정 정확도가 ±0.5°C에 불과하다고 나와 있습니다. 실제 온도는 6.8~7.9°C입니다.

지금까지 모든 것이 작동했다면, 부팅 시 자동으로 로드되도록 두 개의 필수 모듈을 /etc/modules 파일에 입력해야 합니다.

# /etc/modulesw1-gpio pullup=1w1-therm

라운드 로빈 데이터베이스 RRDtool

온도 판독값을 장기간 기록하고 편안한 그래픽을 생성하려면 RRDtool을 사용하는 것이 좋습니다. USB WDE1을 사용한 날씨 데이터 수집 및 Raspberry Pi(USB 직렬)를 사용한 온도 측정 문서에서 이 도구에 대해 자세히 설명합니다.

먼저 Raspberry Pi에서 패키지 관리자의 도움을 받아 RRDtool을 설치해야 합니다.

sudo apt-get 설치 rrdtool python-rrdtool

두 번째 설치된 패키지 python-rrdtool 나중에 사용되는 RRDtool에 대한 Python 인터페이스입니다. RRDtool 작업의 시작 부분에는 데이터베이스의 정의가 있습니다. 다음 예는 두 개의 온도 센서 temp0에 대한 데이터베이스를 생성합니다. 및 임시1 . 목표는 1/4시간(900초)당 하나의 값을 저장하는 것입니다. 10일(=960개 값) 후에는 하루에 평균, 최소 및 최대 값으로 감소합니다. 이러한 일일 값의 보존 기간은 10년(=3600개 값)입니다.

rrdtool 생성 temperature.rrd --step 900 \DS:temp0:GAUGE:1200:-40:80 \DS:temp1:GAUGE:1200:-40:80 \RRA:AVERAGE:0.5:1:960 \RRA:MIN:0.5:96:3600 \RRA:MAX:0.5:96:3600 \RRA:AVERAGE:0.5:96:3600

Python을 사용한 데이터 수집

Python 스크립트는 w1_slave 특수 파일을 읽고 온도 값을 라운드 로빈 데이터베이스에 삽입합니다.

자세한 내용:Raspberry Pi의 1선식 온도 센서 DS1820(GPIO 직접)


제조공정

  1. 라즈베리 파이 온도 로거
  2. 1선 DS18B20 센서와 Raspberry Pi로 온도 측정
  3. DS18B20으로 온도 읽기 | 라즈베리 파이 2
  4. Raspberry Pi의 온도 모니터링
  5. RASPBERRY PI로 온도 측정
  6. Raspberry pi를 사용하는 TMP006 온도 센서 Python 라이브러리,
  7. Python 및 Raspberry Pi 온도 센서
  8. 라즈베리 파이 기상 관측소
  9. Raspberry Pi로 온도 모니터링
  10. 초음파 센서(HC-SR04) + 라즈베리파이