2017. 1. 9. 13:13ㆍ공부
우선 이 사이트에 접속을 합니다.
https://thingspeak.com
여기에 접속을 하셔서 회원가입 후 로그인 해주세요.
회원가입이나 로그인을 하고 나면 채널 생성하는 메뉴가 있습니다. 채널을 생성한 후
필요한 정보들을 입력하고 저장을 해준다.
그리고 옵션중에 make public이있는데 이 설정을 체크해주면 로그인을 안하고 수치를 확인 할 수있다.
내 채널을 가면 Data Import가 있는데 api request항목의 주소를 긁어서
아래 코드처럼 작성해주면
실행할때 마다 해당 온도 값과 습도 값이 페이지에 올라가고 그걸 그래프로 뿌려주는 걸 볼 수 있다.
18번째 줄에 보면 if문으로 15번째에 걸러주고 있는데 그 이유는 해당 사이트에서 15번의 요청이 왔을때 1번 데이터를 받는 다는 룰이 있기 때문입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # -*- coding:utf-8 -*- import Adafruit_DHT as dht import time import RPi.GPIO as GPIO import urllib2 pin = 13 GPIO.setmode(GPIO.BCM) while True : h, temp = dht.read_retry(dht.DHT11, pin) print "temp={0:0.1f}c humidity = {1:0.1f}%".format(temp,h) time.sleep(1) html = urllib2.urlopen("https://api.thingspeak.com/update?api_key=내apiKey&field1="+str(temp)+"&field2="+str(h)) i=i+1 if i%15==0: time.sleep(3) | cs |
이제 이 소스를 라즈베리파이에서 돌리면 됩니다.
하지만 한번씩 계속 실행해줘야 하는 불편함이 있는데요. 이럴때는 라즈베리파이 쉘 스크립트를 이용해서 무한 반복을 시켜준다. 코드는 아래와 같다.
저는 파일명을 auto.sh로 만들었습니다. 저 코드의 뜻은 while을 이용해서 무한반복 시킬거다.
do다음의 내용은 어떤 명령어를 사용할 것인가를 명시해주면 됩니다.
그리고 sleep의 경우는 120초마다 한번씩 돌아간다는 뜻입니다.
스크립트 실행방법은 스크립트가 있는 경로에서 ./auto.sh를 해주면 실행이 된다.
하지만 그냥 하면 실행이 안되는데 그럴경우에는 chmod 777 auto.sh를 해서 모든 권한을 다 주면 정상적으로 실행이 가능하다.
'공부' 카테고리의 다른 글
다음 지도 api의 마커에 zIndex 적용시켜서 반응형으로 만들기 (0) | 2017.06.14 |
---|