아두이노/아두이노 일반

[아두이노] TMP36 으로 온도계 만들기

아크리엑터 2020. 5. 11. 23:17
반응형

여름철 차량의 온도가 아주 높이 올라간다.  70도 이상도 올라가기 때문에 라이터, 휴대폰 같은 터지기 쉬운 것은 놔두지 않도록 얘기를 한다. 위험하다는 것은 익히 알지만, 어쩔수 없이 차량에 전자 제품을 놔두어야 만하는 경우에는 어떻게 해야할 까. 

차량용 블랙박스 배터리를 조수석 바닥에 놔두도록 하고 있고, 물론, 리튬이온과 다른 리튬인산철 배터리는 폭발 및 인화에 강한 제품이지만... ^^

미러링크를 위해서 차량 내에 언제나 안쓰는 휴대폰을 연결해두려고 하고 있다. 배터리를 빼고 사용하고픈 마음이 있지만, 돌아가는 폰의 배터리를 뺐을 경우, 배터리 우선 모드로 작동하는 폰이라면 켜지지 않으니 낭패이고, 어떤 상황이 생길지 몰라서 그냥 배터리 채로 차에 두는 생각을 하고 있다.

다른 계절은 문제가 없지만, 뜨거운 여름이 왔을 때 터지는 사고가 나지는 않을까 하는 생각에 차량 내의 온도를 제어보려고 한다.

차량내에서 종일 있지 못하기에 온도계를 만들어서 넣어두고 몇 분 단위로 측정하도록 하고 나중에 그 결과를 확인하려고 한다. 최종 모습은 그렇다. 

 

위의 목표를 위해 진행하기에 앞서, 우선 온도 측정하는 방법을 알아본다.  온도 측정하는 센서는 다양한 센서들이 있지만, 좀 비싼 DTH11, DTH22 등과 같은 조금 비싼 모듈과 TMP36, LM35와 같은 트랜지스터 모양의 싼 부품도 있다. 약간의 오차(규격서를 보면 2도의 오차가 있다고 되어있다.)를 감안하고 쉽게 만들기 위해 전에 사두었던 TMP36으로 온도 측정을 해보려 한다.

 

부품

   - TMP36GZ : www.aliexpress.com/item/33024283729.html (0.8달러)

 

 

 

브레드보드

다른 것 연결할 것이 없다. 그냥 정보를 읽어서 출력하면 된다.  TMP36을 전원을 인가하고, 온도 측정하는 것은 A0번 핀에 연결하였다.

TMP36의 전원을 거꾸로 입력하면 부품이 아주 뜨거워지면서 고장난다. 꼭 전원을 넣을 때는 꼭 주의해야 한다.

 

 

 

 

 

회로도

회로도는 대충 그렸는데, 좀 복잡하게 보인다. 아주 간단한 것인데, 복잡하게 그린듯 하다.

 

 

예제 소스

 

TMP36 센서는 영하 40도에서 영상125도 까지 측정이 가능하다.

0도일 때는 0.5V를 출력하며, 1도의 온도가 올라갈 때마다 10mV (0.01V)만큼씩 증가한다.  즉, 10도 올라가면 0.1V 올라간다. 센서마다 특성이 다르기 때문에 센서에 맞도록 다르게 코딩이 되어야 한다. 

 

#define PIN_TMP  A0
#define COUNT    64

void setup() {
  Serial.begin(9600);

  pinMode(PIN_TMP, INPUT);
}

void loop() {
  int value;
  unsigned int total;
  float voltage, temp;
  
  total = 0;

  for (int i=0; i < COUNT; i++) {
    total += analogRead(PIN_TMP);       // 온도센서 값 얻기
    delay(1);
  }

  total /= COUNT;
  voltage = total * 5.0 / 1024.0;      // 전압값으로 변환
  temp    = (voltage - 0.5) * 100;      // 온도로 변

  Serial.print("value: ");
  Serial.print(total);
  Serial.print("  voltage: ");
  Serial.print(voltage);
  Serial.print("  temp: ");
  Serial.println(temp);

  delay(1000);
}

 

실행 화면

 

 

위의 보드는 ProMini를 사용한 것으로 설명했는데, 아래의 사진은 UNO에서 실행한 화면이다.

 

 

https://youtu.be/iOBwPOlE9cE 

 

다음에는 LCD연결하는 방법을 정리하고, 온도 측정한 것을 누적시키는 것을 해보려 한다. 나중에 계속....

반응형