샤오미 카메라와 라즈베리파이를 이용해 하늘 사진을 찍어 sns에 올리는...

39
샤오미 카메라와 라즈베리파이를 이용해 하늘 사진을 찍어 올리는 봇을 만들어 보았다. 죽지 않는 프로그램 만들기 정문철(flashscope) [email protected] Tag: 라즈베리파이, 샤오미 카메라, 페이스북, 트위터, , imgur, ifttt, postman

Upload: flashscope

Post on 07-Jan-2017

1.582 views

Category:

Technology


4 download

TRANSCRIPT

샤오미 카메라와 라즈베리파이를 이용해하늘 사진을 찍어 올리는봇을 만들어 보았다

죽지 않는 프로그램 만들기

정문철(flashscope)maillimecolorcomTag 라즈베리파이 샤오미 카메라 페이스북 트위터 봇 imgur ifttt postman

-만들어 볼려고 생각하게 된 이유

강릉에서 관광업에 종사 하시게 될 분의도움이 될 만한 것이 없나 생각하던중

강릉 자체에 컨텐츠가 많이 부족하다고 느낌

간단한 거라도 컨텐츠가 될 만한 것을 만들어 보고자 함

-만들어 볼려고 생각하게 된 이유

강릉에서 관광업에 종사 하시게 될 분의도움이 될 만한 것이 없나 생각하던중

강릉 자체에 컨텐츠가 많이 부족하다고 느낌

간단한 거라도 컨텐츠가 될 만한 것을 만들어 보고자 함

사실 다른 프로젝트에서만들려다 실패하고 남은 장비로 제작

이유는hellip 재미있어 보여서

매일 사진을 찍어인터넷에 업로드 하는 봇

사용한 카메라

샤오미 웹 캠을알X익스프레스에서 $323에무료배송으로 구입

도착하는데 26일 걸림hellip 현재는 한국 공식 수입사가 있음

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

-만들어 볼려고 생각하게 된 이유

강릉에서 관광업에 종사 하시게 될 분의도움이 될 만한 것이 없나 생각하던중

강릉 자체에 컨텐츠가 많이 부족하다고 느낌

간단한 거라도 컨텐츠가 될 만한 것을 만들어 보고자 함

-만들어 볼려고 생각하게 된 이유

강릉에서 관광업에 종사 하시게 될 분의도움이 될 만한 것이 없나 생각하던중

강릉 자체에 컨텐츠가 많이 부족하다고 느낌

간단한 거라도 컨텐츠가 될 만한 것을 만들어 보고자 함

사실 다른 프로젝트에서만들려다 실패하고 남은 장비로 제작

이유는hellip 재미있어 보여서

매일 사진을 찍어인터넷에 업로드 하는 봇

사용한 카메라

샤오미 웹 캠을알X익스프레스에서 $323에무료배송으로 구입

도착하는데 26일 걸림hellip 현재는 한국 공식 수입사가 있음

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

-만들어 볼려고 생각하게 된 이유

강릉에서 관광업에 종사 하시게 될 분의도움이 될 만한 것이 없나 생각하던중

강릉 자체에 컨텐츠가 많이 부족하다고 느낌

간단한 거라도 컨텐츠가 될 만한 것을 만들어 보고자 함

사실 다른 프로젝트에서만들려다 실패하고 남은 장비로 제작

이유는hellip 재미있어 보여서

매일 사진을 찍어인터넷에 업로드 하는 봇

사용한 카메라

샤오미 웹 캠을알X익스프레스에서 $323에무료배송으로 구입

도착하는데 26일 걸림hellip 현재는 한국 공식 수입사가 있음

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

매일 사진을 찍어인터넷에 업로드 하는 봇

사용한 카메라

샤오미 웹 캠을알X익스프레스에서 $323에무료배송으로 구입

도착하는데 26일 걸림hellip 현재는 한국 공식 수입사가 있음

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

사용한 카메라

샤오미 웹 캠을알X익스프레스에서 $323에무료배송으로 구입

도착하는데 26일 걸림hellip 현재는 한국 공식 수입사가 있음

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

RTSP(스트리밍 프로토콜) 지원Night Vision이 있는 750TVL모델을 구입

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

사용한 컴퓨터

카메라를 찍은 사진을 가공해서 업로드를 하는 장비로라즈베리파이1 B 모델을 사용

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

제작 1단계

샤오미 웹캠으로부터 사진을 받아오기

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

샤오미 웹캠은 기본적으로 샤오미 앱을 통해카메라를 조작하게 되어 있음

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

하지만 제품 스펙에도 적혀있는RTSP방식으로 컴퓨터에서도 접속이 가능

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

인터넷 검색 결과

rtsp[ip]554ch0_0h264로 접속이 가능하다고 하지만 실패hellip

(테스트는 일반 동영상 플레이어)httpenmiuicomthread-70205-1-1html

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

샤오미 웹캠이 업데이트가 되면서RTSP가 막혔다고함(아마도 보안 문제)

펌웨어 다운그레이드를 통해 해결 해야함(다만 이번에 산 모델은 750TVL모델로 스샷의 펌웨어로는 불가능 하였던걸로 기억hellip

여러 포럼의 펌웨어들을 사용한 끝에 겨우 동작 성공)

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

실시간 스트리밍(RTSP)이 가능하므로실시간 하늘 영상의 전송도 가능

하지만 직접 개인집으로 사람들이 접속하게 되는건 좀hellip동영상을 스트리밍해주는 wowza hosting서비스도 있지만이런것을 위해 유지비가 들어가기는 더욱 싫었음

(현재 유지비는 usb충전기 2개(500ma 1000ma)의 전기)

지금 적으면서 떠올랐지만라즈베리에서 UStream으로 서비스하는것도 좋을듯다른 비슷한 걸 만들게 되거나 업데이트시 검토를hellip

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

샤오미 카메라가 방수가 안되는것 같아 나무와 아크릴로 케이스를만들어 집 밖에 설치후 wifi로 연결

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

RTSP로부터 사진으로 캡쳐해서여러 사진을 모아서 gif이미지로 만든 다음

sns에 업로드 하기로 정함

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

RTSP로부터 사진을 가져오기 위해 FFMPEG를 사용하기로윈도우에서 개발할 때에는 이미 빌드된 파일을 다운받아 사용하였지만

라즈베리 파이에서는 직접 컴파일 해서 사용함

업로드 하는 프로그램으로는 라즈베리에서 사용 가능한자바를 이용해서 개발 하기로 단 FFMPEG를 직접 포함하지 않고

외부에서 호출 하기로 함

이미지들을 gif로 만들기 위해서는ImageMagick을 사용

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

httpwwwjeffreythompsonorgblog20141113installing-ffmpeg-for-raspberry-pi

설치하는데 2~3시간 소요(파이1 기준)

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

ffmpeg -i rtsp + cameraIp + ch0_0h264 -f image2 -vframes 1 + fileName

rtsp로부터 이미지 캡쳐

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

String gifQuery = convert -delay 25 -loop 0 -type Palette ldquo

for (int i = 0 i lt thism_PhotoListsize() i++) gifQuery = gifQuery + (String)thism_PhotoListget(i) +

fileName = getDate() + gif gifQuery = gifQuery + fileName

cmdExcute(gifQuery)

캡쳐한 이미지 묶음을 gif로 만들기

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

gif이미지를 만들었지만 트위터는 gif를 지원하지만페이스북 페이지에서는 gif를 지원하지 않음

페이스북에는 대표 이미지 하나를 올리고링크를 통해 imgur에서 gif를 볼수 있도록 유도

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

imgur은 자체 api를 제공httpsapiimgurcom

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

HttpRequest request = HttpRequestpost(httpsapiimgurcom3imagejson) requestheader(Authorization Client-ID BLABLABLA) requestpart(image file) if (requestok()) String result = requestbody() try JSONObject jsonObject = new JSONObject(result) JSONObject dataObject = jsonObjectgetJSONObject(data) return dataObjectgetString(link) catch (JSONException e) eprintStackTrace()

간단한 post전송으로 쉽게 이미지 업로드가 가능

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

이제 sns에 업로드를 위해페이스북과 트위터의 SDK자료를 보고 있는데학습하기에 시간이 많이 걸릴것으로 판단hellip

(한사람(봇)을 위한 서비스를 만들고 있는데 기본 문서의 설명은다수를 위한 서비스를 위한 설명이니 약간 핀트가 안 맞는 감도hellip)

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

ifttt 서비스를 사용하면 페이스북과 트위터에동시에 포스팅이 가능

httpsiftttcom

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

다만 ifttt에게 사진을 전송해야 되는데마땅한 방법이 안보여서 Email로 전송하기로 결정

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

예전에 Gmail smtp를 이용해이메일 리포팅을 한 경험이 있는데

코드 유실hellip과 당시 번거로웠던 기억이 있어이번에는 이메일 전송 서비스를 이용하기로

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

httpswwwgetpostmancom

postman이란 서비스로간단한 api호출로 이메일 전송이 가능

전송 가능 메일수에 제한이 있지만 무료 플랜 제공

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

덤으로 parsecom에도 사진 촬영 기록을 저장하고 있습니다나중에 타임라인이나 과거 달력으로 강릉 날씨를 보는 서비스를

만들어 볼 계획이지만 부족한 웹 프론트 기술로 실행에는 옮기지 못하고 있습니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

멈추지 않는 서비스 만들기

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

ffmpeg나 imagemagick을 호출 할때 무식하게 커맨드를 넘기는 방식이라윈도우 개발 -gt 라즈베리에서 실행으로 약간 달라지는 부분이나

무선wifi에서 인터넷이 끊기고재시작해야지만 다시 잡히는 문제도 발생하고(유선으로 교체)

또 라즈베리 파이의 성능 문제로한장 촬영후 업로드하는 시간에 여유를 둬서

3분에 한장씩 30분마다 10장을 gif로 만들어서 업로드하는 등의시행 착오도 많았지만 기본적으로 잘 동작하였지만hellip

한 한달 정도 후에 동작이 정지됨을 확인

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

ssh로 접속해서 확인해보니함수가 블록되어서 멈춰있는 상태

하지만 해당 함수는 타임아웃걸려있는 함수hellip

결국 모든 함수들을 믿지 못하게 되었고직접 감시하는 로직을 만들기로

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

Camera Upload Thread

Main Thread

별도로 스레드를 만들어 사진을 업로드하고 있는데hellip

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

Camera Upload Thread

Main Thread

업로드 스레드는 메인에게 매 작업 과정마다 완료 시간을 알려주고

heartbeat

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

Camera Upload Thread

Main Thread

메인스레드가 일정 시간마다 마지막 완료 시간을 감시하다hellip

hellip

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

Camera Upload Thread

Main Thread

오래 걸리면 기존 스레드를 강제로 죽이고새로운 스레드를 다시 만들어 작업을 다시 시작하도록 함

hellip

Camera Upload Thread

heartbeat

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

이 방식을 지금까지도(1월말)약 4개월 넘게 살아 있습니다hellip

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

느낀점

-샤오미 카메라hellip 저렴하고 좋은데 긱스럽게 사용하기엔 힘든듯자금이 있으면 DSLR에 gphoto2로 연결하는게 가장 일듯

-카메라+라즈베리 조합이 아니라 안드로이드 디바이스 하나로만든적이 있지만 이 역시 실패hellip(이 애기는 다음 타임랩스 만들기 자료에서)

-라즈베리 파이는 대단하다 (라즈1이 이런데 2는)

-찾으면 찾을 수록 더 좋거나 쉬운 도구나 방법들이 나온다설계 이전에 자료조사를 하는 시간도 중요hellip

-참 쓸모없는 걸 만들었지만 ifttt나 postman같은서비스를 만나게 해준거에 의미를hellip

감사합니다

감사합니다