🧪 예제 따라하기메뉴
코딩하기 · 예제 따라하기

기기 코딩 25 / 31

온습도계 만들기

DHT11 센서로 온도와 습도를 재서 2초마다 시리얼 모니터에 보여 줘요.

  • 준비물: DHT11 온습도 센서 모듈(다리 3개) 1개, 점퍼선 3개
  • 라이브러리: 도구 → 라이브러리 관리에서 'DHT sensor library'(Adafruit)를 설치해요. 함께 설치할지 물으면 '모두 설치'를 눌러요.
연결 표 (모듈에 적힌 글자 기준)
센서 다리아두이노 UnoESP32
S 또는 DATA (신호)4번GPIO 4
+ 또는 VCC5V3V3
− 또는 GNDGNDGND
코드
// 온습도계
#include <DHT.h>← 설치한 DHT 라이브러리 불러오기
const int DHT_PIN = 4;← Uno·ESP32 모두 4번
DHT dht(DHT_PIN, DHT11);← 4번 핀에 DHT11 센서가 있어요
void setup() {
Serial.begin(115200);
dht.begin();← 센서 준비
}
void loop() {
delay(2000);← DHT11은 2초에 한 번만 읽을 수 있어요
float t = dht.readTemperature();← 온도 (°C). float = 소수점 있는 숫자
float h = dht.readHumidity();← 습도 (%)
if (isnan(t) || isnan(h)) {← 읽기에 실패하면 (숫자가 아니면)
Serial.println("센서를 읽지 못했어요. 연결을 확인해 주세요.");
return;← 이번 반복은 여기서 끝
}
Serial.print("온도: ");
Serial.print(t);
Serial.print("°C 습도: ");
Serial.print(h);
Serial.println("%");
}
  • 확인: 시리얼 모니터(115200)에 2초마다 '온도: 24.00°C 습도: 41.00%'처럼 나와요.
  • 센서에 입김을 불면 습도가 올라가요.
  • 다리가 4개인 센서(모듈이 아닌 것)는 신호선과 +사이에 10kΩ 저항이 하나 더 필요해요.

바꿔 보기: ① 28°C가 넘으면 빨간 LED 켜기 ② 습도가 높으면 부저로 알림 ③ 시리얼 플로터로 온도 그래프 보기

💬 막히면 도우미에게 물어보세요

오류가 나면 오류 문구를 그대로 붙여 넣으면 더 정확해요. 예: “온습도계에서 '센서를 읽지 못했어요'만 계속 나와요”