라즈베리파이 프로젝트

라즈베리파이를 이용한 온도 수신기능 만들기(2)

민랑이 2021. 5. 27. 12:28

- 라즈베리파이에서는 파이썬으로 일정온도 이상 올라가면 개인핸드폰으로 메세지를 보내는 코드를 작성해보겠다. 

-라즈베리파이로 넘어와서 twilio에서 확인한 python코드를 실행을 위한 업데이트 및 라이브러리 설치진행한다. 
$sudo apt-get update
- 'apt-get update'는 운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어다. 
  설치되어 있는 패키지를 최신으로 업데이트하는 것이 아닌 설치가능한 리스트를 업데이트해준다
$sudo apt-get upgrade
- 운영체제에 apt-get install 명령으로 설치한 패키지들을 최신 버전으로 업그레이드하는 명령어다. 
  apt-get upgrade 명령을 이용하면 apt-get update로 가져온 각 패키지들의 최신 버전에 맞게 업그레이드를 해준다

 

$sudo python3 -m pip install --upgrade pip setuptools wheel
- python 라이브러리 설치를 위한 setuptools 설치

 

$ sudo pip3 install Adafruit_DHT
- 온습도 센서 데이터 획득을 위한 Adafruit_DHT 라이브러리 설치

 

$ vi python_twilio.py
- twilio에서 확인한 파이썬코드를 입력하기 위해 vi를 실행해준다. 

 

#1. 먼저 실행에 필요한 라이브러리를 코드입력해줍니다.
import sys
import Adafruit_DHT
import time
from twilio.rest import Client

#2. 첫번째 화면에서 보여준 ACCOUNT SID와 AUTH TOKEN을 확인 후 변수에 저장해줍니다.
acc_sid = '본인의 확인된 ACCOUNT SID값입력'
auth_token = '본인의 확인된 AUTH TOKEN값 입력'
client = Client(acc_sid, auth_token)

#3. 본인의 핸드폰으로 일정이상 온도상승시 수신해주는 코드를 만들어준다.
try:
	while True:
    	
        #4. 사용하고 있는 온도센서인 DHT11과 핀번호를 
        #   Adafruit_DHT라이브러리를 이용하여 설정해준다. 
    	humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 4)
        
        #5. 현재의 온습도 정보를 확인하기 위한 if문 작성 
        #	온습도 값이 있다면 format명령어를 이용하여 온습도정보를 넘겨줍니다.	
        if humidity is not None and temperature is not None:
        	print('Temp={0:0.1f}* Humidity={1:0.1f}%'.format(temperature, humidity))
        	
            #6. 만약 온도가 25도이상 올라간다면 지정해놓은 번호로 sms가 올 수 있게 코드작성
            if temperature >= 25:
            
            #7. 'body'에는 어떤내용으로 메세지를 보낼것인지 입력해주고,
            #	'to'에는 메시지를 받을 핸드폰번호입력,
            #	'from'에는 twilio에서 사용자에게 제공해주는 번호를 입력해주면된다.
                message = client.messages.create(body='The current temperature is over 25 degree',
                		to='whatsapp:+82메시지받을 전화번호',from_='whatsapp:+twilio제공번호')
           		if message is not None:
                	print(message.sid)
        
         #8. 온습도 정보값을 제대로 못읽어온다면 에러메세지가 나올 수 있게 해준다.
         else:
         	print('Failed to get reading. Try again!')
            sys.exit(1)
except:
	print('Interrupt Ctrl + c')
        
       
            

- 위의 코드를 실행하면 아래와 같이 지정해둔 번호로 메세지가 오는 것을 확인 할 수 있다.