번개애비의 라이프스톼일

ESP32로 온/습도 센싱하기 (DHT11) 본문

IT

ESP32로 온/습도 센싱하기 (DHT11)

번개애비 2020. 1. 17. 14:13

ESP32를 이용하여 온도와 습도를 센싱할 예정임.

센서는 DHT11 이라는 센서를 사용할 예정입니다.

 

 

센서구매 : http://www.devicemart.co.kr/goods/view?no=1313600

 

온습도센서 [DHT11]

Size: 15.5(다리제외) * 12 * 5.5mm, Temperature range: 0-60 ℃, Humidity range: 20-90%RH

www.devicemart.co.kr

예제로 가장많이 사용하는 그런 범용(?)적인 센서입니다.

 

 

센서를 사용하기에 앞서 ESP32의 GPIO핀에 대해서 설명시작!

 

빨간색으로 되어있는 포트들이 실제로 입/출력 목적으로 사용할 수 있는 핀들이다.

나머지 핀들은 Wifi, Pullup, 데이터업로드 등의 목적으로도 사용되는 범용성이 있는 핀들이라

빨간색으로 되어 있는 핀들만 활용하는게 유리합니다.

 

 

이제 연결!

빵판에 위와 같이 연결합니다.

첫번째 단자는 ESP32의 5V단자에 연결

두번째 단자는 4.7K옴의 저항에 연결하고 저항끝단은 GPIO13번에 연결

세번째 단자는 안쓰고

마지막 단자는 GND(-)에 연결

 

 

코딩이라고 하기에 민망한 스케치 시작!

 

#include<DHT.h>     //DHT.h 라이브러리 추가
DHT dht(13, DHT11); //DHT 설정 dht(핀, DHT종류)

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

void loop() {
  delay(200);
  int tem = dht.readTemperature();  //온도 값 정수형 변수 tem에 저장
  int hum = dht.readHumidity();     //습도 값 정수형 변수 hum에 저장
  Serial.print("Temperature :");    //Temperature : 글자 출력
  Serial.print(tem);                //측정된 온도 값 출력
  Serial.print("C ");               //온도C로 표현
  Serial.print("Humidity : ");
  Serial.print(hum);
  Serial.println("% ");             //온도와 동일
}

 

 

IDE에 위와 같이 코드를 입력하면 에러가 발생함.

이는 DHT.h라는 라이브러리가 존재하지 않기 때문인데 아래와 같이 따라하면 라이브러리를 추가할 수 있음.

 

 

 

라이브러리를 추가하고 업로드하면 정상적으로 업로드하는것을 확인할 수 있음.

업로드이후 데이터값을 눈으로 보기 위해서는 시리얼모니터를 실행해줘야 함.

 

 

 

 

 

사전에 코드상에 115200 보드레이트를 지정해줬음으로

모니터에도 115200레이트로 설정해줘야 이상한 외계어가 나타나지 않음.

 

 

 

 

실행결과는 위와 같음.

핫바리 센서라서 정확한 수치는 나타나지 않지만,

실습에 의의를 둠 ㅋㅋㅋ

 

 

와이어링은 요롷케

Comments