예전에 해외 사이트( https://sourceforge.net/projects/siriproxyrpi/) 에서 siriproxyrpi에 대해서 본 적이 있다. 아이폰 빌트인 Siri로 전자제품을 자유롭게 제어하는 것..
당연히 해보고 싶었기에 이 때 라즈베리파이를 구매하게 되었으나, 회사홈페이지때문에 바쁘다는 핑계로 묵혀두었던 나의 홈오토메이션 열정에 기름을 붓게 된 분이 계셨으니 바로 클리앙 이라는 IT 커뮤니티의 '채플린'님 이다.
클리앙 팁과 강좌 게시판에서 homebridge 와 NEST API + esp8266 + mutt broker + app 조합으로 홈 오토메이션을 멋드러지게 소화해 내신 '채플린'님( https://github.com/chaeplin/neptune ) 의 사례를 보고 리알못(리눅스를 전혀 알지 못함 ㅠ_ㅠ)인 내가 먼지가 내려 앉은 라즈베리파이를 꺼내들고 용기내어 도전하게 되었다.
우선 아두이노 웹서버는 철거 하기 귀찮을 뿐만 아니라.. 라즈베리파이에서 Python 으로 대체하는데에는 다소 시간이 걸릴것으로 생각되기 때문에! 기존 http GET 주소를 그대로 사용한다. (파알못이라 ㅠ_ㅠ)
라즈베리 파이3 모델B에 우선 최신 운영체제인 Jessie를 설치!
http://www.raspberrypi.org
위 사이트에 방문해서 상단 Downloads-Raspbian-Raspbian Jessie-Download ZIP파일을 다운받고..
micro SD 카드를 FAT32로 우선 포맷-SDformatter앱(sd카드는 포맷할때 이 앱을 써야한다고 한다-)
으로 포맷을 하고 win32diskimager(https://sourceforge.net/projects/win32diskimager/) 를 통해 img파일을 부팅가능하도록 micro SD카드에 굽는다.
나는 맥북에 있는 빌트인 SD카드리더에 항상 Tardisk(Kickstarter에서 구매한 256GB 슬림SD카드)가 꼽혀있어서 그걸 뽑으면 Dropbox, 사진, iTunes Library가 연결이 끊어지게 되고 다시 위치를 잡아주는게 귀찮아서 예전에 서점에서 구매한 미니 SD카드 USB리더를 사용해서 작업을 하려 했었는데.. 이 걸 사용하려던게 화근이었다 ㅠㅠ win32diskimager에서 인식이 안되기도 하고.. 맥에서 인식이 안되기도 하고.. 간헐적으로 맥에서는 인식되고 패러럴즈에서는 인식이 안되기 까지.. 엄청 고생함.. 결국 그냥 Tardisk를 뽑아내고 인식이 안되는 microSD카드는 차량용 블랙박스에 잠깐 끼워서 강제로 포맷 해버린 후 진행하니 잘 되었다.(사실 이 microSD카드 때문에 엄청난 시간을 낭비함..)
여차저차.. 데비안이라는 OS의 개선형 운영체제 JESSIE 라는 아이를 드디어 라즈베리파이 안에 설치하게 되었다. 여담인데 JESSIE 라는 이름은 토이스토리2에 나오는 카우보이 여자의 이름이라고 한다. '데비안'이라는 이름도 토이스토리의 등장인물이기에 그 개선형도 '제시'라고 지었다고 한다.
제시라 하면.. 쎈언니!? 어디 얼마나 강력한가 한번 볼까?
생김새는 아주 귀엽다.
저 위에 검정색 모니터 모양의 아이콘이 터미널인듯.. 초기 세팅법을 인터넷을 검색해서 진행하였다.
비록 블루투스기능이 들어가 있는 최신기종의 라즈베리파이이지만 늘 모니터와 마우스, 키보드를 사용 할 수는 없는터라 와이파이에 연결시켜놓고 가장먼저 원격으로 조종이 가능한 방법을 찾아보았다.
VNC를 설치하는 방법으로 진행 (http://gma-log.tistory.com/72 )
$ sudo apt-get update
$ sudo apt-get install tightvncserver
만 입력하면 설치가 완료 된다.
그리고 vncserver :1을 입력하여 서버 번호를 설정, 비밀번호를 설정해 주면
클라이언트(맥북)에서 "ip주소":1 을 입력하고 비밀번호를 입력하는 간단한 절차만으로
VNC로 라즈베리파이에 접속이 가능하다.
라즈베리파이가 가진 ip주소도 포트포워딩을 해놓는다면 카페에 가서도 라즈베리파이에 접속이 가능! 그래서 바로 192.168.0.179를 포트포워딩 해 놓았다.
자 이제 라즈베리 파이 준비가 완료 되었으니
homebridge를 vnc설치방법과 동일하게 설치를 시작해볼까!?
https://github.com/nfarina/homebridge
에 가서 보면 메인화면에서부터 애플워치로 시리에게 "문열어"하면 문이 열리는 마법같은 움짤을 볼 수 있다.
헌데..
그 다음 config.json 파일을 만들겸 편집하면 되는데 터미널에서
$ sudo vi ~/.homebridge/config.json 라고 치면 파일이 만들어지면서 vi 이라는 편집기가 열린다.
vi 편집기 사용방법을 몰라서 또.. vi 명령어 일람 (http://www.antsys.co.kr/data/vi_editor.htm)을 참고
해 진행했다.
내게 필요한건 i를 누르면 insert 모드로 전환되고 편집 후 esc를 눌러서 insert 모드 해제 후 :wq 입력하여 저장하고 닫기 또는 :q!로 저장안하고 닫기 하는 것 정도 선이었다. ㅎㅎ
홈브릿지 설치 및 config.json 파일 수정이 완료 되었으니 자 그럼 어디한번 잘 되는지 실행 해 볼까?
$ homebridge
를 입력하면 아래와 같이 터미널이 출력된다
자 이렇게 완성이 되었고.. 시연 동영상~!
가끔 사용자의 실수로 homebridge가 이중실행 되면 실행시
Error: listen EADDRINUSE :::51826 ~~ 뭐시기
가 뜬다. 이럴 땐
$ killall homebridge
$ sudo killall homebridge
후 재실행 하면 되며..
가끔 homebridge와 아이폰 홈앱이 꼬이기도 하나보다. homebridge는 정상적으로 실행 됨을 확인했는데 아이폰에서 갑자기 안잡힌다면!
config.json 파일에서 username 부분에 있는 맥어드레스를 살짝 바꿔주면 된다. 예를 들어 끝 55를 60으로~!
당연히 해보고 싶었기에 이 때 라즈베리파이를 구매하게 되었으나, 회사홈페이지때문에 바쁘다는 핑계로 묵혀두었던 나의 홈오토메이션 열정에 기름을 붓게 된 분이 계셨으니 바로 클리앙 이라는 IT 커뮤니티의 '채플린'님 이다.
클리앙 팁과 강좌 게시판에서 homebridge 와 NEST API + esp8266 + mutt broker + app 조합으로 홈 오토메이션을 멋드러지게 소화해 내신 '채플린'님( https://github.com/chaeplin/neptune ) 의 사례를 보고 리알못(리눅스를 전혀 알지 못함 ㅠ_ㅠ)인 내가 먼지가 내려 앉은 라즈베리파이를 꺼내들고 용기내어 도전하게 되었다.
우선 아두이노 웹서버는 철거 하기 귀찮을 뿐만 아니라.. 라즈베리파이에서 Python 으로 대체하는데에는 다소 시간이 걸릴것으로 생각되기 때문에! 기존 http GET 주소를 그대로 사용한다. (파알못이라 ㅠ_ㅠ)
라즈베리 파이3 모델B에 우선 최신 운영체제인 Jessie를 설치!
http://www.raspberrypi.org
위 사이트에 방문해서 상단 Downloads-Raspbian-Raspbian Jessie-Download ZIP파일을 다운받고..
micro SD 카드를 FAT32로 우선 포맷-SDformatter앱(sd카드는 포맷할때 이 앱을 써야한다고 한다-)
으로 포맷을 하고 win32diskimager(https://sourceforge.net/projects/win32diskimager/) 를 통해 img파일을 부팅가능하도록 micro SD카드에 굽는다.
나는 맥북에 있는 빌트인 SD카드리더에 항상 Tardisk(Kickstarter에서 구매한 256GB 슬림SD카드)가 꼽혀있어서 그걸 뽑으면 Dropbox, 사진, iTunes Library가 연결이 끊어지게 되고 다시 위치를 잡아주는게 귀찮아서 예전에 서점에서 구매한 미니 SD카드 USB리더를 사용해서 작업을 하려 했었는데.. 이 걸 사용하려던게 화근이었다 ㅠㅠ win32diskimager에서 인식이 안되기도 하고.. 맥에서 인식이 안되기도 하고.. 간헐적으로 맥에서는 인식되고 패러럴즈에서는 인식이 안되기 까지.. 엄청 고생함.. 결국 그냥 Tardisk를 뽑아내고 인식이 안되는 microSD카드는 차량용 블랙박스에 잠깐 끼워서 강제로 포맷 해버린 후 진행하니 잘 되었다.(사실 이 microSD카드 때문에 엄청난 시간을 낭비함..)
여차저차.. 데비안이라는 OS의 개선형 운영체제 JESSIE 라는 아이를 드디어 라즈베리파이 안에 설치하게 되었다. 여담인데 JESSIE 라는 이름은 토이스토리2에 나오는 카우보이 여자의 이름이라고 한다. '데비안'이라는 이름도 토이스토리의 등장인물이기에 그 개선형도 '제시'라고 지었다고 한다.
제시라 하면.. 쎈언니!? 어디 얼마나 강력한가 한번 볼까?
생김새는 아주 귀엽다.
저 위에 검정색 모니터 모양의 아이콘이 터미널인듯.. 초기 세팅법을 인터넷을 검색해서 진행하였다.
비록 블루투스기능이 들어가 있는 최신기종의 라즈베리파이이지만 늘 모니터와 마우스, 키보드를 사용 할 수는 없는터라 와이파이에 연결시켜놓고 가장먼저 원격으로 조종이 가능한 방법을 찾아보았다.
VNC를 설치하는 방법으로 진행 (http://gma-log.tistory.com/72 )
$ sudo apt-get update
$ sudo apt-get install tightvncserver
만 입력하면 설치가 완료 된다.
그리고 vncserver :1을 입력하여 서버 번호를 설정, 비밀번호를 설정해 주면
클라이언트(맥북)에서 "ip주소":1 을 입력하고 비밀번호를 입력하는 간단한 절차만으로
VNC로 라즈베리파이에 접속이 가능하다.
라즈베리파이가 가진 ip주소도 포트포워딩을 해놓는다면 카페에 가서도 라즈베리파이에 접속이 가능! 그래서 바로 192.168.0.179를 포트포워딩 해 놓았다.
자 이제 라즈베리 파이 준비가 완료 되었으니
homebridge를 vnc설치방법과 동일하게 설치를 시작해볼까!?
https://github.com/nfarina/homebridge
에 가서 보면 메인화면에서부터 애플워치로 시리에게 "문열어"하면 문이 열리는 마법같은 움짤을 볼 수 있다.
$sudo npm install -g homebridge
을 입력하여 설치를 진행한다.헌데..
WARN EACCES user "root" does not have permission to access the dev
가 나온다. 이럴경우에는 위 명령어에 --unsafe-perm
을 말미에 추가하면 된다고 알려주는 친절한 홈브릿지 아자씨!그 다음 config.json 파일을 만들겸 편집하면 되는데 터미널에서
$ sudo vi ~/.homebridge/config.json 라고 치면 파일이 만들어지면서 vi 이라는 편집기가 열린다.
vi 편집기 사용방법을 몰라서 또.. vi 명령어 일람 (http://www.antsys.co.kr/data/vi_editor.htm)을 참고
해 진행했다.
내게 필요한건 i를 누르면 insert 모드로 전환되고 편집 후 esc를 눌러서 insert 모드 해제 후 :wq 입력하여 저장하고 닫기 또는 :q!로 저장안하고 닫기 하는 것 정도 선이었다. ㅎㅎ
홈브릿지 설치 및 config.json 파일 수정이 완료 되었으니 자 그럼 어디한번 잘 되는지 실행 해 볼까?
$ homebridge
를 입력하면 아래와 같이 터미널이 출력된다
아래 회색 박스 안에 있는 코드가 있어야 아이폰 홈 앱에서 연결이 가능하다.
연결이 완료되고 홈 앱에서 확인이 되면 identity request가 오고간다.
홈 앱을 열고
시작하기를 누르면 '나의 집'이 자동으로 추가된다
액세서리 추가를 누르면 라즈베리파이에서 만든 homebridge가 뜬다. 눌러주자
터미널 창에 있는 코드를스캔하라는데.. 레티나 디스플레이라서 그런지.. 안된다.
아래 '코드를 직접 입력하기' 를 눌러서
수동 입력을 완료 하면 뜨는 메시지
기숙사로 설정해주고..
그리고 시리한테 말하기 편한 단어로 변경했다. 나는 기숙사에 살고 있어서..
책상에 있는 스탠드가 내가 제어할 수 있는 전등의 전부다 ㅎ
자 이렇게 완성이 되었고.. 시연 동영상~!
리모컨-릴레이 컨트롤
스탠드 전원 제어
config.json 소스코드
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:55",
"port": 51826,
"pin": "031-45-154"
},
"description": "Yejinius' HomeAutomation Service",
"platforms": [],
"accessories": [
{
"accessory": "Http",
"name": "Light",
"switchHandling":"realtime",
"http_method":"GET",
"caption": "Stand",
"on_url": "LOCALIPADDRESS:PORT/?lighton1",
"off_url": "LOCALIPADDRESS:PORT/?lightoff1",
"status_url": "",
"service":"Switch",
"brightnessHandling": "no",
"brightness_url": "",
"brightnesslvl_url": "",
"username": "",
"password": ""
},
{
"accessory": "Http",
"name": "MainDoor",
"switchHandling":"realtime",
"http_method":"GET",
"caption": "Maindoor",
"on_url": "LOCALIPADDRESS:PORT/?HIGH",
"off_url": "LOCALIPADDRESS:PORT/?LOW",
"status_url": ""
}
]
}
Error: listen EADDRINUSE :::51826 ~~ 뭐시기
가 뜬다. 이럴 땐
$ killall homebridge
$ sudo killall homebridge
후 재실행 하면 되며..
가끔 homebridge와 아이폰 홈앱이 꼬이기도 하나보다. homebridge는 정상적으로 실행 됨을 확인했는데 아이폰에서 갑자기 안잡힌다면!
config.json 파일에서 username 부분에 있는 맥어드레스를 살짝 바꿔주면 된다. 예를 들어 끝 55를 60으로~!
댓글
댓글 쓰기