안녕하세요 땜블리 입니다.
라즈베리파이 피코 베이직 트레이닝 보드를 이용한 DHT11 제어실습을 진행 하겠습니다.
베이직 트레이닝 보드는 아래에서 확인이 가능합니다.
1) DHT11 제어 구동 원리
(1) 동작설명
DHT11 모양 및 구성
DHT11은 4핀으로 되어있으며 사용하는 핀은 3개입니다.
스펙은3.3V~5.5V까지 사용할 수 있으며 습도 범위는 5~95%RH 온도는 –20~60도 측정됩니다
통신 방식은 1-wired 통신으로 신호핀 하나로 출력과 입력을 모두 사용하는 방식입니다.
MCU에서는 18ms의 Trigger 신호를 Ative Low로 출력하게 되면 보내주시면 이후부터는 40bit의 데이터가 입력이 됩니다.
입력되는 신호의 0과 1의 구분은 Pulse width로 결정을 합니다. 1개의 구형파 주기에서 high 구간이 26~28 us라면 0으로 인식하고 70us라면 1로 인식합니다.
아래 표는 40bit에 대한 Packet 구조
습도 센싱 원리
습도 감지 구성 요소에는 수분 보유 기판이 사이에 끼인 두 개의 전극이 있습니다.
이온은 수증기가 기판에 흡수됨에 따라 기판에서 방출되며, 이는 다시 전극 사이의 전도도를 증가시킵니다.
두 전극 사이의 저항 변화는 상대 습도에 비례합니다.
상대 습도가 높으면 전극 사이의 저항이 감소하고 상대 습도가 낮으면 전극 사이의 저항이 증가합니다.
온도 측정 원리
DHT11에는 온도를 측정하기 위한 NTC/서미스터도 포함되어 있습니다. 서미스터는 온도에 따라 저항이 크게 변하는 열 저항기입니다. "NTC"라는 용어는 "음의 온도 계수"를 의미하며 온도가 증가함에 따라 저항이 감소한다는 의미입니다.
DHT11은 정수로 출력되며 DHT22는 소수 1째자리 까지 출력됩니다.
2) DHT11 센서의 온도/습도 제어
(1) 동작설명
dht11 모듈의 함수를 사용하여 온습도 값을 가져와 UART로 출력합니다.
(2) 소스코드
code.py
import board
import digitalio
import adafruit_dht
import time
led1 = digitalio.DigitalInOut(board.GP2)
led1.direction = digitalio.Direction.OUTPUT
dhtIn = board.GP7
dhtOut = adafruit_dht.DHT11(dhtIn)
while True:
led1.value = False
temp = dhtOut.temperature
humi = dhtOut.humidity
print('Temperature = {}C Humidity = {}%'.format(temp, humi))
led1.value = True
time.sleep(1)
(3) 동작 결과
'라즈베리파이_피코_피코 W > circuitPython' 카테고리의 다른 글
11. Circuit 파이썬 라즈베리파 피코 W 블루투스/ SDCARD (0) | 2023.03.20 |
---|---|
10. Circuit 파이썬 라즈베리파 피코 W OLED 제어 (0) | 2023.03.19 |
08. Circuit 파이썬 라즈베리파 피코 W 릴레이제어 (0) | 2023.03.17 |
07. Circuit 파이썬 라즈베리파이 피코 W WS2812 제어하기 (2) | 2023.03.16 |
06. Circuit 파이썬 라즈베리파이 피코 W PWM제어 (0) | 2023.03.15 |
댓글