RN-171

로빙 네트워크의 RN171, RN131과 같은 WiFly라는 독자적인 펌웨어를 가지고 단독으로 동작할 수 있는 무선랜 모듈은 여러가지 방법으로 무선랜 망을 형성할 수 있다. 많이 쓰던 것이 클라이언트로서 기존의 AP에 패어링 되는 인프라스턱쳐(Infrasturecture) 모드였고, 1:1 통신을 위해서 사용하던 것이 애드혹(ad-hoc) 모드였다. 

스마트폰 열풍이 일고 나서 스마트폰과 무선랜으로 연동되는 장치를 만들고 싶어 하는 사람들로부터 많~은 문의를 받는다.

예전에 여기 블로그에 한번 올린 적 있는 무선랜 모듈 WiFly와 스마트폰의 1:1 통신 이라는 글 역시 그런 요구에 따라서 썼던 글이었다. 이때는 WiFly가 인프라스트럭쳐 모드로서 스마트폰의 hot spot으로 연결해 들어가는 방법이었다. 

MS 윈도우나 리눅스 뿐만 아니라 아이폰은 애드혹 모드를 지원하고 있기 때문에 그동안 애드혹만 되더라도 M2M을 위해서나 장치와의 1:1 통신이 문제가 없었다. 하지만 안드로이드 폰은 구글의 정책에 의해서 애드혹 모드를 지원하지도 않고 있어서 안드로이드 폰과의 통신에서 애드혹 대신 이전에 썼던 글 처럼 폰을 핫스팟모드로 돌려서 폰을 마치 AP처럼 동작시킨 다음에 WiFly와 통신을 할 수 밖에 없었다. 

이를 해결하고자 WiFly도 AP 모드로 동작할 수 있는 기능을 최근에 추가하고 내부적으로 테스트해오고 있었다. 

최종적으로 공식 릴리즈까지는 아니어도 현재까기 본인도 몇달 테스트를 해봤지만 이 정도면 급히 이 기능을 요구하는 사용자가 쓰기엔 큰 문제 없어 보여서 베타릴리즈 정도로 생각하고 해당 내용을 올려본다. 

Roving Networks의 OTA 업데이트용 FTP 사이트 주소가 바뀌었다. 이미 변경한 사람은 그냥 둬도 되지만

아직 수정하지 않은 사용자는 아래 그림에 있는 것 처럼 

rn.microchip.com 으로 변경하고 나서 wifly7-245.img 파일을 업데이트하면 된다.

현재 AP모드가 지원되지 않는 버전은 wifly7-23x.img 로 파일 이름이 나오고 있고, AP 모드가 지원되는 것은 wifly7-24x.img 라는 번호로 새로운 파일이 올라오고 있다. 

RN171이 아닌 RN131을 사용하는 사용자의 경우 wifly-245.img 파일을 사용하면 된다.

아래 그림과 같은 과정으로 2.32버전이었던 모듈을 AP 모드가 지원되는 펌웨어로 교체하였다.

물론 외부와 데이터 연결 가능하도록 기존의 AP에 Wifly 모듈을 패어링하고 시작해야한다.

AP모드 실행은 예전 애드혹 모드 실행할 때와 마찬가지로 하드웨어적으로 모드를 설정하려면 GPIO9에 3.3V 전압을 인가하면 된다. 아래 그림은 그렇게 GPIO9에 3.3V를 인가해서 AP모드로 다른 클라이언트가 접속하기를 기다리게 리부팅한 것이다.

접속은 사용하고 있는 안드로이드 폰을 사용하였다. 

아래 보이는 것과 같이 WiFly-EZX-9c라는 AP가 무선랜 AP리스트에 올라왔다. 제일 마지막 두자리는 해당 모듈의 MAC 주소 뒷자리이다. 

접속정보를 살펴보면

1.2.3.10이라는 주소를 할당 받았고

DNS, Server IP는 1.2.3.4이다. 즉 WiFly 모듈이 AP로서 1.2.3.4라는 IP 주소를 가지고 내 안드로이드폰에 1.2.3.10이라는 주소를 할당해줬다. 

폰에서 TELNET을 사용할 수 있는 앱을 하나 띄워서 정말 제대로 모듈로 접근할 수 있는지 해보았다. 

짜잔~

telnet 1.2.3.4:2000

으로 접속하고 나니 윈도우나 리눅스 시스템으로 시리얼로 모니터링하던 것과 동일하게 $$$를 입력한 뒤 모듈의 프롬프트로 진입할 수 있다. 

현재 접속되어 있는 클라이언트의 리스트를 보는 새로 생긴 명령어인 show lease

라는 것으로 현재 접속되어 있는 클라이언트가 각각 어떤 IP 주소를 할당 받았는지 알아볼 수 있다. 

이번 펌웨어 업데이트로서 무선랜을 이용해서 스마트폰과 쉽게 통신기능을 갖춘 장치를 만들고 싶은 분들께 쉬~~~운 해법을 제시해 줄 것이다. 

마지막으로 추가로 사용할 수 있는 명령어를 살펴본다. 

GPIO9에 전압을 인가하는 하드웨어적인 방법이 아니라 명령어만으로도 위의 AP 모드로 진입할 수 있다. 

set wlan join 7                         // Enable AP mode

set wlan channel <value>         // Specify the channel to create network

set wlan ssid <string>              // Set up network SSID

set ip dhcp 4                           // Enable DHCP server

set ip address <address>         // Specify the IP address

set ip net <address>                // Specify the subnet mask

set ip gateway <address>         // Specify the gateway

save                                       // Store settings

reboot                                     // Reboot the module in AP mode

이미 위에서 이야기한 것과 같이
show lease라는 명령어로 장치들에 할당된 IP주소, 클라이언트의 MAC 주소, 남은 리스 시간, 호스트명을 볼 수 있다.
<2.42> show lease
1.2.3.10,f0:cb:a1:2b:63:59,153,*
1.2.3.11,00:00:00:00:00:00,0,
1.2.3.12,00:00:00:00:00:00,0,
1.2.3.13,00:00:00:00:00:00,0,
1.2.3.14,00:00:00:00:00:00,0,
1.2.3.15,00:00:00:00:00:00,0,
1.2.3.16,00:00:00:00:00:00,0,
<2.42>

show z 는 제일 마지막에 접속해온 장치 또는 제일 마지막에 TCP 망을 접근했던 클라이언트의 주소를 알려주는 명령어이고,

show associated 는 연결된 장치의 접속번호, MAC주소, 수신 바이트수, 전송 바이트수, 마지막 패킷 수신 이후 시간(초)를 보여준다. 

set wlan link <value>는 링크 모니터 시간을 나타낸다. 해당 시간이 경과하면 AP 모듈은 각 클라이언트로부터 데이터 송수신이 있었는지를 체크하고, 아무런 통신이 없었던 장치는 끊어버린다. 

구매와 관련한 자세한 문의는 저희 회사 (주)에이디칩스 031-463-7560 으로 해주세요~ 

에이디칩스 네이버 까페를 통해서 문의주셔도 됩니다~