방수 온도센서 (수조용) DS18B20

 

1. DS18B20

 

온도를 측정하고 싶을 때, 일반적인 환경에서는 DHT11, DHT22 같은 모듈을 쓰실겁니다.

하지만 좀 더 가혹한 환경(물속이나 먼지가 많은)에서는 이런 센서를 사용하셔야 할겁니다. DS18B20 은 방수가 가능한 온도측정 모듈로 긴 케이블을 이용해 마이크로 프로세서에서 먼 거리에서도 측정이 가능합니다. 125’C 까지 측정이 가능하며 (100’C 이하의 환경 권장) 꽤 정확한 측정치를 보여줍니다.

디지털 핀 하나로 데이터를 전송해주므로 많은 핀이 필요 없으며, 심지어는 여러개의 모듈을 하나의 핀에 연결해도 됩니다. 각 모듈은 64bit ID를 가지고 있어서 서로 구분이 됩니다. 3.0-5V 시스템에서 동작이 가능합니다.

다만 센서가 Dallas 1-Wire protocol 로 보내주는 신호를 처리하는 과정이 좀 복잡해서 라이브러리를 사용해서 처리해줘야 합니다. 두개의 라이브러리를 설치해주면 됩니다. Dallas Temperature Control Arduino libraryOneWire Library.

 

 

2. 연결 방법

 

연결은 아래와 같이 하면 됩니다.

DS18S20-hookup-400x237

데이터 값을 읽는 2번 핀을 기본 HIGH 상태로 맞추기 위해 pull-up 저항을 사용합니다.

 

 

3. 소스코드 (스케치)

 

이제 데이터를 읽는 코드를 보면…

두 개의 라이브러리에서 대부분의 작업을 해줍니다. 그래서 상단에 데이터를 입력받을 디지털 핀 번호만 확인해주시면 됩니다.

사실 Dallas 라이브러리는 필수는 아닙니다. One Wire 라이브러리만 있어도 계산으로 값을 뽑아낼 수 있습니다. 아래 링크를 통해 소스를 받아보실 수 있습니다.

http://bildr.org/2011/07/ds18b20-arduino/

 

 

4. TMP36

 

이게 복잡하다 느껴지시는 분은 TMP36 모듈을 구입하시길 바랍니다. 이건 디지털 신호가 아니라 온도의 변화를 전압의 변화로 바꿔줍니다. 아두이노의 Analog 핀에 연결해서 변화된 전압을 읽으면 간단한 산수로 온도를 계산해 낼 수 있습니다.

Temp °C = 100*(reading in V) – 50

다만 TMP36 모듈은 DS18B20 모듈처럼 긴 방수 케이블 형태로 나오지는 않습니다.

 

TMP36 모듈의 경우 아래와 같이 연결하면 됩니다.

temperature_tmp36pinout

코드는 아래와 같이 스시면 됩니다. 여기서는 A0 핀으로 데이터를 받는 경우입니다.

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

2 thoughts on “방수 온도센서 (수조용) DS18B20

    치우이노

    (2015년 4월 1일 - 6:58 오전)

    먼지가 많은 곳에서 사용할 수 있는 습도센서는 없을까요?^^

      TORTUGA

      TORTUGA

      (2015년 4월 7일 - 10:19 오전)

      아직 습도센서가 방진, 방수 되는건 못봤습니다;;;

댓글 남기기

이메일은 공개되지 않습니다.