2019년 3월 16일 토요일

라즈베리파이 온도측정 (센서:DS18B20)

특징
작동 공급전류 : 1.5mA
최소 공급전압 : 3V
최대 공급전압 : 5.5V
최저 작동온도 : -55
최고 작동온도 : +125
정확도 : +/- 0.5
자세한 스펙 : https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

라즈베리파이에 DS18B20 온도센서가 장착된
위와 같은 형태의 모듈을 연결하기 위해서는
브레드보드, 와이어가 필요하다.

물론 DS18B20 센서만 구입하여 위 그림처럼,
빵판에 센서와 저항을 연결해도 된다.
저항은 5Kohm ~ 10Kohm 이 필요하다.

위 모듈에 세가지 핀이 보이는데,
   |            |             |
GND   VCC(+5V)   GPIO#4
제일 왼쪽부터 접지,전압,데이터이다.

라즈베리파이에 온도센서를 장착했다면, 터미널에서 다음과 같이 입력하여 실행한다.
이렇게 하는건, 라즈베리파이와 단선통신(one wire communication)을 하기 위함이다.

sudo modprobe w1-gpio
sudo modprobe w1_therm


그 다음, 나노편집기 등을 이용해 boot/config.txt 를 열고 다음 명령을 추가해 저장한다.

sudo nano /boot/config.txt
dtoverlay = w1-gpio

config.txt 맨 아래 위 항목을 추가 해주고
Ctrl-X 하여 파일을 저장한다.

더 자세한 사항을 알고 싶다면
여기를 참조 https://pinout.xyz/pinout/1_wire

그리고, 라즈베리파이를 재부팅 해준다.

sudo reboot

다시 쉘 터미널을 열어
다음과 같은 명령어를 입력하여 실행한다.

ls -l /sys/bus/w1/devices/

그러면 다음과 같은 결과를 볼 수 있는데


모자이크 해놓은 부분이 온도센서의 주소이다.
이제 온도센서의 주소를 알았으니,
다음 명령어를 입력하여 실행한다.

cat /sys/bus/w1/devices/온도센서주소/w1_slave

그러면 다음과 같이 결과가 나오는데


모자이크 하지 않은 t=16875 가 온도이다.
16875는 섭씨 16.875 도 이다.

프로그램으로 만들면
,실시간으로 온도변화를 측정 할 수 있다.

끝. 쉽죠잉?

댓글 없음:

댓글 쓰기

플러터 단축키

1. 위젯 감싸기/벗기기 비주얼 스튜디오 :   Cmd + . 안드로이드 스튜디오 : Alt + Enter 2. 코드 정렬 비주얼 스튜디오 : Ctrl + S 안드로이드 스튜디오 : Ctlr + Alt + L 3. StatelessWidget ->...