[실습] 온습도 센서 이용한 온습도 측정
필기자
2024-05-20 14:56
2,258
0
본문
ASAIR-DHT22 온습도 센서를 이용한 온습도 측정
목 적
- 라즈베리파이에 온습도 센서 사용법을 이해한다.
1. ASAIR-DHT22 온습도 센서 모듈 설치
2. ASAIR-DHT22 온습도 센서 모듈 구동
1. ASAIR-DHT22 온습도 센서 모듈 설치
- ASAIR-DHT22 온습도 센서
- ASAIR-DHT22 센서는 온도와 습도를 측정할 수 있는 디지털 센서
- 높은 정밀도와 안정성을 제공하며, 라즈베리파이와 같은 마이크로컨트롤러와 쉽게 통합할 수 있음.
- 내장된 디지털 신호 처리 기능으로 온도와 습도 데이터를 정확하게 제공함.
- 홈 자동화, 날씨 스테이션, 스마트 농업 등 다양한 응용 분야에 사용됨.
- 기본 사양
- 전원 공급: 3.3V ~ 5.5V DC
- 소비 전류: 최대 1.5mA
- 온도 측정 범위: -40°C ~ 80°C
- 온도 정확도: ±0.5°C
- 습도 측정 범위: 0-100% RH
- 습도 정확도: ±2%
- 응답 시간:
- 습도: 5-30초 (63% 응답 기준)
- 온도: 약 2초
- GPIO 연결
- GND : Ground 접지(핀 14)
- VCC : 5V Power(핀 2)
- DATA : GPIO 18(핀 12)
- NC : 사용하지 않음
- ASAIR-DHT22 센서와 같은 온습도 센서를 연결할 때 GPIO 18(PCM_CLK)와 GPIO 4(GPCLK0)를 사용하는 이유
- 두 핀 모두 기본적으로 특정 기능(PCM 클럭 또는 일반 목적 클럭)을 가지고 있지만 기능이 필요하지 않은 경우 일반 GPIO 핀으로 많이 사용됨.
- 다른 GPIO 핀들의 I2C, SPI, UART 등과 같은 통신 기능을 가지고 있지 않아, 이런 특정 통신 기능과 충돌하지 않음.
- NC 핀이란
- NC (Not Connected) 핀은 전자 부품이나 회로에서 사용되지 않는 핀을 의미
- NC 핀의 목적 및 역할
- 회로 설계 시 표준화된 핀 배열을 유지하면서 특정 핀을 사용하지 않도록 할 수 있음.
- 미래의 업그레이드나 다른 버전에서 추가 기능을 위해 남겨둔 핀일 수 있음.
- 일부 회로에서는 특정 핀이 사용되지 않음으로써 다른 회로에 간섭을 줄일 수 있음.
- NC 핀을 사용하지 않는 이유
- NC 핀은 물리적으로 존재하지만, 내부적으로 회로에 연결되지 않았기 때문에 어떤 기능도 수행하지 않음.
- 회로를 단순하게 유지하기 위해 사용하지 않는 핀은 무시하는 것이 일반적임.
- NC 핀을 명확하게 구분해두면 다른 핀과 혼동을 피할 수 있음.
2. ASAIR-DHT22 온습도 센서 모듈 구동
- 라즈베리파이 가상환경에서 파이썬 코딩
- VSCode에서 dht22_sensor.py 파일 생성
- DHT22 센서에서 온도와 습도 데이터를 읽어 주기적으로 출력하는 코드 실습
#adafruit-circuitpython-dht 라이브러리 설치
pip install adafruit-circuitpython-dht
import time
import board
import adafruit_dht
# DHT22 센서 설정 (GPIO 18)
dht_device = adafruit_dht.DHT22(board.D18)
while True:
try:
# 센서에서 온도와 습도 읽기
temperature = dht_device.temperature
humidity = dht_device.humidity
# 데이터 출력
if humidity is not None and temperature is not None:
print(f'온도: {temperature:.1f}°C')
print(f'습도: {humidity:.1f}%')
else:
print('읽기 실패. 데이터가 없습니다.')
except RuntimeError as error:
# 센서에서 데이터를 읽는 중 오류 발생 처리
print(error.args[0])
except Exception as error:
dht_device.exit()
raise error
# 10초 동안 대기
time.sleep(10)
- 10초 대기 시간을 갖는 이유
- DHT22 센서의 제한 사항으로 인해 최소 2초의 간격을 두고 데이터를 요청해야 하며, 너무 자주 데이터를 요청하면 센서가 정확한 값을 제공하지 못함.
- 자주 데이터를 요청하면 전력 소비가 증가함으로, 10초 간격으로 데이터를 요청함으로써 전력 소비를 줄일 수 있음.
- 온도와 습도는 일반적으로 빠르게 변하지 않으므로, 10초 간격으로 데이터를 요청하면 실시간 모니터링에 충분히 적절한 데이터를 얻을 수 있음.
댓글목록0