- 라즈베리파이에서는 파이썬으로 일정온도 이상 올라가면 개인핸드폰으로 메세지를 보내는 코드를 작성해보겠다.
-라즈베리파이로 넘어와서 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')
- 위의 코드를 실행하면 아래와 같이 지정해둔 번호로 메세지가 오는 것을 확인 할 수 있다.
'라즈베리파이 프로젝트' 카테고리의 다른 글
라즈베리파이를 이용한 구글AI스피커 만들기 (0) | 2021.05.27 |
---|---|
라즈베리파이를 이용한 온도 수신 만들기(1) (0) | 2021.05.27 |