주의!!! : ESP8266 모듈이 수많은 개발자들 참여로 동작도 안정화되고 활용범위도 넓어져서 WIFI-232 모듈의 기능을 대부분 대체하고 있습니다. WiFi 통신이 필요한 대부분의 경우 ESP8266 모듈을 사용하는 것이 좋습니다. ESP8266 관련 정보는 링크에서 보실 수 있습니다.

저렴한 ESP8266 모듈을 테스트하다가 지쳐(문제가 너무 많네요. 불안정하고), 보다 고급형 WiFi 모듈을 테스트하기로 했습니다. 예전에 구매해 둔 WiFi232(HF-LPT100) 모듈입니다. 매뉴얼 문서와 각종 테스트용 어플리케이션이 잘 정리되어 있지만 인터넷 상에 사용 예제를 찾기 힘들다는 단점이 있습니다. 가격도 상대적으로 비싸구요. 하지만 동작 자체는 ESP8266과 비교할 때 굉장히 안정적이고, 장치간 연결을 쉽게 해주는 장점이 있습니다. 지원하는 기능도 훨씬 뛰어납니다.

주의!!! : WiFi232-A/B 모듈은 WiFi232 모듈간 연결(혹은 폰과 같은 WiFi 장치와 연결)은 굉장히 쉽고 다양하게 응용할 수 있지만 인터넷 연결은 문제가 좀 있어보입니다. WiFi232-T 모델이 제한적으로나마 인터넷 연결을 지원하는 것 같습니다.

WiFi232 – A/B

WiFi232 – A 모듈과 B 모듈의 차이는 칩형 안테나를 내장하고 있느냐의 차이입니다. 좌측 상단에 있는 칩형 안테나가 있는 경우 별도의 외장 안테나 없이도 잘 동작합니다.

매뉴얼, 디버깅 프로그램 및 관련자료 다운로드 : Click here to download

제작사 홈페이지(상세정보 있음) : http://www.usriot.com/Product/29.html

모듈의 기본적인 설정을 아래와 같은 방법을 이용해서 쉽게 바꿀 수 있습니다.

먼저 모듈의 VCC, GND 핀을 3.3v, GND 로 연결해주면 준비 끝입니다. 모듈에 전원이 입력되면 이제 무선으로 접속해서 설정을 바꿀 수 있습니다.

wifi-a11-pin

1. 모듈 설정 변경 (by Web)

  • WiFi 를 통해 SSID=HF-A11x_AP 검색 – 연결
  • 브라우저로 http://10.10.100.254 접속
  • ID/PW = admin/admin
  • 접속 후 오른쪽 상단 english 선택
  • 메뉴 : Mode selection, AP interface setting, STA interface setting, Application setting, Device management
  • Mode selection :
    AP Mode (공유기 처럼 Access Point 로 동작)
    STA Mode (Station mode – 일반 wifi 기기, client 로 동작)
  • AP interface setting : AP 모드 설정
  • STA interface setting : STA 모드 설정
    STA interface parameters : Pass Phrase에 암호를 입력하고 AP’s SSID를 검색해서 특정 AP(공유기)에 연결되도록 설정가능. AP에 연결될 때 IP 를 생성하는 방식 결정 가능.
  • Application setting : serial port, UART, Network protocol 설정
    Uart setting – Baudrate : serial 통신 속도 (편의를 위해 9600으로 설정해두면 편합니다)
    Network setting : Protocol (TCP/UDP), Mode(Server/Client) 설정 가능. TCP server/TCP client/UDP 로 동작할 수 있습니다. TCP server 모드가 아닌 경우 통신할 장치의 IP address, port를 지정해줘야 합니다.
  • Device management : 일반 설정 항목들
    Admin 정보, Restart, Factory reset, 펌웨어 업데이트가 가능합니다. 일부 설정의 경우 여기서 restart를 해줘야 적용됩니다.

2. 모듈 테스트 및 디버깅 – Software debugging tool

위에서 관련 자료를 다운로드 받으셨다면 software 폴더 안에서 TCP232.exe 파일을 찾으실 수 있습니다. FTDI 모듈을 이용해 PC와 연결한 다음 TCP232 어플을 이용해서 동작을 테스트 해보실 수 있습니다.

3. 동작 방식

무선 컨트롤

wireless_control

WiFi232 모듈은 AP 모드로 동작하고 user device와 serial 로 연결되어 있습니다. 스마트 폰과 같은 컨트롤 장치에서 무선으로 WiFi232 모듈에 접속해서 user device를 컨트롤 할 수 있습니다.

원격 관리

remote_management

WiFi232 모듈은 STA 모드로 동작하고 무선 AP를 통해 인터넷에 접속합니다. 모듈은 TCP client로 설정하고 모듈과 user device가 serial 로 연결됩니다.

 Transparent serial port

transparent_serial

2개의 WiFi232를 통해 마치 serial로 두 장치가 연결된 것 처럼 구현해줍니다. 왼쪽 WiFi232 모듈은 AP 모드로 설정하고 기본 SSID 및 IP address, TCP-Server 모드, port ID:8899를 사용합니다.  오른쪽 WiFi232 모듈은 STA 모드, 같은 SSID, DHCP network enable, TCP-Client 모드, portID:8899로 설정합니다. Target IP address 부분은 왼쪽의 WiFi232 모듈의 IP address와 같게 설정해 줍니다.

오른쪽 WiFi232 모듈이 부팅되면 같은 SSID와 세팅값을 가진 모듈을 검색합니다. 검색되면 자동으로 TCP/Server-Client 로 접속됩니다. 이후부터는 두 개의 user device가 마치 serial 로 연결된 것 처럼 통신할 수 있습니다.

복합 환경

wireless_data_acquisition

하나의 WiFi232가 서버 역할을 하며 나머지 WiFi232 모듈이 client로 접속됩니다. 데이터 서버 PC는 WiFi232 서버 모듈과 무선통신을 합니다. WiFi232서버 모듈은 AP 모드로 설정되고 나머지 모듈들은 STA 모드로 설정됩니다. 데이터 서버 PC는 TCP – server 프로토콜을 open 하며, 나머지 WiFi232 모듈은 TCP/Client 프로토콜을 open 합니다.

AP+STA 모드

ap_sta

무선 장치들을 묶어주는 AP 역할을 하면서 동시에 STA 로 외부 서버에 request도 할 수 있는 복합모드입니다. 단, 이 모드는 AT 커맨드로 설정한 뒤, TCPB 커맨드로 request를 보내야 합니다. 아두이노와 함께 사용하는 경우 단연 이 모드가 유용할 것입니다. 이 모드를 통해 인터넷 연결을 지원하는 것처럼 쓰여 있는데 실제 동작은 안되네요. AT 커맨드를 지원하지 않습니다.

4. AT 커맨드 (by Serial)

모듈에 전원을 넣으면 transparent transmission mode로 동작합니다. 사용자는 serial port command를 통해 설정 모드로 바꿀 수 있습니다.

설정 모드로 변경

“+++” 문자열을 전송하면 “a” 피드백이 옵니다. 다시 “a” 커맨드를 입력하면 “+ok” 응답이 오고 AT+ 커맨드 설정 모드로 변경됩니다.

이후 모든 AT 커맨드는 개행문자(return+new line, \r\n)로 끝나야합니다.

AT 커맨드

아래와 같이 AT 커맨드를 사용할 수 있습니다. AT 커맨드의 상세내용은 위 다운로드 링크에 포함된 매뉴얼을 참고하세요.

========================================================

+++
a
a
+ok

AT+H
AT+: NoNE command, reply “+ok”.
AT+ASWD: Set/Query WiFi configuration code.
AT+E: Echo ON/Off, to turn on/off command line echo function.
AT+ENTM: Goto Through MOde.
AT+NETP: Set/Get the Net Protocol Parameters.
AT+MSLP: Set/Query deep sleep mode parameters.
AT+PING: General PING command.
AT+WMODE: Set/Get the WIFI Operation Mode (AP or STA).
AT+WSLK: Get Link Status of the Module (Only for STA Mode).
AT+WSLQ: Get Link Quality of the Module (Only for STA Mode).
AT+WSCAN: Get The AP site Survey (only for STA Mode).
AT+TCPLK: Get The state of TCP link.
AT+TCPTO: Set/Get TCP time out.
AT+TCPDIS: Connect/Dis-connect the TCP Client link
AT+RECV: Recv data from WIFI
AT+SEND: Send data to WIFI
AT+WEBU: Set/Get the Login Parameters of WEB page.
AT+WEBVER: Get WEB version.
AT+WSDNS: Set/Get the DNS Server address.
AT+WADMN: Set/Get the domain name of WEB page.
AT+WEBSWITCH: Set/Get the parameters of WEB page.
AT+PLANG: Set/Get the language of WEB page.
AT+UPURL: Set/Get the path of remote upgrade.
AT+UPFILE: Set/Get the file name of config file for remote upgrade.
AT+UPST: Start the remote upgrade.
AT+UPWEB: Start the remote upgrade webpages.
AT+UPCFG: Start the remote upgrade default setting.
AT+UPAUTO: Start the remote upgrade by config file.
AT+LOGSW: Enable/Disable upload logs.
AT+LOGPORT: Set/Get the UDP port for upload logs.
AT+SOCKB: Set/Get Parameters of socket_b.
AT+TCPLKB: Get The state of TCP_B link.
AT+TCPTOB: Set/Get TCP_B time out.
AT+TCPDISB: Connect/Dis-connect the TCP_B Client link.
AT+RCVB: Recv data from socket_b
AT+SNDB: Send data to socket_b
AT+RELD: Reload the default setting and reboot.
AT+SLPEN: Put on/off the GPIO7.
AT+RLDEN: Put on/off the GPIO45.
AT+Z: Reset the Module.
AT+MID: Get The Module ID.
AT+VER: Get application version.
AT+WANN: Set/Get The WAN setting if in STA mode.
AT+LANN: Set/Get The LAN setting if in ADHOC mode.
AT+UART: Set/Get the UART0/UART1 Parameters.
AT+WSSSID: Set/Get the AP’s SSID of WIFI STA Mode.
AT+WAP: Set/Get the AP parameters.
AT+WSKEY: Set/Get the Security Parameters of WIFI STA Mode.
AT+WAKEY: Set/Get the Security Parameters of WIFI AP Mode.
AT+NDBGL:set/get debug level
AT+WPSBTNEN:enable/disable wps button
AT+WALKIND:enable/disable LED indication of AP connection
AT+WADHCP:enable/disable AP dhcp server and set ip address pool
AT+MDCH: Put on/off automatic switching WIFI mode.
AT+H:show help

======================================================

AT+H 는 커맨드에 대한 설명을 출력해 줍니다. AT+Z는 모듈을 리셋하며, AT+RELD는 default 셋팅을 복원합니다. AT+ENTM은 transparent 모드로 돌아갑니다.

WiFi232 – T

WiFi232 A/B 의 소형화 버전인 WiFi232-T 모듈도 있습니다. 가격도 10불이 약간 안될 정도로 저렴한데 사용방법 및 기능은 WiFi232-AB 버전과 거의 비슷한 것 같습니다. 다만 내장 안테나가 없습니다. 사용해보지는 않았지만 WiFi232 A/B 정도로 안정적인 동작을 보여준다면 매력적인 모듈이 아닌가 싶습니다.

이 모듈을 이용해서 인터넷 연결하는 아두이노 코드가 아래 링크에 있습니다. 추후 모듈 구입하면 이놈도 한번 리뷰 해보겠습니다.

HF-LPT100_or_USR-WIFI232-T_front_and_bac

WiFi232-T 연결 및 설정 상세 매뉴얼 : http://2xod.com/articles/Arduino_Wifi_With_Hi_Flying_HF-LPT100_or_USR-WIFI232/

아두이노 예제 : https://github.com/RyAndrew/Arduino-Uart-Wifi/blob/master/Examples/ArduinoUnoBasicCommandsExample/ArduinoUnoBasicCommandsExample.ino

기타 참고 링크 : https://gist.github.com/ajfisher/1fdbcbbf96b7f2ba73cdhttp://www.rei-labs.net/usr-wifi232-wifi-to-serial-module-hf-lpt100/