[Arduino Uno] WizFi250과 Xively를 이용하여 온도 센서 모니터링 하기 (1/2)

2014. 2. 18. 20:432018년 이전 관심사/개발관련

반응형



Step 1: TMP36(온도센서)을 이용한 실내 온도 측정 예제


1. H/W 구성

  • 온도센서 : TMP36


2. S/W 구성


아두이노의 ADC는 아날로그로 입력되는 값을 0 ~ 1023의 디지털 값으로 변환하여 출력합니다.

때문에 TMP36으로 아날로그 값을 추출하기 위해서는, 입력되는 디지털 값을 다시 아날로그인 Vout 값으로 변환 해야 합니다,


우선, 출력된 ADC 값을 Voltage 값으로 변경 한 후, Voltage 값을 이용하여 썹시 온도를 계산 합니다.


TMP36에 5V를 연결 한 경우, 아래 공식으로 ADC 값을 Voltage 로 변환 하 수 있습니다.

// TMP36에 5V를 연결한 경우

Voltage(mV) = ADC * 5000 / 1024


// TMP36에 3.3V를 연결한 경우

Voltage(mV) = ADC * 3300/1024



Voltage 값을 온도로 변환

썹시 온도 = [(mV) -500] / 10



int sensorPin = 0;


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  int sensor_val = analogRead(sensorPin);

  

  float voltage = sensor_val * 5.0;  // if connect to 3.3V, you have to set 3.3

  voltage /= 1024.0;

  

  Serial.print(voltage);

  Serial.println(" volts");

  

  // 10mV/'C로 단위를 바꾸기 위해 500mV를 뺀 다음 100을 곱 함

  float tempC = (voltage - 0.5) * 100;  

  

  Serial.print(tempC);

  Serial.println( "degree C");

  

  float tempF = (tempC * 9.0 / 5.0) + 32.0;

  Serial.print(tempF);

  Serial.println( "degree F");

  

  delay(1000);

}




다음 포스팅에서는 WizFi250 Wi-Fi 모듈을 이용하여, 센싱한 온도 값을 클라우드 서버에 전송하는 예제를 포스팅 하겠습니다.



반응형