본문 바로가기

아두이노(arduino)

아두이노 온습도 센서 종류 및 코드 / 설명

온습도 센서란?

 

온습도센서는 다양한 용도로 사용됩니다. 예를 들어, 기상청에서는 공기 온도와 습도를 측정하여 기상 정보를 수집하고 예보를 제공합니다. 또한, 온습도센서는 건물 내부 환경 모니터링에 사용되며, 공기 질 개선을 위해 건물 내부의 습도와 온도를 제어하는 데에도 사용됩니다.

아두이노와 같은 마이크로컨트롤러를 사용하여 온습도센서를 제어하면, 디지털 또는 아날로그 출력을 통해 현재 온도와 습도 값을 쉽게 읽어 올 수 있습니다. 이 값을 이용하여 다양한 프로젝트를 구현할 수 있습니다. 예를 들어, 습도에 따라 식물의 물을 주는 시스템을 구현하거나, 온도에 따라 환풍기나 에어컨을 제어하는 시스템을 만들 수 있습니다.

더 나아가서, 온습도센서와 다른 센서들을 함께 사용하여 자동화된 스마트 홈 시스템을 만들 수도 있습니다. 예를 들어, 빛 강도, 온도, 습도 등을 측정하여 조명, 에어컨, 난방 등을 자동으로 제어하는 시스템을 만들 수 있습니다. 이러한 스마트 홈 시스템은 편리함과 에너지 효율성 측면에서 많은 장점을 가지고 있습니다.

 

 

 

 

 

온습도 센서 종류

 

온습도 센서는 온습도를 체크하는 범위부터 정확도에 따라 종류 및 가격이 다릅니다.

아래 센서들을 보시고 원하시는 센서들을 선택하시면 됩니다.

 

1. DHT11: 디지털 출력 신호를 제공하는 가장 저렴한 온습도센서입니다. 측정 범위는 온도 -20℃ ~ 60℃, 습도 20% ~ 90%RH이며, 정확도는 온도 ±2℃, 습도 ±5%RH입니다.

 

 

 

 


2. DHT22: 디지털 출력 신호를 제공하는 DHT11보다 더 높은 정확도를 가지고 있습니다. 측정 범위는 온도 -40℃ ~ 80℃, 습도 0% ~ 100%RH이며, 정확도는 온도 ±0.5℃, 습도 ±2%RH입니다.

 

 

 

 


3. SHT10: 아날로그 출력 신호를 제공하는 고성능 온습도센서입니다. 측정 범위는 온도 -40℃ ~ 123.8℃, 습도 0% ~ 100%RH이며, 정확도는 온도 ±0.5℃, 습도 ±4.5%RH입니다.

 

 

 



4. AM2302: 디지털 출력 신호를 제공하는 고성능 온습도센서입니다. 측정 범위는 온도 -40℃ ~ 80℃, 습도 0% ~ 99.9%RH이며, 정확도는 온도 ±0.5℃, 습도 ±2%RH입니다.

 

 



5. BME280: 디지털 출력 신호를 제공하는 고성능 온습도센서입니다. 측정 범위는 온도 -40℃ ~ 85℃, 습도 0% ~ 100%RH이며, 정확도는 온도 ±1℃, 습도 ±3%RH입니다.

 

 

 


6. HTU21D: 디지털 출력 신호를 제공하는 고성능 온습도센서입니다. 측정 범위는 온도 -40℃ ~ 105℃, 습도 0% ~ 100%RH이며, 정확도는 온도 ±0.3℃, 습도 ±2%RH입니다.

 

 



SHT31: 디지털 출력 신호를 제공하는 고성능 온습도센서입니다. 측정 범위는 온도 -40℃ ~ 125℃, 습도 0% ~ 100%RH이며, 정확도는 온도 ±0.2℃, 습도 ±2%RH입니다.

 

 

 

 

 

 

온습도 센서를 이용한 아이디어

 

1. 온습도 자동 제어 시스템

온습도센서를 이용하여 실내 온습도 값을 측정하고, 제어용 소켓에 연결된 에어컨이나 냉난방기 등의 기기를 자동으로 제어하여, 사용자가 설정한 온도와 습도를 유지하도록 합니다.
이러한 시스템을 사용하면 에너지를 절약하고, 사용자의 편의성을 높일 수 있습니다.

 

 

 

 

 


2. 온습도 기반 자동 관수 시스템

온습도센서를 이용하여 화분 안의 토양 습도 값을 측정하고, 물을 자동으로 공급하여 식물을 자동으로 관리할 수 있도록 합니다.
이러한 시스템을 사용하면 식물의 건강을 유지하고, 사용자의 노동 시간을 줄일 수 있습니다.

 

 

 

 

 


3. 온습도 기반 옷장 관리 시스템

온습도센서를 이용하여 옷장 안의 습도와 온도를 측정하고, 이 값을 이용하여 먼지나 습기 등의 문제를 예방할 수 있도록 합니다.
이러한 시스템을 사용하면 옷장 안의 옷이 오래 보존될 수 있으며, 사용자의 건강을 보호할 수 있습니다.

 

 

 

 

 

 


4. 실내 공기 질 모니터링 시스템

온습도센서와 다른 센서들을 함께 사용하여 실내 공기 질을 모니터링하고, 문제가 발생할 경우 경고 메시지를 보내는 시스템을 구현할 수 있습니다.
이러한 시스템을 사용하면 실내 환경을 개선하고, 사용자의 건강을 보호할 수 있습니다.

 

 

 

 

 

온습도 센서 회로도

 

위 회로도에서는 DHT11 센서의 GND 핀을 아두이노의 GND 핀에 연결하고, VCC 핀을 아두이노의 5V 핀에 연결합니다. 그리고 DHT11 센서의 DATA 핀을 아두이노의 D8 핀에 연결합니다.

위와 같이 센서를 연결한 후, 코드를 작성하여 측정값을 읽어올 수 있습니다. 코드에서는 DHT 라이브러리를 사용하여 센서를 쉽게 제어할 수 있습니다.

위 그림에서 보면 온습도센서의 생김새가 조금 다르다는걸 볼 수 있습니다. 위 온습도센서의 경우 핀이 3개이며, 아래것은 4개입니다. 위 온습도센서의 경우 저항이 미리달려있고, 핀의 갯수도 적은 만큼 더 쉽게 설치 및 컨트럴 할 수 있으며 아래의 온습도 센서같은 경우 별도의 저항을 설치해줘야하며 위의 센서보다 조금더 복잡한 회로도로 되어있음을 알 수 있습니다.

 

 

 

온습도 센서 코드

 

 

아래는 DHT11 온습도 센서를 이용한 아두이노 코드 예시입니다.

먼저, 라이브러리를 다운로드하고, 센서를 아두이노 보드에 연결합니다. DHT 라이브러리는 아두이노에서 DHT11, DHT22, AM2302 등 다양한 DHT 센서를 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.

 

 

 

 

#include <DHT.h>   // 어떠한 센서를 사용하느냐에 따라 온습도센서 라이브러리가 달라질 수 있습니다.

#define DHTPIN 8       // 센서 핀 번호
#define DHTTYPE DHT11  // 센서 타입

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);  // 시리얼 통신 시작
  dht.begin();         // 센서 초기화
}

void loop() {
  delay(2000); // 2초마다 측정
  float humidity = dht.readHumidity(); // 습도 측정
  float temperature = dht.readTemperature(); // 온도 측정
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print("%, Temperature: ");
  Serial.print(temperature);
  Serial.println("°C");
}