이 블로그의 요약을 로딩중입니다...
Arduino Uno : DHT Adafruit Library for DHT11 Series
Adafruit 에서 제공되는 DHT.h 라이브러리 사용 방법과 예시를 소개
합니다.DHT11 라이브러리 by Adafruit
DHT11를 사용하기 위한 라이브러리는 여러 가지가 있는 것으로 확인됩니다. 이 중에 Arduino IDE에서 편리하게 검색 후 설치 할 수 있는 Adafruit 라이브러리를 사용하는 방법을 소개하겠습니다. DHT11을 사용하기 위해 아래의 2가지 라이브러리를 설치해야 합니다.
Adafruit Library
- Adafruit Unified Sensor by Adafruit <info@adafruit.com>
- DHT sensor library by Adafruit
라이브러리를 설치하기 위해 Arduino IDE에서 Adafruit Unified Sensor를 검색 후 설치하고, DHT11로 검색하여 DHT sensor Library를 설치합니다.
DHT11 라이브러리 설치
라이브러리 제공 함수
DHT11을 사용하기 위해 #include <DHT.h> 라이브러리를 참조해야 합니다. DHT.h 에서 제공되는 DHT 클래스에서 자주 사용하는 함수는 아래와 같습니다. DHT는 클래스 이름입니다.
- DHT(uint8_t pin, uint8_t type, uint8_t count = 6) : DHT 객체를 생성합니다.
- pin : DHT 연결 핀 번호
- type : 센서 Type으로 DHT11, DHT12, DHT22, DHT21, AM2301 중의 하나
- count : 센서의 갯수
- DHT.begin() : DHT 사용 선언
- float DHT.readTemperature(bool S = fasle, bool force = false) : 화씨, 섭씨 중 선택된 온도 단위 값을 반환
- S : true 입력 시 화씨, false 입력 시 섭씨
- float DHT.converCtoF(float) : 섭씨를 화씨로 반환
- float DHT.converFtoC(float) : 화씨를 섭씨로 반환
- float computeHeatIndex(float temperature, float percentHumidity, bool isFahrenheit = true) : 열파지수 반환
- temperature : 온도 값
- percentHumidity : 습도 값
- isFahrenheit : true 입력 시 화씨, false 입력 시 섭씨
- float readHumidity(bool force = false) : 습도를 %단위로 반환
기온과 습도에 따라 사람이 실제로 느끼는 더위를 나타내는 지수
- 54 이상 : 매우 높음, 지속적으로 노출되면 열사병 위험 매우 높음
- 41 ~ 54 미만 : 높음, 지속적으로 노출된 환경에서 신체활동시 열사병 위험 높음
- 32 ~ 41 미만 : 보통, 지속적으로 노출된 환경에서 신체활동시 열사병 가능성 있음
- 32 미만 : 낮음, 지속적으로 노출된 환경에서 신체활동시 피곤할 수 있음
아두이노 우노로 DHT11 사용하기
회로 구성
아두이노 우노에서 DHT1를 사용하기 위해 아래와 같이 회로를 연결하였습니다. DHT11의 2번 데이터 핀은 D4가 아닌 다른 핀으로 연결해도 사용할 수 있습니다.
코드 작성
아두이노 우노보드를 사용하여 DHT11로부터 섭씨온도 화씨온도, 습도, 열지수를 불러오는 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <DHT.h> #define DATAPIN 4 //DHT11 Datapin Number DHT myDHT11(DATAPIN, DHT11); void setup(){ Serial.begin(115200); Serial.println("DHT11 Start.."); myDHT11.begin(); } void loop(){ float fTempC; float fTempF; float fHumid; float fHeatIndex; fTempC = myDHT11.readTemperature(false); fTempF = myDHT11.readTemperature(true); fHumid = myDHT11.readHumidity(false); fHeatIndex = myDHT11.computeHeatIndex(fTempC,fHumid,false); Serial.print("Temp C : "); Serial.println(fTempC); Serial.print("Temp F : "); Serial.println(fTempF); Serial.print("Humid % : "); Serial.println(fHumid); Serial.print("Headt Index : "); Serial.println(fHeatIndex); Serial.println("================================"); delay(2000); } | cs |
실행 결과
프로그램을 실행하면 시리얼 터미널에서 아래와 같이 온도, 습도, 열화 지수가 출력되는 것을 확인 할 수 있습니다.
마무리
이번 포스트에서는 adafruit 의 DHT Sensor Library를 사용하여 DHT11을 동작하는 방법과 예제를 소개하였습니다. 끝까지 읽어 주셔서 감사합니다.😄
- 열파지수: https://www.kma.go.kr/HELP/basic/help_01_04.jsp [본문으로]
'Embedded > Arduino' 카테고리의 다른 글
아두이노 코딩 : RTC를 사용하여 SD 카드에 로그 기록하기 (DS1302, SD-Card) (0) | 2020.10.06 |
---|---|
아두이노 강좌 #42 SD Card 카드 인식, 파일 쓰기, 파일 읽기 (1) | 2020.09.27 |
아두이노 강좌 #41 SD-Card 주의 사항 및 Cardinfo 예제 사용 방법 (0) | 2020.09.26 |
아두이노 코딩 : DHT11 온도 습도 데이터 I2C Character LCD에 출력하기 (0) | 2020.09.25 |
아두이노 강좌 #40 온습도 센서 DHT11 Adafruit 라이브러리 사용 방법 (2) | 2020.09.24 |
아두이노 강좌 #39 DHT11 사용 방법 및 라이브러리 없이 온도 습도 측정 (0) | 2020.09.22 |
아두이노 코딩 : HC-SR04 로 측정한 거리를 I2C CLCD 에 출력 (0) | 2020.09.21 |
아두이노 강좌 #38 HC-SR04 동작 방식과 사용법 (0) | 2020.09.19 |
아두이노 코딩 : 아두이노 우노로 리모컨 만들기 (0) | 2020.09.11 |