[1] 온습도 센서(DHT11)
1. 라즈베리파이에서 DHT11 사용을 위한 세팅
https://powerstone829.tistory.com/59?category=1014640
[Day42] 2022-03-29(화) 아두이노7 - 부저, 조도센서, PIR센서, 온습도센서, LCD1 - 김서연 강사님
[1] 부저(Piezo Buzzer) - <아두이노 마스터1 우노보드 기초 - 신동욱> p234~243 - 삐 소리를 출력 - 주파수 신호를 주면 음계를 표현할 수 있다. - 능동부저(전원만 연결해도 출력)와 수동부저(전원만
powerstone829.tistory.com
- 기존에 사용하던 Adafruit-DHT 라이브러리가 오래되었고 업데이트가 되지 않음
- 라즈베리파이4에 추가된 내용이 반영되어 있지 않음
1) 통신 패키지 설치
- 센서들과 통신할 수 있는 통신패키지 설치
- 패키지: libgpiod2
- 명령어 ~$ sudo apt install libgpiod2
2) 파이썬 통신 패키지 설치
- 라즈베리파이에서 GPIO와 통신할 수 있는 패키지 설치
- 파이썬 내부에서 센서와 통신할 수 있도록 구성
- 보드 컨트롤러 id파악
- 아날로그와 디지털입출력 핀 구성
- 데이터 전송을 위해서 필요한 파이썬 패키지 설치
- adafruit-blinka
- 명령어 ~$ pip3 install adafruit-blinka
3) 파이썬 온습도 모듈 설치
- 센서를 파이썬에서 사용하기 위해서 작업
- adafruit-circuitpython-dht
- 명령어 ~$ pip3 install adafruit-circuitpython-dht
2. 사용법 예제
- board, adafruit_dht 모듈 import
- DHT11 클래스의 객체 생성
- 객체의 인스턴스 변수 humidity, temperature 사용하면 끝
# dht11_test.py
import time
import board # 데이터 송신용 board 모듈 (GPIO.setmode의 board 모드 아님)
import adafruit_dht
mydht11 = adafruit_dht.DHT11(board.D6) # GPIO06 번 핀
# try:
# while True:
# humidity_data = mydht11.humidity
# temperature_data = mydht11.temperature
# print(humidity_data, temperature_data)
# time.sleep(2) # 대기시간이 2초 필요 - 센서 내부에서 초기화작업시 필요한 시간
# except RuntimeError as error:
# print(error.args[0])
# finally:
# pass
while True:
try:
humidity_data = mydht11.humidity
temperature_data = mydht11.temperature
print(humidity_data, temperature_data)
time.sleep(2) # 대기시간이 2초 필요 - 센서 내부에서 초기화작업시 필요한 시간
except RuntimeError as error:
print(error.args[0])
finally:
pass
- 끝 -
'프로젝트형 IoT 서비스 개발 4회차 > 3. 게이트웨이 디바이스 제어' 카테고리의 다른 글
[Day61] 2022-04-25(월) Flask 활용 - 김서연 강사님 (0) | 2022.04.25 |
---|---|
[Day60] 2022-04-22(금) 라즈베리파이9 - 카메라, 이벤트 처리 - 김서연 강사님 (0) | 2022.04.22 |
[Day58] 2022-04-20(수) 라즈베리파이7 - WebSocket2, 외부접속허용, 센서(초음파, PIR) - 김서연 강사님 (0) | 2022.04.20 |
[Day57] 2022-04-19(화) 라즈베리파이6 - Thread2, WebSocket1 - 김서연 강사님 (0) | 2022.04.19 |
[Day56] 2022-04-18(월) 라즈베리파이5 - Thread1 - 김서연 강사님 (1) | 2022.04.18 |