반응형
안녕하세요! 미래문 입니다.
이번에는 온/습도계 센서(Temperature And Humidity Sensor)를 이용하여 주변 공간의 온도와 습도를 측정하는
예제를 실행해 보도록 하겠습니다.
일단 예제에서 제가 사용할 모듈은 DHT22 모듈 입니다.
DHT22 의 데이터 시트는 아래에 있습니다.
Digital humidity and temperature sensor AM2302.pdf0.40MB
먼저 회로배치를 살펴보도록 하겠습니다.
dht22 센서에는 회로도에서 보는 방향대로 왼쪽부터
Vcc
Data
NC(Not Connect)
GND
로 연결하도록 되어있습니다.
현재 회로배치에서는 data 를 7번 포트에 연결했으며,
저항은 꼭 10K옴 저항을 연결하셔야 합니다.
이번 예제를 사용하기 위해서는 dht센서 라이브러리를 다운로드 받으셔야 합니다.
GitHub에서 받으실 수 있으며, 최신버전으로 다운로드 하시길 권장드립니다.
GitHub DHT센서 라이브러리 링크
다운로드 하신 후, Zip파일 안에 들어있는 폴더를 그대로
아두이노폴더 밑에 있는 libraries 폴더에 넣으시면 됩니다.
아두이노 프로그램이 켜져있는 상태에서 이 작업을 수행하셨다면,
아두이노 프로그램를 재시작해주세요.
자, 다음은 코드 입니다.
#include "DHT.h" // DHT센서 라이브러리를 include합니다.
#define DHTPIN 7 // DATA로 받을 포트번호를 7로 정합니다.
#define DHTTYPE DHT22 // DHT22로 DHT 센서 타입을 정합니다.
DHT dht(DHTPIN, DHTTYPE); // 입력된 포트번호와 센서타입을 통해 객체를 생성합니다.
void setup() {
Serial.begin(9600); // 시리얼 통신을 9600 주파수로 시작합니다.
Serial.println("DHTxx test!");
dht.begin(); // DHT센서를 시작합니다.
}
void loop() {
delay(2000); // 2초간 멈춥니다.
float humidity = dht.readHumidity(); // 습도값을 humidity에 저장합니다.
float temp_C = dht.readTemperature(); // 섭씨 온도 값을 temp_C에 저장합니다.
float temp_F = dht.readTemperature(true); // 화씨 온도 값을 temp_F에 저장합니다.
// 만약 위에서 측정한 값중 Nan값이 측정되면 오류를 출력하고 프로그램을 종료합니다.
if (isnan(humidity) || isnan(temp_C) || isnan(temp_F)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float Farenheit = dht.computeHeatIndex(temp_F, humidity); // 화씨 열지수(체감온도)를 계산합니다.
float Celcius = dht.computeHeatIndex(temp_C, humidity, false); // 섭씨 열지수(체감온도)를 계산합니다.
// 습도를 출력합니다.
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
// 온도를 출력합니다.
Serial.print("Temperature: ");
// 섭씨
Serial.print(temp_C);
Serial.print(" *C ");
// 화씨
Serial.print(temp_F);
Serial.print(" *F\t");
// 열지수(체감온도)를 출력합니다.
Serial.print("Heat index: ");
// 섭씨
Serial.print(Celcius);
Serial.print(" *C ");
// 화씨
Serial.print(Farenheit);
Serial.println(" *F");
}
결과는 다음과 같습니다.
Humidity: 67.3 % Temperature: 26.2 *C 79.16 *F Heat index: 27.1 *C 80.78 *C
Humidity: 67.3 % Temperature: 26.2 *C 79.16 *F Heat index: 27.1 *C 80.78 *C
Humidity: 65.6 % Temperature: 26.3 *C 79.34 *F Heat index: 26.8 *C 80.24 *C
감사합니다. 도움이 되셨다면 공감버튼 클릭! 한번만 부탁드릴게요!
반응형
'IT > IoT' 카테고리의 다른 글
[ 아두이노 ] 아두이노로 LED ON/OFF 해보기 (0) | 2022.10.11 |
---|
댓글