Chapter 02. 라즈베리파이 Adafruit DHT - Marvic1130/EmbeddedSystem_Class GitHub Wiki

라즈베리파이 Adafruit DHT (4주차)

Adafruit DHT와 DHT센서(온습도 센서)

Adafruit DHT 는 라즈베리파이에서 DHT 온습도 센서를 제어할 수 있게하는 Python 라이브러리 이다.

DHT센서(온습도 센서)는 DHT11 과 DHT22 두가지 종류가 있는데 DHT11은 분해능은 온도 1%, 습도 1%로 정수단위로만 측정이 가능하고, DHT22는 온도 0.1%, 습도 0.1%로 DHT11 보다 분해능이 10배가 차이난다.


Adafruit DHT 설치하기

Adafruit DHT를 사용하려면 먼저 라즈베리파이에 파이썬을 설치해야한다.

먼저 아래의 명령어로 apt를 업데이트 한다.

sudo apt-get update

그다음 파이썬3를 설치한다.

sudo apt-get install python3-pip

기존에 사용하던 Adafruit_DHT 라이브러리는 오래되어 라즈베리4 칩셋이 업데이트가 되어있지 않다.

따라서 라즈베리4 이상의 기기는 sudo pip3 install Adafruit_DHT 명령어로 설치를 진행하면 DHT를 사용할 수 없게되고 adafruit-circuitpython-dht를 설치한다.

sudo pip3 install adafruit-circuitpython-dht

위에 명령어로 설치하면 아래 package가 설치된다.

Adafruit-Blinka

adafruit-circuitpython-busdevice

adafruit-circuitpython-dht

adafruit-circuitpython-requests

adafruit-circuitpython-typing

Adafruit-PlatformDetect

Adafruit-PureIO

아래 명령어를 사용하면 현재 설치되어있는 Package를 볼 수 있다

pip3 list

스크린샷 2022-10-07 오후 3 43 20


VSCode를 이용하여 라즈베리파이에 SSH로 연결하기

VSCode에서 SSH를 연결하는 이유

Reason1

라즈베리파이 내부에서 파이썬 파일을 실행하면 Thonny Python IDE를 사용하여 파일을 열게되는데 Thonny Python IDE를 사용할 때 많은 불편함을 느꼈다. 스크린샷 2022-10-07 오후 5 51 16

Reason2

라즈베리파이 내부에서 VSCode를 설치가 가능하지만 Latency가 길어서 사용시에 많은 불편함을 느꼈다.

VSCode에서 라즈베리 파이 SSH연결하기

먼저 VSCode 를 설치한다.

https://code.visualstudio.com

VSCode 에서 Extension 탭에서 Remote-SSH를 설치한다.

스크린샷 2022-10-07 오후 4 06 25

설치가 완료되면 왼쪽에 Remote 탭이 생긴다.

Remote 탭을 누르고 SSH TARGETS(SSH 대상)에서 + 버튼을 누른다.

스크린샷 2022-10-07 오후 4 03 59

아래의 창에 ssh 계정명@라즈베리파이IP 를 입력한다.

Ex: ssh [email protected] or ssh [email protected]

스크린샷 2022-10-07 오후 4 06 51

라즈베리 ip와 계정이 올바르면 아래와같이 SSH 설정 파일 저장 경로를 물어본다.

스크린샷 2022-10-07 오후 4 08 02

이후 운영체제를 물어보는데 Linux를 선택한다.

연결이 정상적으로 완료되었다면 비밀번호를 입력하는 창이 나온다.

스크린샷 2022-10-07 오후 4 25 16

비밀번호를 입력하면 자동으로 필요한 프로그램을 설치한다.

설치 완료 후 장치와 연결되었다면 라즈베리파이 Remote SSH 창에서 Extension 탭에 들어가서 Python과 Python Extension Pack을 설치한다.

스크린샷 2022-10-07 오후 5 00 00

스크린샷 2022-10-07 오후 4 59 50


라즈베리에서 DHT 사용하기 실습

라즈베리 파이에 DHT11 연결하기

아래 사진은 라즈베리 파이 pin map이다. 68747470733a2f2f63646e2e737061726b66756e2e636f6d2f6173736574732f6c6561726e5f7475746f7269616c732f342f322f342f6865616465725f70696e6f75742e6a7067

위의 사진을 참고하여 DHT11을 연결한다.

IMG_0172

DAT는 GPIO 4, VCC 는 5v, GND 는 Ground에 연결한다


VSCode Remote SSH 를 이용하여 라즈베리 내부폴더 열기 및 파일 생성

먼저 위에서 설정한 VSCode Remote SSH 에 접속한다.

접속이 완료되었으면 Explorer 탭에서 폴더 열기 버튼을 누르면 파일 경로를 입력하는 창이 나온다.

스크린샷 2022-10-07 오후 5 04 31

이때 원하는 경로를 입력한 후 파일을 생성한다.


코드 리뷰

Adafruit_dht를 사용하기위해 Package를 import한다.

import adafruit_dht

time 함수를 사용하기 위해 time Package를 import한다.

import time

Adafruit_dht.DHT11 객체 생성

dht_device = adafruit_dht.DHT11(4) # 4번 pin 사용

온습도 값 가져오기

temperature = dht_device.temperature # 온도값 가져오기

humidity = dht_device.humidity # 습도값 가져오기


전체 코드:

스크린샷 2022-10-07 오후 5 20 26

Adafruit_CircuitPython_DHT GitHub