ESP32

ESP32 Arduino: Getting humidity measurements from a DHT22 sensor

기하 2021. 8. 16. 04:27

이 튜토리얼에서는 ESP32에서 실행되는 Arduino 코어를 사용하여 DHT22 센서에서 습도 측정값을 얻는 방법을 확인할 것입니다. 센서와의 상호 작용을 더 쉽게 하기 위해  필요한 모든 추가 전자 장치가 있고 연결을 용이하게 하는 배선 터미널을 노출하는 DFRobot DHT22 모듈  사용  하고 있습니다.

 


소개

이 튜토리얼에서는 ESP32에서 실행되는 Arduino 코어를 사용하여 DHT22 센서에서 습도 측정값을 얻는 방법을 확인할 것입니다.

DHT22는 온도 및 습도 센서이며 이전 자습서에서  온도 측정을 얻는 방법을 확인할 수 있습니다 .

  라이브러리를 사용 하여 장치와 상호 작용합니다. Arduino IDE 라이브러리 관리자를 사용하여 설치할 수 있으며 설치 절차는 언급된 게시물 에 자세히 설명되어 있습니다.

ESP32를 DHT22에 연결하는 데 필요한 개략도는 언급된 이전 게시물도 참조하십시오.

센서와의 상호 작용을 더 쉽게 하기 위해  필요한 모든 추가 전자 장치가 있고 연결을 용이하게 하는 배선 터미널을 노출하는 DFRobot DHT22 모듈  사용  하고 있습니다.

테스트는 ESP32 개발 보드에  통합된  DFRobot의 ESP32 모듈을 사용하여 수행되었습니다  .


코드

이 튜토리얼의 코드는 정말 간단하며 온도 측정값을 얻기 위해 수행한 것과 거의 유사합니다.

가장 먼저 해야 할 일은 DHT 라이브러리를 포함하는 것이므로 마이크로컨트롤러와 데이터를 교환하는 데 사용하는 단일 와이어 프로토콜에 대해 걱정할 필요 없이 센서와 상호 작용할 수 있는 모든 상위 수준 기능에 액세스할 수 있습니다.

1 #include "DHTesp.h"

그런 다음 온도 및 습도 측정을 모두 얻는 데 필요한 메서드를 노출하는 DHTesp 클래스의 개체가 필요합니다 . 우리의 특정한 경우, 우리는 습도를 얻기 위해 그것을 사용할 것입니다.

1 DHTesp dht;

Arduino 설정으로 이동하여 먼저 직렬 연결을 열어 측정값을 출력하고 나중에 Arduino IDE 직렬 모니터를 사용하여 측정값을 가져옵니다.

1 Serial.begin(115200);

그 외에도 센서 인터페이스를 초기화하고 센서가 연결된 ESP32 핀을 지정해야 합니다. 이전에 생성  dht 객체  setup  메소드를 호출 하여 핀 번호를 입력으로 전달 함으로써 이를 수행 합니다. 저는 27번 핀을 사용하고 있지만 다른 것으로 시도해 볼 수 있습니다.

설정 함수는 우리가 사용하는 센서를 지정하는 열거된 값을 선택적 인수로 사용할 수 있습니다(라이브러리는 여러 센서를 지원함). 그럼에도 불구하고 이 인수를 전달하지 않으면 함수가 사용된 센서를 자동으로 감지하려고 시도합니다.

1 dht.setup(27);

Arduino 루프로 이동하여 주기적으로 습도 측정값을 가져와 직렬 인터페이스에 인쇄합니다.

습도를 측정하려면 dh 객체 에서 getHumidity 메서드 를 호출하기만 하면  됩니다. 이 함수 호출은 인수를 사용하지 않고 부동 소수점으로 습도를 백분율로 반환합니다.

1 float humidity = dht.getHumidity();

그런 다음 값을 직렬 인터페이스에 인쇄하고 다음 측정을 받기 전에 10초 지연합니다.

1
2

4
Serial.print("Humidity: ");
Serial.println(humidity);


delay(10000);

최종 소스 코드는 아래에서 볼 수 있습니다.

1
2

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "DHTesp.h"


DHTesp dht;


void setup()
{
  Serial.begin(115200);


  dht.setup(27);
}


void loop()
{


  float humidity = dht.getHumidity();


  Serial.print("Humidity: ");
  Serial.println(humidity);


  delay(10000);


}


코드 테스트

코드를 테스트하려면 이전 게시물 의 회로도에 따라 모든 구성 요소를 배선한 후 코드를 컴파일하고 장치에 업로드하기만 하면 됩니다 .

절차가 완료되면 Arduino IDE 직렬 모니터를 엽니다. 여기에서 측정값이 인쇄되는 것을 보여주는 그림 1과 유사한 출력이 있어야 합니다.

그림 1 – 프로그램의 출력.