2011년 7월 6일 수요일

블루투스 기기를 맥의 RFID 스마트키로 사용하기 (Use bluetooth device like iPhone or Android phone as a RFID smart key for Mac)

맥에서 proximity (http://code.google.com/p/reduxcomputing-proximity/)를 사용하면 블루투스 디바이스를 맥의 스마트 키로 사용할 수가 있다.
디바이스의 블루투스 MAC ID를 기준으로 동작하기 때문에 블루투스 디바이스는 아이폰이나 안드로이드 스마트폰 또는 일반 피쳐폰도 상관 없다.

 

다운 받아 설치한 다음 실행시키면 화면 위에 아이콘이 나타난다.
현재 등록된 블루투스 디바이스가 통신가능 범위 내에 들어와 있기 때문에 아이콘 아래쪽에 조그마한 글씨로 'IN'이라고 써 있다. 처음 실행해서 아직 블루투스 디바이스를 등록하지 않았거나 등록된 디바이스가 통신가능 범위 외에 있으면 'OUT'이라고 나오게 된다.



설정을 위해 아이콘을 클릭하면 메뉴가 나오고 그 메뉴에서 'Preferences'를 선택하면 된다.


설정 화면은 간단하고 각각에 대해 위에 설명을 달아 놓았다.

여기서 핵심은 자신이 원하는 동작을 애플스크립트로 만들어 주는 것이다.
예를 들어 사용자가 컴퓨터에 가까이 오면 스크린 세이버를 풀어준다던가 원하는 음악을 플레이 하게 해 줄수도 있다. 반대로 컴퓨터에서 멀어지면 자동으로 화면이 락이 걸리게 하는 식의 동작을 할 수 있다.

예를 들어 in range script와 out range script에 각각 아래의 이름으로 파일을 저장한 다음 Preferences 화면에서 해당 스크립트 파일을 지정해주면 멀어지면 스크린 세이버가 켜지고 가까이 오면 자동으로 스크린 세이버가 꺼지게 된다.

InScript.scpt


-- Disable the screen Saver Password
     do shell script "defaults -currentHost write com.apple.screensaver askForPassword -int 0"
     do shell script "notif"
     -- Turn OFF the screen saver
     tell application "ScreenSaverEngine" to quit
     tell application "Address Book"
          if not unsaved then
               try
                    quit
                    delay 1
               end try
          end if
     end tell

OutScript.scpt

-- Turn on the screen saver password
     do shell script "defaults -currentHost write com.apple.screensaver askForPassword -int 1"
     do shell script "notif"
     -- Activate the screen saver
     tell application "ScreenSaverEngine" to activate
 
다른 예제로 LockScreen 2를 사용하는 경우에는 다음 스크립트를 사용하면 된다.


In.scpt

tell application "System Events" 
          keystroke "l" using {command down}
end tell 

Out.scpt


tell application "System Events" 
          keystroke "asdfghjkl"  
end tell 
 
만일 시스템 이벤트가 아니고 특정 어플리케이션을 실행한 다음 그 어플리케이션에 키 이벤트를 보내고 싶으면 아래와 같이 하면 된다.


tell application "TextEdit"
activate
tell application "System Events" 
               keystroke "f" using {command down}
end tell 
end tell 
 

LockScreen 2를 사용하는 스크립트의 사용 예제이다.


 먼저 아이패드의 블루투스를 켜고 등록을 시켜 주었다. 맥에서 아이패드가 등록되어 현재 통신가능 범위 내에 있는걸 확인할 수 있다.


통신가능 범위 바깥으로 나간걸 시뮬레이션 하기 위해 아이패드의 블루투스를 꺼 주었다. 그러면 몇초 후 스크립트가 실행되어 LockScreen 2가 실행된 화면을 볼 수 있다.


여기서 다시 통신가능 거리로 들어온걸 시뮬레이션 하기 위해 아이패드의 블루투스를 켜 주었다. 역시 몇초 후 proximity가 등록된 블루투스 디바이스가 통신가능 거리로 들어온 걸 인식하면 바로 스크립트를 실행해 주기 때문에 LockScreen 2가 풀려 데스크탑 화면으로 돌아온다.



애플스크립트에 관해서는 인터넷을 찾아보면 공개되어 있는 자료들을 쉽게 찾을 수 있다.

http://www.computer-books.us/applescript_1.php

댓글 2개:

  1. Windows 에서는 안되나요? ^^

    답글삭제
  2. 윈도우용도 유사한 프로그램이 있기는 할겁니다. 제가 직접 찾아보지는 않아서 어떤걸 사용하면 된다고 말씀드릴수가 없네요.

    답글삭제