제조공정
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을 병렬로 연결할 수 있습니다. 각 센서에는 자체 식별을 위해 제조업체에서 할당한 고유 코드가 있습니다.
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 온도 센서 활성화에 필요한 커널 모듈은 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을 사용하는 것이 좋습니다. 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 스크립트는 w1_slave 특수 파일을 읽고 온도 값을 라운드 로빈 데이터베이스에 삽입합니다.
자세한 내용:Raspberry Pi의 1선식 온도 센서 DS1820(GPIO 직접)
제조공정
구성품 및 소모품 DHT22 온도 센서 × 1 DS18B20 × 1 토양 온도 및 습도 센서 FS200-SHT25 × 1 4채널 릴레이 모듈 × 1 2채널 릴레이 모듈 × 1 초음파 센서 - HC-SR04(일반) × 1 Arduino MKR1000 × 1 앱 및 온라인 서비스 DasData Microsoft Visual Studio 2015
구성품 및 소모품 Arduino UNO × 1 Adafruit Standard LCD - 파란색 바탕에 16x2 흰색 × 1 점퍼 와이어(일반) × 1 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 이 프로젝트는 주변 온도를 감지한 다음 이를 볼트로, 볼트를 로 변환합니다. 섭씨, 섭씨에서 화씨로 변환한 다음 화씨를 인쇄합니다. 코드 온도 temp아두이노 #include Liquid