[라즈베리파이 강좌] 안드로이드 씽스(Android Things) 시작하기 - 1.2 공유기를 통해 초기화하기

알도 2017-11-15 (수) 17:47 7년전 3973  


 

라즈베리파이 강좌

  안드로이드 씽스(Android Things) 시작하기 - 1.2 공유기를 통해 초기화하기






  안녕하세요. 메카솔루션 알도입니다.

  오늘은 안드로이드 씽스(Android Things)에 대해서 알아보도록 하겠습니다.


  안드로이드 씽스는 안드로이드 운영체제를 기반으로 한 사물 인터넷 플렛폼입니다. 안드로이드 운영체제나 리눅스 기반의 라즈비안과 다른 점이라면 안드로이드 씽스는 컴퓨터가 아닌 장치 자체를 개발하는 것이 목적이기 때문에, 마치 아두이노처럼 하나의 앱(프로그램)만 실행한다는 점입니다. 컴퓨터로 치면, 여러분들이 컴퓨터 전원을 넣었는데 작업표시줄도 바탕화면도 없이 오직 크롬 브라우져만 실행되고 있는 것입니다. 실행할 앱 하나에만 모든 자원을 집중하기 때문 라즈베리파이의 자원을 최대한 활용할 수 있다는 것입니다.


  안드로이드 씽스는 라즈베리파이만을 위한 것이 아니라 인텔의 에디슨이나 줄, NXP사의 i.MX 시리즈 같은 파트너 사들의 싱글보드 컴퓨터들도 지원하고 있습니다. 지금은 개발 중이지만, 나중에 완성되면, 더 많은 싱글 보드 컴퓨터들을 지원할 것 같습니다. 안드로이드 씽스의 궁극적인 목적은 안드로이드 앱을 개발하듯이 장치를 개발할 수 있게 해주는 것입니다. 안드로이드 씽스 홈페이지에도 보면 처음 부분에 나오는 말이 "당신이 앱을 개발할 수 있다면, 장치도 개발할 수 있습니다.(If you can build an app, you can build a device)"입니다.



   이러한 부분에서 보면 라즈베리파이로 분류하기보다는 안드로이드 앱 개발로 분류되는 것이 더 맞습니다만, 아무리 구글에서 한다고는 해도 아직 개발 중(현재 DP5:Developer Preview 5)이고, 과거 구글이 시도했던 사물 인터넷 플랫폼 '브릴로'처럼 언제 엎어질(?)지 모르기 때문에 당장은 소개만 하는 느낌으로 라즈베리파이 쪽에 넣었씁니다. 또한 라즈베리파이를 리눅스 컴퓨터로 활용하기보다는 아두이노보다 강력한 사물 인터넷 장치로 이용하고자 하시는 분들에게는 더 이상 리눅스 터미널에서 허우적대지 않아도 되는 희소식이 될 것 같습니다.


 


 

     공유기로 초기화하기


  지난 번에는 안드로이드 씽스 시스템 이미지를 굽고 이 이미지로 라즈베리파이를 부팅하기까지 해봤습니다. 이번에는 공유기를 통한 방법은 안드로이드씽(Android Things)에서 라즈베리파이를 초기화하기 위한 방법으로 공유기와 랜선이 필요하며, 인터넷 연결은 필수 사항은 아닙니다. 공유기가 말만 거창하고 덩치만 컸지 가격으로 치면 시리얼 컨버터보다 조금 비싼 정도이며, 요즘에는 집집마다 공유기가 있기 때문에 불편한 솔루션은 아니라고 생각합니다.



mDNS 준비

  mDNS란 Multicast Domain Name Service의 약자로 DNS(Domain Name Service)와 비슷한 개념입니다. DNS란 우리가 인터넷을 사용할 때 이용하고자 하는 사이트의 IP주소를 사용하는 것은 불편한 점이 많기 때문에 naver.com 같은 도메인 네임이라는 것을 만들어 IP주소에 연결해주는 서비스를 말합니다. mDNS란 로컬 네트워크 즉 집이나 사무실, 혹은 건물에 하나 혹은 다수의 공유기로 구성된 네트워크에서 IP가 아닌 컴퓨터의 이름으로 통신을 할 수 있게 해주는 서비스입니다. DNS는 서비스를 제공하는 서버에서 도메인 네임과 IP를 연결해주는 반면, mDNS는 각 컴퓨터가 자신의 이름과 IP를 네트워크 안에 연결된 모든 컴퓨터에 전송, 즉 다중전송(multicast)을 하기 때문에 mDNS란 이름이 붙었습니다.  원래 네트워크 프린터 같은 네트워크 장비의 사용을 편하게 하기 위해 만든 기능인데, 라즈베리파이 같은 싱글보드 컴퓨터에서 사용해도 편리하다는 점 때문에 점차 알려지기 시작했습니다.

  필자의 경우도 모니터 없이 라즈베리파이를 사용하는 방법에 대해 조사를 하다가, "모니터가 없는 라즈베리파이의 IP주소를 어떻게 알아내느냐?"하는 난관에 부딛혀서, "브로드캐스트 주소를 사용하면 되지 않을까?"라는 생각을 했습니다. 브로드캐스트 주소란 아이피 주소에서 255에 해당하는 주소로, xxx.xxx.xxx.255이면 xxx.xxx.xxx.2 ~ xxx.xxx.xxx.254 사이에 있는 모든 컴퓨터에게 브로드캐스트 즉 방송을 할 수 있는 주소입니다. 아무튼 네트워크 초보자인 필자는 "과연 어떻게 브로드캐스트 주소로 메세지를 주고 받을까?" 고심하던 중, 안드로이드씽(Android Things)을 만지면서 안드로이드씽이 mDNS를 사용하기 때문에 이 mDNS에 대해서 알게 되었습니다

  이 기술을 초기에 애플과 마이크로소프트 모두 개발하기 시작했는데, 어떤 이유에서인지 마이크로소프트는 실패하고 애플만 성공하게 되었습니다. 그래서 애플과 라즈비안을 포함한 리눅스 운영체제들은 이 기능을 기본으로 탑재하고 있습니다. 즉 라즈베리파이는 이미 자신의 이름을 연결된 네트워크에 브로드캐스트하고 있기 때문에 윈도우에서 이걸 받기만 하면 됩니다.


  mDNS를 받기 위해서는 간단하게 애플의 프린터 드라이버를 설치하면 됩니다. 구글에서 bonjour printer를 검색하거나 여기에 가서 받거나 아래 링크를 클릭해서 바로 다운받아서 설치하시면 됩니다.


    BonjourPSSetup.exe

  

  Bonjour(봉주르)란 애플이 만든 mDNS 소프트웨어의 등록된 상품명입니다.

 




라즈베리파이 공유기에 연결하기

  아래 사진과 같이 공유기의 주황색의 이더넷 모터 포트에 연결을 해줍니다. 사진에서는 보이지 않지만, 맨 위의 광대역네트워크 포트는 노란색으로 인터넷이 들어오는 선에 연결해야 합니다.



  2번째 케이블이 제 컴퓨터에 연결된 것으로 꼭 유선일 필요는 없습니다. 유선이든 무선(WiFi)든 이 공유기에 연결된 장치들은 모두 하나의 로컬 네트워크에 연결되어 있는 것입니다. 사진에는 없지만 전원을 연결해서 켜주는 것도 잊지 마세요.



WiFi 연결 설정하기

  지금 이 상태에서 사용해도 되지만, WiFi를 연결하면 선이 하나 줄어드는 셈이니 WiFi에 연결해보겠습니다. 시리얼 통신을 했던 경우와 달리, 윈도우의 프롬프트나 파워쉘에서 안드로이드 씽스에 접속하려면 SDK Platform-Tools 안에 있는 ADB(Android Debug Bridge)라는 것이 필요합니다. 사실 안드로이드 스튜디오를 설치했으면 함께 설치되는데, 찾아가서 사용하기가 불편한 부분이 있으므로 그냥 새로 하나 받아서 하겠습니다. 여기에 가서 다운받거나 윈도우 사용자 분들은 다음의 링크를 클릭하시면 다운로드가 시작됩니다.


    platform-tools-latest-windows.zip


  이번에만 쓰고 지울 것이니 어디든 여러분들이 프롬프트나 파워쉘에서 쉽게 찾아갈 수 있는 곳에 푸시면 됩니다. 전 D 드라이브에 풀도록 하겠습니다. 아래와 같이 압축을 푼 폴더에 간 다음 .\adb connect Android.local 명령으로 안드로이드 씽스에 연결합니다. .\ 는 리눅스에서 sudo와 같은 개념입니다.



  안드로이드 씽스에 연결되면 .\adb shell 명령으로 안드로이드 씽스의 쉘로 들어갑니다. 다음 명령을 입력해서 와이파이 설정을 해줍니다.


am startservice \

  -n com.google.wifisetup/.WifiSetupService \

  -a WifiSetupService.Connect \

  -e ssid <공유기 이름> \

  -e passphrase <공유기 비밀번호>


  설정 후에 logcat -d | grep Wifi 명령으로 와이파이에 접속합니다.




굉장히 많은 내용이 터미널에 뜨는데 중간에(위 캡처에서는 맨 윗부분 같이) 다음 내용이 뜨면 접속이 된 것입니다.


WifiConfigureator : Successfully connected to 공유기 이름


  안드로이드 씽스에 모니터가 연결되어 있다면 다음과 같은 화면을 볼 수 있습니다. 


 







메이크쉐어 PC버전 로그인
로그인 해주세요.

회원가입

쪽지

포인트

스크랩
기초강좌(배우고)
부품사용법(익히고)
프로젝트(공유하고)
게시판
메이크쉐어 PC버전 로그인