라즈베리파이 4 Adafruit DHT11 DHT22 온도 습도 센서 문제
테스트 환경은 라즈베리4, 라즈비안os, 파이썬 3.7이다. 각각 정확한 버전은 잘 모르겠다. 환경설정은 준비되었다 하고 아래를 참고하여 온습도센서 라이브러리를 다운받을 수 있다.
연결도는 아래와 같다.
계속 문제가 생긴 이유는 메세지가 뜨고 Read error 발생하고, 응답없는 이유는 라즈베리파이 4 여서다.
cannot import name 'Beaglebone_Black_Driver' from 'Adafruit_DHT' 에러가 뜬다면 아마 라즈베리4일 것이다.
아래 명령대로 하면 잘 된다.
이전 것들을 다 지운다
$ sudo rm -rf Adafruit_Python_DHT/
라즈베리파이로 깃 파일을 카피한다.
$git clone https://github.com/adafruit/Adafruit_Python_DHT
폴더를 바꾸고
$ cd Adafruit_Python_DHT/
$ sudo python3 setup.py install
아래 파일을 열어서 밑에 설명대로 코드를 수정한다.
$sudo nano /usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py
테스트 코드는 dht11test4.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(100)
except KeyboardInterrupt:
print("Terminated by Keyboard")
finally:
print("End of Program")
실행한다.
$python3 dht11test4.py
결과는 아래와 같이 아름다운 화면을 보여준다.
pi@raspberrypi:~ $ python3 dht11test4.py
Temperature = 29.0*C Humidity = 22.0%
Temperature = 29.0*C Humidity = 22.0%
Temperature = 29.0*C Humidity = 22.0%
Temperature = 29.0*C Humidity = 22.0%
Temperature = 29.0*C Humidity = 22.0%
Temperature = 29.0*C Humidity = 22.0%
아래는 라즈베리4가 나오면 Adafruit측에서도 라즈베리4에 대한 업데이트를 해줘야하는데 작성일 기준 아직 업데이트가 안되었다. 각 라즈베리마다 칩셋명이 있는데 라즈베리4의 칩셋명이 BCM2711이다. 해당 칩셋명을 추가하기 위해 아래와 같이 vim 또는 nano를 통해 해당 라이브러리를 접근한뒤
다음 파일을 열어서 sudo nano /usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py
111번째 줄에 아래와 같이 라즈베리4에 대한 칩셋 코드를 추가한다.
아 참~ 왜 이렇게 힘드냐. ㅠ.ㅠ
참고
[Python] 라즈베리4 Adafruit DHT11/21/22(온습도센서)
'개발자 > 라즈베리파이4' 카테고리의 다른 글
라즈베리파이 4 기반 IoT(사물인터넷) 설계 5강 스마트 IoT 설계 시스템 (0) | 2021.11.17 |
---|---|
라즈베리파이 Python 프로그래밍 13: TTK 메뉴, 레이아웃 관리, 이벤트 및 멀티스레딩 (0) | 2021.11.17 |
라즈베리파이 Python 프로그래밍 12: Tkinter 및 TTK 위젯 (0) | 2021.11.16 |
라즈베리파이 Python 프로그래밍 11: Tkinter를 사용한 Python GUI (0) | 2021.11.15 |
라즈베리파이 4에서 VNC 접속하여 사용하기 Raspberry Pi4 VNC Connect (2) | 2021.11.10 |
라즈베리파이 Python Programming 10: 객체 지향 Python (0) | 2021.11.05 |
라즈베리파이 Python Programming 09: 파이선 set and dictionary (0) | 2021.11.04 |
라즈베리파이 Python Programming 08: List와 Byte array (0) | 2021.11.03 |
더욱 좋은 정보를 제공하겠습니다.~ ^^