라즈베리파이 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
GitHub - adafruit/Adafruit_Python_DHT: Python library to read the DHT series of humidity and temperature sensors on a Raspberry
Python library to read the DHT series of humidity and temperature sensors on a Raspberry Pi or Beaglebone Black. - GitHub - adafruit/Adafruit_Python_DHT: Python library to read the DHT series of hu...
github.com
폴더를 바꾸고
$ 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 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩