아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

[아두이노 부품] 디지털 온도 센서 알아보기

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

디지털 온도 센서 알아보기

안녕하세요. 아토플래닛의 가현쌤입니다. 오늘의 날씨는 매우 장난이 아니네요. 분명히 봄이었는데 다시 눈이 내리다니, 저번 주에 겨울옷을 정리했으면 큰일 날뻔했어요..>3<  날씨는 추워도 공부하고자 하는 열정은 추워지면 안 되겠죠?! 추위를 불태워버릴 정도로 공부하러 출발해볼까요?
!GO GO!

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

1. 디지털 온도 센서 알아보기

오늘은 디지털 온도 센서에 대해서 알아보도록 하겠습니다. 온습도 센서와 달리, 디지털 온도 센서는 섭씨와 화씨를 모두 구할 수 있는 센서인데요.  측정할 수 있는 온도 범위는 -55도에서  125도까지 측정할 수 있습니다.

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo



디지털 온도 센서는 총 3개의 핀으로 이루어져 있습니다. -로 표시된 핀부터 'GND, VCC, 데이터' 핀으로 연결해주시면 됩니다. 

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

이제 디지털 온도 센서로 온도를 측정할 수 있도록 작성한 코드를 살펴보도록 하겠습니다.

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo


먼저!
oneWire 라이브러리를 추가해주셔야 한답니다. 기존 아두이노 프로그램을 사용하실 경우에 메뉴바의 스케치 버튼을 클릭한 후, 

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

라이브러리 관리에서 'oneWire' 라이브러리를 다운로드해 추가해주시면 됩니다.

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo


 oneWire 라이브러리는 온도를 측정할 때 추가해야 하는 라이브러리로 디지털 온도 센서, 방수형 온도 센서와 같은 센서에서 사용할 수 있습니다.

다음으로는 oneWire 라이브러리의 객체를 설정해야 합니다. 2번 줄의 코드와 같이
 'oneWire dt(2);'와 같이 객체를 설정하면서 디지털 온도 센서와 연결된 핀을 작성하여 설정하도록 합니다. 

setup() 공간으로 넘어가볼까요? 온도의 값을 출력해낼 시리얼 모니터를 사용하기 위해
'Serial.begin(9600);'을 설정하도록 합니다. 만약 시리얼 모니터가 아닌, LCD로 확인하고 싶다면 시리얼 통신에 관한 코드는 지운 후에 LiquidCrystal 라이브러리를 추가하여 LCD에 대해 설정해주시면 된답니다. LCD는 대표적으로 '기본 LCD'와 'LCD_I2C'를 얘기할 수 있는데요, 'LCD_I2C'에 관한 설명은 다음 시간에 하도록 하겠습니다. 다시 디지털 온도 센서로 넘어가봐요!

이제부터는 loop() 공간에서 디지털 온도 센서로 읽어들여온 값을 계산하도록 설정해야 합니다. 먼저 9~13번까지의 코드는 각각의 변수와, 배열의 공간을 설정한 코드입니다.
data와 같은 배열의 경우, 디지털 온도 센서로 읽어들여온 값을 저장하는 공간이라고 생각하시면 됩니다.

20~26번까지의 코드는 디지털 온도 센서의 온도값을 읽어 들여오면서 conversion이 일어나는 코드입니다. conversion은 22번 줄의
'dt.write(0x44, 1);'의 코드로 시작이 됩니다.  
conversion의 경우 온도를 읽어들이기 위한 과정의 시작이라고 생각하시면 됩니다. 

28~30번 줄의
'for(i = 0; i <9; i++){data[i] = dt.read();}'의 코드는 센서에서 읽어들인 값을 data 배열 안에 저장하도록 설정한 코드입니다. 그 후에는 시리얼 모니터에 온도 값 형식으로 출력하기 위해서 32~33번과 같은 연산을 하도록 합니다. 

35~36번 줄의 코드는 시리얼 모니터에 온도 값을 출력하도록 설정한 코드입니다.

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo

시리얼 모니터를 통해 온도의 변화를 살펴보도록 할까요? 동영상을 통해 확인해봅시다. 

디지털 온도 센서를 손으로 잡는 순간 온도가 올라가는게 보이시죠? 다시 손을 때면, 주위의 온도를 측정하여 온도가 다시 내려간답니다. 만약 주위의 온도가 높다면 다시 내려가겠죠?>3<

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo


디지털 온도 센서의 'GND, VCC, 데이터' 핀은 아두이노 보드의 'GND, 5V, 2번' 핀에 연결해주시면 됩니다.

오늘 수업은 어떠셨나요? 이전의 수업보다 코드들이 많아져서 당황하셨을 수도 있습니다. 저 코드를 한 번에 이해하기에는 어렵다고 생각이 돼요. 그렇기 때문에 어디에서 온도값을 저장하고, 계산해서 출력하는지만 간단히만 알고 가셔도 충분히 공부가 될 것이라고 생각이 됩니다. 오늘도 가현쌤과 공부하시느라 고생많으셨구요. 우리 다음 시간에도 또 만나요!

아두이노 디지털 온도센서 - adu-ino dijiteol ondosenseo