본문 바로가기

소프트박스 코딩

소프트박스에서 온도 습도 센서 데이터 확인하기

반응형

소프트박스의 온도·습도센서는 DHT11이라는 센서를 통해 온도와 습도를 측정합니다. 센서를 사용하기 위해서는 라이브러리를 추가해야 합니다. 라이브러리 추가 과정 또한 배워보도록 합시다.


DHT11은 내부에 써미스터(온도감지 소자)와 정전식 습도 센서가 내장되어있는 온도·습도 센서입니다. 써미스터는 온도에 따라 저항 값이 변하는 소자이며, 정전식 습도 센서는 습도에 따라 저항 값이 변하는 소자입니다. 예제에서 사용하는 DHT11 모듈은 총 3개의 핀으로 구성되어 있으며 각각 VCC, GND 그리고 DATA 핀입니다.


소프트박스에서 온도·습도센서의 위치는 아래와 같습니다.


센서의 모양과 센서 연결하는 선의 모양을 보여줍니다.


소프트박스 회로 기판에 연결되어 있는 온도·습도 센서의 실제 연결도 입니다. Fritzing 에서 그린 회로입니다. VCC와 GND를 연결하고 데이터 출력선은 회로 기판의 번호인 2번으로 연결합니다. 소프트박스를 사용하지 않고 실습할 때 아래 그림과 같이 연결하시면 됩니다. 아래에 회로 파일을 첨부합니다. 

온도습도 센서 Fritzing 파일


01-temp.fzz



온도·습도센서로부터 데이터를 받아 씨리얼포트로 출력하는 스케치 코드를 참고하세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "DHT.h"        // DHT.h 라이브러리를 포함한다
#define DHTPIN 2        // DHT핀을 2번으로 정의한다(DATA핀)
#define DHTTYPE DHT11    // DHT타입을 DHT11로 정의한다
 
DHT dht(DHTPIN, DHTTYPE);    // DHT 설정-dht (2, dht11)
 
void setup() {
    Serial.begin(9600);        // 9600 속도로 시리얼 통신을 시작한다
}
 
 
 
void loop() {
    delay(2000);
    int h = dht.readHumidity();        // 변수 h에 습도 값을 저장 
    int t = dht.readTemperature();    // 변수 t에 온도 값을 저장
    Serial.print("Humidity: ");        // 문자열 Humidity: 를 출력한다.
    Serial.print(h);        // 변수 h(습도)를 출력한다.
    Serial.print("%\t");    // %를 출력한다
    Serial.print("Temperature: ");    // 문자열 출력
    Serial.print(t);                //온도데이터 출력
    Serial.println(" C");            //온도 자 표시
}
cs



라이브러리 추가하는 방법


위에 스케치 코드는 라이브러리 파일을 추가하기 전에는 컴파일이 되지 않습니다. 아래 첨부파일 (라이브러리 : DHT11)을 다운로드 받은 후 압축을 풀고 아두이노 스케치가 설치된 폴더의 라이브러리 폴더에 카피합니다. 스케치 코드에서 사용된 DHT11 관련 코드는 기본 내장함수가 아닌 DHT11 라이브러리를 추가하여 사용하는 함수들입니다. DHT11 라이브러리를 추가하지 않으면 컴파일 오류가 발생합니다.


라이브러리를 추가한 후 코드를 업로드하면 시리얼 모니터를 통해 습도와 온도를 확인할 수 있습니다.

반응형