안녕하세요 오늘은 아두이노 온습도 센서(DHT11)로
온도와 습도를 측정하는 방법을 알아보겠습니다.
센서의 모습은 아래 사진과 같습니다
부품 목록
회로도
브레드 보드
1. 오렌지보드의 5V핀을 브레드보드의 +버스에 연결합니다.
2. 오렌지보드의 GND핀을 브레드보드의 -버스에 연결합니다.
3. 온습도센서 모듈을 그림과 같이 세로로 꽂습니다.
4. 온습도센서 모듈의 1번째 핀을 브레드보드의+버스에 연결합니다.
5. 온습도센서 모듈의 2번째 핀을 오렌지보드 D2번핀에 연결합니다.
6. 온습도센서 모듈의 4번째 핀을 브레드보드의 -버스에 연결합니다.
7. I2C_LCD의 GND핀을 브레드보드 -버스에 연결합니다.
8. I2C_LCD의 VCC핀을 브레드보드 +버스에 연결합니다.
9. I2C_LCD의 SDA핀을 아날로그 A4번핀에 연결합니다.
10. I2C_LCD의 SCL핀을 아날로그 A5번핀에 연결합니다.
라이브러리 설치하기
1. 스케치 -> 라이브러리 포함하기 -> 라이브러리 관리...' 를 눌러줍니다.
2. 라이브러리 매니저 창이 나오면 DHT11을 검색 후 DHT sensor library by Adafruit를 설치해 줍니다.
3. 라이브러리 매니저 창에서 adafruit unified sensor를 검색 후 Adafruit Unified Sensor by Adafruit를 설치해 줍니다.
소스코드
// DHT11 센서를 쉽게 제어하기 위한 라이브러리를 추가해줍니다.
#include "DHT.h"
// I2C LCD를 쉽게 제어하기 위한 라이브러리를 추가해줍니다.
#include <LiquidCrystal_I2C.h>
// 온습도 센서를 디지털 2번 핀에 연결합니다.
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// 16X2 크기의 LCD 객체를 생성합니다.
// 만약 LCD 화면이 나오지 않으면 0x3F 대신 0x27를 넣어주세요.
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void setup() {
Serial.begin(9600);
dht.begin();
// LCD를 초기화 합니다.
lcd.init();
// LCD의 백라이트를 켜줍니다.
lcd.backlight();
}
void loop() {
// 습도와 온도값을 측정하고, 제대로 측정되었는지 확인해줍니다.
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature) ) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// 온도와 습도값을 시리얼 모니터에 출력해 줍니다.
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" %");
// LCD에 출력할 습도 메세지를 만듭니다.
String humi = "Humi : ";
humi += (String)humidity;
humi += "%";
// LCD에 출력할 온도 메세지를 만듭니다.
String temp = "Temp : ";
temp += (String)temperature;
temp += "C";
// 첫번째 줄, 첫번째 칸부터 "Humi = 000%" 를 출력해 줍니다.
lcd.setCursor(0, 0);
lcd.print(humi);
// 두번째 줄, 첫번째 칸부터 "temp = 000C" 를 출력해 줍니다.
lcd.setCursor(0, 1);
lcd.print(temp);
delay(1500);
}
결과
이렇게 온도와 습도가 실시간으로 표시가 됩니다!!
이상입니다!
'프로그래밍 > 아두이노[Arduino]&라즈베리파이[Raspberry Pi]' 카테고리의 다른 글
[아두이노] 빗물감지센서 모듈을 사용하여 LCD에 센서값을 표시하기 + LED 제어 (0) | 2019.04.26 |
---|---|
[아두이노] 수위센서[Water sensor]모듈을 사용하여 LCD에 센서값을 표시하기 + LED 제어 (0) | 2019.04.26 |
[아두이노] 1채널 릴레이(Relay) 모듈 간단 사용법(LED 제어) (0) | 2019.04.25 |
[아두이노]스위치 모듈과 모터 드라이브로 미니 워터 펌프 사용하기 (0) | 2019.04.25 |
[아두이노] 스위치 모듈을 이용한 팬 모듈 제어하기 (0) | 2019.04.25 |