요즘 부쩍 많은 질문을 받고 있는 것이 핸드폰과 외부 장치간의 통신 방법이다. 아래 그림에 있는 WiFly라고 하는 Roving Networks의 제품 역시 무선랜 제품이기 때문에 AP를 이용하면 핸드폰과 자연스럽게 통신이 가능하다. 
그런데, AP가 없는 곳에서 이 무선랜 장치를 장착한 시스템으로부터 정보를 핸드폰에서 직접 받아 들이고 싶어하는 사용자를 자주 만난다. 

무선랜에서 1:1 통신을 위해서 기본적으로 제공되는 기능중 하나가 Adhoc 방식에 의한 접속이다.
이미 아이폰 또는 아이패드에서는 무선랜 AP 검색단계에서 Adhoc 방식으로 설정된 장치에도 붙을 수 있게 되어 있지만, 불행히도 안드로이드 계통의 장치는 Adhoc 방식이 막혀 있다. 
물론 루팅을 해서 시스템 권한으로 접근해서 /system/bin 아래에 있는 wpa_supplicant 라는 파일을 adhoc이 지원되는 파일로 다른 파일로 바꿔치기 하면 adhoc이 가능하긴 하지만 보편적 사용자가 할 수 있는 방법이 아니기에 제외!!
대신, 이러한 폰들은 핫스팟이라는 것이 된다. 안드로이드폰을 하나의 AP처럼 보이게 하는 방법이다. 
물론 3G는 막아 놓더라도 장치간 1:1 통신은 가능하다. 아래 그림처럼 임의의 SSID로 gyongsuAndroidAP라고 본인의 폰을 AP처럼 바꿔뒀다. 

이제 WiFly 모듈에서 주변에 AP를 검색해본다. 아래의 그림처럼 gyongsuAndroidAP가 떡하니 뜬다. 

join이라는 명령어로 이 AP에 접속을 시도했더니 스마트폰으로부터 IP도 잘 할당 받아왔다. 
이 IP와 포트, 여기서는 위 그림과 같이 192.168.43.134:2000로 핸드폰에서 telnet으로 접속했더니 TCP/IP 방식으로 핸드폰과 WiFly 장치 사이에 1:1 통신 소켓이 형성되었다. WiFly 측이서는 *OPEN*, 핸드폰에는 *HELLO* 라고 미리 정해둔 문자열이 나타났다. 
여기서 ‘This is connectrd from my android phone by Gyongsu’라고 핸드폰에서 쳤더니 connected가 아닌 connectrd라고 오타까지 WiFly의 UART로 잘~ 전달된다. 
아래는 폰에서 보여주는 TCP/IP 접속 성공 메시지이다. 
*HELLO*
정말 핼로우다.

프롬프트에서 $$$라고 명령어를 주면
실제 WiFly 내부의 제어모드로 진입까지 할 수 있다. 이렇게 진입하고 나서 
무선랜관련 세팅 값도 읽어 보고 (get w), 어떤 파일이 파일 시스템에 올라가 있는지도 확인해보고 (ls)..
GPIO의 값을 읽거나 모드를 변경하거나 WiFly에서 명령어로 지원하는 모든 기능을 이렇게 1:1 원격으로 처리할 수 있다.

그리고, 아래 그림과 같이 WiFly가 연결된 장치, 여기서는 UART로 연결된 내 PC에서 타이핑한 내용, ‘This is typing from the serial which is connected to WiFly’이 폰으로 쓩~ 날아왔다. 

무선랜 공유기가 있는 곳에서 사용하는 것이 가장 보편적 사용법이지만, 특수한 조건에서 그렇지 못하더라도 핸드폰과 이런 식으로 무선랜 장치를 통해서 데이터를 쉽~~~게 주고 받을 수 있다. 

U핼스 관련 소형기계와 연결해서 운동, 건강 정보를 폰을 통해 관리한다든지, 스마트홈 등에 두루두루 쓰이길 기대해본다.