Another/라즈베리파이

[Raspberry Pi] 라즈베리파이4 온습도 센서(DHT22) 에러 -> 해결완료

Brad_Heo 2021. 3. 17. 10:14

온습도 센서 데이터 값을 불러와서 읽기.


라즈베리파이4를 이용해 온습도 데이터를 읽어오자. 

사용한 센서는 DHT22 센서.

첫번째로 소프트웨어 최신 업데이트 

git 에서 Adafruit 사의 라이브러리 다운로드.

아래의 명령어들을 라즈베리파이 터미널에서 실행

sudo apt-get update

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

cd Adafruit_Python_DHT

sudo python setup.py install

완료 시 아래 사진처럼 작업 진행 후 완료.

라이브러리 다운로드

테스트 프로그램 실행

Raspberry pi 3 온습도 테스트

테스트 프로그램 dht11.py

import time
import Adafruit_DHT
sensor = Adafruit_DHT.DHT11
pin = 4
try:
    while True :
        h, t = Adafruit_DHT.read_retry(sensor, pin)
        if h is not None and t is not None :
            print("Temperature = {0:0.1f}*C Humidity = {1:0.1f}%".format(t, h))
        else :
            print('Read error')
        time.sleep(1)
except KeyboardInterrupt:
    print("Terminated by Keyboard")
 
finally:
    print("End of Program")

테스트 해보니
라즈베리파이3 환경에서는 동작 되지만 라즈베리파이4 환경에서 동일한 하게 테스트 시 센서값이 나오지 않았다.

원인을 찾아봐야겠다..


2021-04-05 업로드


 DHT11 -> DHT22로 변경 테스트

라즈베리파이4 에서 TempHr.py 프로그램(온습도 데이터 출력 프로그램) 실행 시

Raspberry pi 4에서의 Error

위와 같이 에러가 나오는데 이는 Raspberry pi4 에서 브로드컴에서 칩을 인식을 못한다고 한다..(정확히는 모르겠지만)

sudo nano /usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py

위의 명령어 입력 후

 

맨 아래

platform_detect.py 편집 

노란색 태그한 것을 추가 해주면  실행된다.. 'BCM2711'은 Raspberry pi4 브로드컴 칩이여서 추가 없인 센서 데이터를 읽지 못하는 것 같다.

Raspberry pi 4 온습도 테스트

잘 작동된다.. 휴