Chapter 9: 온습도 센서로 교실 환경 측정하기¶
🎯 이 장에서 배우는 것¶
- [ ] DHT11 온습도 센서를 연결하고 데이터를 읽을 수 있다
- [ ] 센서 라이브러리를 설치하고 사용할 수 있다
- [ ] f-string으로 측정값을 깔끔하게 출력할 수 있다
⏱️ 예상 학습 시간: 약 45분
📚 핵심 개념¶
개념: 라이브러리 (Library)¶
"라이브러리는 미리 만들어진 도구 상자예요!" 🧰
요리할 때 직접 칼을 만들지 않고 사서 쓰듯이, 코딩도 누군가 만들어둔 기능을 가져다 씁니다.
flowchart LR
A[😫 직접 만들기] --> B[센서 통신 코드 500줄...]
C[😊 라이브러리 사용] --> D[import 한 줄로 끝!]
style C fill:#e8f5e9,stroke:#4caf50
style D fill:#e8f5e9,stroke:#4caf50
DHT 라이브러리: 온습도 센서와 대화하는 복잡한 코드를 미리 만들어둔 도구
🔨 따라하기¶
Step 1: 라이브러리 설치하기¶
Thonny 하단의 Shell에서 입력:
from machine import Pin
import dht
✅ 체크포인트: 에러 없이 실행되면 성공!
Step 2: 센서 연결하고 측정하기¶
회로 연결: | DHT11 핀 | 피코 연결 | |---------|----------| | VCC (+) | 3.3V | | DATA | GP15 | | GND (-) | GND |
코드:
from machine import Pin
import dht
import time
sensor = dht.DHT11(Pin(15)) # GP15에 연결
while True:
sensor.measure() # 측정!
temp = sensor.temperature() # 온도 읽기
hum = sensor.humidity() # 습도 읽기
print(f"🌡️ 온도: {temp}°C, 💧 습도: {hum}%")
time.sleep(2)
실행 결과:
🌡️ 온도: 24°C, 💧 습도: 55%
🌡️ 온도: 24°C, 💧 습도: 56%
💡 f-string 팁:
f"텍스트 {변수}"형식으로 변수를 문장 안에 쏙!
📝 전체 코드¶
from machine import Pin
import dht
import time
sensor = dht.DHT11(Pin(15))
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print(f"🌡️ 온도: {temp}°C, 💧 습도: {hum}%")
time.sleep(2)
⚠️ 주의할 점¶
- 측정 간격은 2초 이상! - DHT11은 느린 센서예요
sensor.measure()먼저! - 이걸 호출해야 새 값을 읽어요
✅ 점검하기¶
- 라이브러리는 왜 사용하나요?
정답 확인
복잡한 코드를 직접 작성하지 않고 미리 만들어진 기능을 가져다 쓰기 위해서입니다.f"온도: {temp}도"에서{temp}의 역할은?
정답 확인
변수 temp의 값이 그 자리에 들어갑니다.🔗 다음 장 미리보기¶
측정한 온습도를 LED로 표시해볼까요? 🚦
다음 장에서는 온도가 높으면 빨간 LED, 쾌적하면 초록 LED가 켜지도록 만들어봐요!