IoT Wireless

WizFi250 GPIO and ADC with Smartphone 본문

WiFi module

WizFi250 GPIO and ADC with Smartphone

DH0815 2015. 1. 28. 09:24

오늘은 스마트폰으로 WizFi250-EVB에 연결된 LED를 제어하고, 가변 저항값을 읽어오는 예제를 설명하겠다. 별도의 MCU나 보드 없이 스마트폰의 앱이 직접 WizFi250-EVB과 연동한다는 것에 의미를 두자.


먼저, WizFi250에 추가된 GPIO와 ADC 명령어에 대해서 알아보자.





추가된 명령어들은 F/W 버전 1.0.3.1에서 사용할 수 있다.



<GPIO>

아래의 명령을 이용하면, WizFi250-EVB에 있는 GPIO 1번을 제어할 수 있다.

AT+FGPIO=1,1,0
[OK]
AT+FGPIO=1,1,1
[OK]

첫번째 옵션 : Input/Output을 지정하는 옵션
두번째 옵션 : GPIO 번호
세번째 옵션 : High/Low


<ADC>

아래의 명령을 이용하면, WizFi250에 있는 ADC의 값을 읽을 수 있다.

WizFi250에는 12bit의 ADC를 지원하고 있고, WizFi250-EVB에 있는 GPIO 5번을 사용하고 있다.

가변 저항을 돌리면 ADC 값이 0~4095까지 변경되는 것을 확인할 수 있다.

AT+FGETADC=?
0
AT+FGETADC=?
1344
AT+FGETADC=?
3548
AT+FGETADC=?
4095


테스트에는 WizFi250-EVB, GPIO 제어 테스트를 위한 LED와 저항, ADC 테스트를 위한 가변 저항 등이 사용되었다. 자세한 연결도는 아래를 참조하기 바란다.



이번에는 위의 기능을 구현하는 안드로이드 앱에 대해서 간단히 설명해 보겠다.


WizFi250을 Air Command mode로 변경하기 위해서 아래의 2가지 방법이 모두 가능하다.

두 가지 방법 모두 WizFi250 Air Command 접속을 위하여 TCP 50001 번을 사용하는 예제이다.


A. WizFi250을 AP에 접속(Association)시키고, AT Command로 Air Command mode 구동시키기 
  (WizFi250이 Station mode로 동작) (참조 : http://ilikethisplus.tistory.com/16)
AT+WSET=0,wizohp
[OK]
AT+WSEC=0,,wiznet218
[OK]
AT+WNET=1
[OK]
AT+WJOIN
Joining : wizohp
Successfully joined : wizohp

[Link-Up Event]
  IP Addr    : 192.168.13.29
  Gateway    : 192.168.13.1
[OK]
AT+MAIRCMD=O,T,50001,1
[OK]
B. WizFi250-EVB의 Function 버튼을 이용하여 AP mode & Air Command mode 구동시키기 
  (WizFi250이 AP mode로 동작)
Set AP Mode & Web Server Launch
[OK]

[Link-Down Event]
WizFi250 Version 1.0.3.1 (WIZnet Co.Ltd)

[Link-Up Event]
  IP Addr    : 192.168.12.1
  Gateway    : 192.168.12.1


자, 이번에는 스마트폰 앱으로 WizFi250 Air Command에 접속해보자.

스마트폰 앱에서 Configuration을 선택한 후에, WizFi250의 IP와 Port 번호를 입력한 후 Connect 한다.


스마트폰 앱의 LED 버튼을 누르게 되면, WizFi250에 연결된 LED가 Toggle 되는 기능을 하고, ADC 버튼을 누르게 되면 WizFi250의 ADC 값을 가져온다.
그리고, Status 버튼을 누르게 되면 현재의 WizFi250 상태 정보를 가져 온다.




public void onClick(View view) {

    if (view.getId() == R.id.buttonLed1)
    {
        addText("Toggle LED\n", Color.RED, Color.TRANSPARENT);
        if ( toggle_led1 )  { sendDataToSack("WizFi250AirCmd:AT+FGPIO=1,1,1\r"); toggle_led1=!toggle_led1; }
        else                { sendDataToSack("WizFi250AirCmd:AT+FGPIO=1,1,0\r"); toggle_led1=!toggle_led1; }
    }
    else if (view.getId() == R.id.buttonLed2)
    {
        addText("Get ADC\n", Color.RED, Color.TRANSPARENT);
        sendDataToSack("WizFi250AirCmd:AT+FGETADC=?\r");
    }        
    else if (view.getId() == R.id.buttonLed3)
    {
        addText("WiFi Status\n", Color.RED, Color.TRANSPARENT);
        sendDataToSack("WizFi250AirCmd:AT+MINFO\rAT+MMAC=?\rAT+WSTAT\rAT+WNET=?\rAT+WSEC=?\r");
    }
}


이 스마트폰 앱의 전체 소스는 첨부되어 있다.


WizFi250Demo.rar



'WiFi module' 카테고리의 다른 글

WizFi250 automatic re-association  (0) 2015.04.07
PubNub with WizFi250  (0) 2015.02.12
WizFi250 OTA F/W Update 후에, CUSTOM Code 입력하기  (0) 2015.01.13
WizFi250 <Air Command mode> 개요  (0) 2014.11.24
WizFi250 UDP Broadcast Test  (0) 2014.11.14