Arduino와 DHTxx 온도 습도 센서 인터페이스

문제를 제거하기 위해 도구를 사용해보십시오





이 기사에서는 온도 및 습도 측정에 사용되는 DHTxx 시리즈 센서를 살펴 보겠습니다. 두 기능 모두 하나의 모듈에 통합되어 있습니다.

프로젝트에 가장 적합한 센서를 선택할 수 있도록 사양을 확인하고 마지막으로 arduino와 인터페이스하고 arduino IDE 소프트웨어의 직렬 모니터에서 값을 읽을 것입니다.



DHTxx는 두 개의 시리즈 DHT11 및 DHT22로 구성됩니다. 그들 사이의 주요 차이점은 사양과 비용입니다. DHT11은 로우 엔드 센서이고 DHT22는 하이 엔드 센서입니다. DHT22는 DHT11보다 비싸지 만 프로젝트를 진지하게 측정하지 않는 한 취미 프로젝트에는 저가형이 충분합니다.

DHTxx는 4 핀 장치 중 하나가 NC이거나 연결되지 않았으므로 3 핀만 사용하겠습니다. 그중 2 개는 공급 핀이고 나머지 1 개는 출력 핀입니다. 센서는 단순 해 보일 수 있지만이를 처리하려면 라이브러리가 필요합니다.



센서는 서미스터, 습도 감지 장치 및 모듈에 내장 된 마이크로 컨트롤러로 구성됩니다. 사양은 다음과 같습니다.

DHT11 :
• 작동 전압 범위는 3 ~ 5V입니다.
• 최대 소비 전류는 2.5mA입니다.
• 20 % ~ 80 %-/ + 5 % 정확도의 습도를 측정 할 수 있습니다.
• 섭씨 0 ~ 50도 +/- 2 % 정확도의 온도를 측정 할 수 있습니다.
• 1 초마다 값을 새로 고칩니다.
• 크기는 15.5mm x 12mm x 5.5mm입니다.

DHT22 :
• 작동 전압은 3 ~ 5V입니다.
• 최대 소비 전류는 2.5mA입니다.
• 0 % ~ 100 % 2-5 % 정확도의 습도를 측정 할 수 있습니다.
• 섭씨 -40 ~ +125도 +/- 0.5 % 정확도의 온도를 측정 할 수 있습니다.
• 1 초마다 두 번 값을 새로 고칩니다.
• 크기는 15.1mm x 25mm x 7.7mm입니다.
위의 원시 사양에서 프로젝트에 가장 적합한 사양을 선택할 수 있습니다.

DHT11 온도 습도 센서

데이터 핀은 항상 4.7K ~ 10K의 풀업 저항과 연결되어야합니다. 위에 설명 된 센서는 제거 된 NC 핀과 풀업 저항이있는 PCB와 함께 제공됩니다. 그러나 일부 센서에는 이러한 기능이 없으며 풀업 저항이 없으면 arduino로 보내는 판독 값이 치명적인 오류 값이됩니다.

이제 우리는 arduino와 DHT 센서를 인터페이스 할 것입니다. 프로젝트를 진행하기 전에 다음 링크에서 라이브러리 파일을 다운로드하십시오.

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

DHTxx 센서, arduino Uno, USB 케이블 및 PC의 네 가지 구성 요소 만 필요합니다.

프로토 타입에 설명 된대로 arduino의 아날로그 핀에 센서를 삽입하고 코드를 arduino에 덤프하고 직렬 모니터를 열면 판독 값을 볼 수 있습니다.
저자의 프로토 타입 :

Arduino와 DHTxx 온도 습도 센서 인터페이스//----------------------Program developed by R.Girish-------------// #include dht DHT #define DHTxxPIN A1 int p = A0 int n = A2 int ack int f void setup(){ Serial.begin(9600) pinMode(p,OUTPUT) pinMode(n,OUTPUT) } void loop() { digitalWrite(p,1) digitalWrite(n,0) ack=0 int chk = DHT.read11(DHTxxPIN) switch (chk) { case DHTLIB_ERROR_CONNECT: ack=1 break } if(ack==0) { f=DHT.temperature*1.8+32 Serial.print('Temperature(°C) = ') Serial.println(DHT.temperature) Serial.print('Temperature(°F) = ') Serial.print(f) Serial.print(' ') Serial.print('Humidity(%) = ') Serial.println(DHT.humidity) Serial.print(' ') delay(500) } if(ack==1) { Serial.print('NO DATA') Serial.print(' ') delay(500) } } //----------------------Program developed by R.Girish-------------//

직렬 모니터 출력 :




이전 : 핸즈프리 탭 제어를위한이 터치 프리 수도꼭지 회로 만들기 다음 : Arduino를 사용하여 디지털 온도, 습도 측정기 회로 만들기