본문 바로가기

프로젝트형 IoT 서비스 개발 4회차/3. 게이트웨이 디바이스 제어

[Day59] 2022-04-21(목) 라즈베리파이8 - 온습도 센서(DHT11) - 김서연 강사님

728x90

[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

 

- 끝 -

728x90