안드로이드 자동화 어플 tasker를 알게되었고
tasker를 파다보니 sl4a라는 안드로이드에서 돌아가는 스크립트 환경을 알게되었다.

그러다가 발견하게 된 것이5분 투자하여 안드로이드 스마트폰을 원격 감시카메라로 만드는 방법이란 글이었다.
위의 원문은 일본어로 막상 접속해보니 블로그가 좀 이상해 접속하면 계속 리플레시 되곤 했다.

그래서 소스보기로 하여 웹페이지를 불러와 해당 내용대로 따라해보니..
헐…
정말 간단하게 내 옵티머스 LTE2가 원격 감시카메라로 탄생했다!
비록 실시간 동영상이 아닌 원할 때마다 웹브라우저를 통해 실시간으로 사진이 전송되는 방식이지만 그래도 신기신기.

물론 시간을 따져보니 5분만에 안드로이드 스마트폰을 원격 감시카메라로 만드는건 전제 조건이 따랐다.
그것은 다름아닌 이미 소스가 동작할 환경이 셋팅되어있어야 한다는 것

혹시 자신이 쓰고 있는 안드로이폰을 원격 감시카메라로 셋팅하고픈 분이나
호기심이 많은 분이라면 아래의 셋팅방법을 살펴보시라.

일단 간단한 설명을 위하여
안드로이드 폰과 사진을 확인하려는 컴퓨터가 서로 같은 네트워크(공유기)에 묶여있다고 가정하고
안드로이드폰은 공유기와 무선랜으로 접속되어 있는 상태,
또한 공유기와 접속된 안드로이드 폰의 IP를 알고 있다는 가정하에 설명한다.

 

일단 환경부터 셋팅하자.

원래는 파이썬이란 프로그래밍 언어에 관한 지식 및 기타 안드로이드 스마트폰 API에 관한 여러가지의 지식이 필요하지만 이런거 저런거 다 빼고 걍 따라하기 방식으로 설명하겠다.

  1. 안드로이드에서 파이썬 프로그램을 돌릴 수 있는 SL4A를 다운로드 받아 설치
  2. SL4A 실행 – 메뉴에서 View 선택 – Interpreters 선택
  3. 화면 바뀌면 다시 메뉴 선택 – Add 선택 – 뜨는 창에서 Python 선택 후 다운로드 및 설치

 

소스 입력

아래의 파이썬 소스를 메모장이나 택스트 에디터로 붙여 넣은 후 remote_camera.py라는 파일로 저장한다.

remote_camera.py

import android
from wsgiref.simple_server import make_server
droid=android.Android()
pic='/sdcard/snapshot.jpg'

def camera(env,res):
if env['PATH_INFO']=='/':
droid.cameraCapturePicture(pic)
res('200 OK',[('Content-type','image/jpeg')])
return [file(pic).read()]

httpd=make_server('',9998,camera)
httpd.serve_forever()

remote_carema.py 파일을 안드로이드 스마트폰 /sdcard/sl4a/script 폴더에 저장

 

원격 웹캠 실행

이제 실행시키는 일만 남았다.

  1. SL4A를 실행하고
  2. 메뉴버튼 -> View -> Interpreters 선택
  3. 다시 메뉴버튼 -> Start Server -> Public 선택
  4. 3번까지 실행하면 안드로이드 스마트폰에서 웹서버가 돌아가는 상태가 된다.
안드로이드 스마트폰 웹캠 만들기 - 2번에 관한 설명
안드로이드 스마트폰 웹캠 만들기 – 2번에 관한 설명
안드로이드 스마트폰 웹캠 만들기 - 3번에 관한 설명
안드로이드 스마트폰 웹캠 만들기 – 3번에 관한 설명

이 상태에서 이전에 /sdcard/sl4a/ 폴더에 저장해둔 remote_camera.py 파일을 선택하여 실행한다(파일 선택 후 검은창 아이콘 클릭)

그리고 무선랜으로 연결된 안드로이드 스마트폰의 IP를 아래와 같이 같은 망에 묶인 컴퓨터에 쳐보면..
http://안드로이드폰IP:9998

브라우저에서 안드로이드폰에 접속하면 사진이 찍히고 이 사진이 바로 브라우저로 전송된다.- 원본블로그에서 업어온 사진
브라우저에서 안드로이드폰에 접속하면 사진이 찍히고 이 사진이 바로 브라우저로 전송된다.- 원본블로그에서 업어온 사진

위의 사진에서 보는바와 같이 브라우저에서 안드로이드 카메라로 찍힌 사진을 바로 확인할 수 있다.
이후 브라우저를 새로고침하거나 F5키를 누르면 마찬가지로 그때마다 새로 찍힌 사진이 브라우저로 전송된다.

또한 이번 튜토리얼은 설명을 간단히 하기 위해 같은 공유기 망에 묶인 것으로 설명하였지만
공유기의 DDNS 및 포트포워딩 기능을 활용하면 외출한 상태에서도 언제든지 안드로이드 폰을 설치해둔 곳의 상태를 원할 때 마다 체크 가능하다.

 

후기

처음에 이렇게 해보고 나서 얼마나 신기하던지..ㅋ
내 경우에야 이미 sl4a 실행 환경이 셋팅되어 있었기 때문에 빠른시간에 결과를 볼 수 있었지만
환경 셋팅에 얼마간의 시간이 좀 걸리더라도 관심있는 분이라면 한번 도전해보시길 빈다.

SL4A는 실제로 위에서 든 활용방법 외에도 기발한 활용방법이 많이 존재하니 파고드는 성격을 지니신 분이라면
충분히 흥미를 느낄 수 있을 것이다.

Tags:

14 Comments

  1. 안녕하세요. 이 글 보고 한 번 따라해보았는데 안되는 점이 있어 질문 드립니다^^.

    익스플로러에서 스마트폰 IP로 접속을 하니 스마트폰 카메라가 켜지면서 스마트폰에 카메라화면이 나타납니다. 브라우저에는 화면이 안 뜹니다. 한 3초 뒤에 카메라 찍히는 소리가 나고 그 찍힌 사진이 화면에서 안 없어집니다. 브라우저를 다시 새로고침해도 소용이 없구요.. 혹시 뭐 특별하게 하신 점 있으신가요..?ㅜㅜ 꼭 해보고 싶은데 안되니 정말 답답하네요. 혹시 익스플로러에서는 안되는건지요

    1. 흠..
      글쎄요.
      제가 크롬에서 테스트해본 것이라서요.

      아마 사진이 찍히는 과정까지 진행되었다면
      거의 끝까지 셋팅을 마치셨다는 건데..

      다른 브라우저로 확인을 해보시면 어떨까요?

  2. 저도 타블렛으로 시도해봤는데, 타블렛 화면에만 뜨고 브라우저에는 계속 연결중으로 뜨더라구요.

  3. 나그네님 사진 저장 폴터를 변경해보세요
    파일 저장 권한이 없어서 그런듯합니다.
    해당폰에 사진 저장되는 위치로 변경해보세요
    pic=’/sdcard/snapshot.jpg’
    에서
    pic=’/sdcard/DCIM/100MEDIA/snapshot.jpg’

  4. 이걸 어플에다가 압축화시킨후에 섞어서 패킹해서 컴파일하면 망하겟네요 ㅋㅋ

  5. 익스플로러에서 스마트폰 IP로 접속이 않되요
    알려주시면 감사 하겠습니다.

  6. 알려주세요!!!
    sl4a 정상 구동 되고 remote_camera.py 까지 구동되는데
    익스를러러에서 스마트폰으로 접속이 않되요
    “Internet Explorer에서 웹 페이지를 표시할 수 없습니다. ” 라고 뜨네요

    1. 하나의 공유기에 컴과 스마트폰의 네트워크가 묶여야 합니다.
      즉 스마트폰은 무선공유기와 와이파이로 연결되어야 하고 이때 스마트폰에 할당된 IP로 접근하셔야 해요~

  7. 좋은 포스팅 정말 잘보고 갑니다. 정말 굉장한 아이디어 이군요!
    정말 여러 방면에 다양하게 활용할 수 있다고 생각 됩니다.
    조금더 궁금한게 있어서 말인데 혹시 그 실시간 감시 방식을 사진 전송 방식이 아니라
    실시간 동영상 방식으로도 가능할지 정말 번거로우시겠지만 여쭈어 봅니다.
    글쓴이 분께서도 고민 해보셨을 거라고 생각됩니다. 방법이 있다면 알려주실 수 있으신지 부탁드립니다^^

  8. 다 성공했습니당
    근데 사진은 안찍고 그냥 카메라로 보이는것은 안되나요?

Leave a Reply

Your email address will not be published. Required fields are marked *