게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
라즈베리파이 2 로 iot 첫걸음 (퇴근 후 근근히 진행하던거)
게시물ID : it_4576짧은주소 복사하기
작성자 : 공돌봇
추천 : 2
조회수 : 2616회
댓글수 : 8개
등록시간 : 2015/11/03 01:04:34
옵션
  • 창작글
  • 본인삭제금지

 
IOT  첫걸음



개요 :

라즈베리 파이로 거리를 측정해 1미터 미만이면 사진을 찍어 페이스북 페이지로
업로드


거리부분만 수정해 문앞에 설치하면 페북으로 출입자 사진을 남기게 된다.

 파이썬 처음 사용해보는데 상당히 마음에 든다.

 자바만 하고 처음 C 계열 잡아보는데 나쁘지 않은듯.(PHP 는 하도 오래되어서 기억안남 ;; )

최초 센서와 카메라 사용법은 동영상 참고 

라즈베리파이 2 에선  WebOPi  2.7 버전까지는 에러가 있어 정상작동하지 않는다. (삽질 유발자)

노비스로 os 설치하면 패치가 적용되긴 하는데 (희안하게 노드가 늘어나 보이긴 하지만)

나는 이미지로 설치해버렸기 때문에 적용되지 않는듯?

동영상 주의점 - 3.3 볼트로 초음파 측정기 작동안함 , 5볼트로 UCC 세팅후 정상작동

동영상 주의점 2 - 트위터에서 토큰 얻어오는 페이지가 바뀌었는지 페이지 접근이 안되어서 페이스북으로 전환


페이스북 api 는 http://nodotcom.org/python-facebook-tutorial.html 페이지 와
https://developers.facebook.com/docs/facebook-login?locale=ko_KR 를 참고



파일을 2부분으로 나누어서 사진촬영 및 페이스북 전송부로 분할


1.  사진촬영

실험하고 싶으신 분은 주석지우시길 , 설정 없으면 한글주석 에러남.

import RPi.GPIO as GPIO
import time as t
from datetime import datetime
import subprocess


trigger = 17 #갈색선
echo = 18  $빨간선

GPIO.setmode(GPIO.BCM)
GPIO.setup(trigger , GPIO.OUT)
GPIO.setup(echo , GPIO.IN)
#파일 누적폴더
filepath = "/home/pi/python/imgCapture"
#파일명 기본
filenamePrefix = "Capture"
# 기준거리 (센티)
distanceConfig =  100

while True :
 #초기화
distance =0
GPIO.output(trigger , True)
t.sleep(0.00001) #시간 중요 , 길어지면 엄한 값이 나옴,
GPIO.output(trigger , False)

while GPIO.input(echo) == 0:
signaloff = t.time()
while GPIO.input(echo) == 1:
signalon = t.time()
distance = (signalon - signaloff) * 17000

print distance #최초 거리 출력 
 
if distance < distanceConfig : #기준거리 이상이면 
print "Capture start"

time = datetime.now()
filename = filepath + "/" + filenamePrefix +"-%04d%02d%02d-%02d%02d%02d.jpg" % ( time.year ,time.month ,time.day, time.hour ,time.minute ,time.second ) #현재시간으로 파일명
command = "raspistill -t 1 -o %s" % (filename) # 촬영시 1초 
subprocess.call(command , shell = True )
print "Captured %s" %  filename


command = "python faceBook2.py %s %f" % (filename, distance)  # 페이스북 전송부
subprocess.call(command , shell = True )

t.sleep(5) # 연속촬영 방지 5초 딜레이

t.sleep(1) # 거리측정 1초 딜레이


2. 페이스북 전송 
#systest.py
import sys
import facebook

def main(): 
  cfg = {
    "page_id"      : "페이지아이디", 
    "access_token" : "페이지접속토큰"   
    }
   
  img = sys.argv[1]
  msg = 'distance = ' + sys.argv[2] 
  print ("msg = "+msg)  #  거리 파라미터
  print ("img = "+img)   # 이미지 파라미터
  api = get_api(cfg)  # 페북 api 
  api.put_photo(
image=open(img)
,message=msg
) # 페북 페이지에 이미지와 텍스트 전송

def get_api(cfg):
  graph = facebook.GraphAPI(cfg['access_token'])    # 페북 페이지 접속 
  return graph 

if __name__ == "__main__":
  main()

실험결과 https://www.facebook.com/dongDevTest/?ref=aymt_homepage_panel 에 정상 업로드를 확인 



--삽질 1 : 파이 카메라를 터치패드 접속부에 넣고 환경설정에서 카메라 활성화 안되서 골머리 썩음, 설명서 잘 보자.

--삽질 2 : 토큰 착각해서 엉뚱한것 넣었다. 영문이라 읽기 싫어도 잘 읽자.


전체 라즈베리파이 (작다!)

 초음파 측정기 GPIO 부분 
(검 : 전원 , 갈 : 트리거 , 빨:에코 , 주:접지)

초음파 거리 측정기  



독학은 힘들다.
하지만 재미있다.

http://recipes.egloos.com/ 친절한 임베디드 개발자 되기

입문자에게 유용한 사이트


다음은 모터제어에 도전해 보자.
출처 http://dongchandp.blogspot.kr/2015/11/iot_2.html
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호