위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

Wireless WizFi250 GPIO & ADC with Smartphone

WIZnet Academy 2015.02.10 10:55 조회 수 : 60

스마트폰으로 WizFi250-EVB에 연결된 LED를 제어하고, 가변 저항값을 읽어오는 예제입니다. 별도의 MCU나 보드 없이 스마트폰의 앱이 직접 WizFi250-EVB과 연동합니다.

우선 WizFi250에 추가된 GPIO와 ADC 명령어에 대해서 알아보겠습니다.
WizFi250-GPIO-ADC2

 

추가된 명령어들은 F/W 버전 1.0.3.1에서 사용할 수 있으니, 꼭 펌웨어를 업데이트 하시기 바랍니다. 펌웨어는 아래 링크에서 다운로드 가능합니다.

http://wizwiki.net/wiki/doku.php?id=products:wizfi250:wizfi250firmware:start

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-GPIO-ADC

 

위의 값들을 제어할 안드로이드 앱에 대해 설명합니다.

우선 WizFi250을 Air Command mode로 변경해야 하며, 아래 두가지 방법을 사용할 수 있습니다. 두 가지 방법 모두 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 상태 정보를 가져 옵니다.

WizFi250-GPIO-ADC3


public void onClick(View view) {

if (view.getId() == R.id.buttonLed1)
{
addText("Toggle LEDn", Color.RED, Color.TRANSPARENT);
if ( toggle_led1 ) { sendDataToSack("WizFi250AirCmd:AT+FGPIO=1,1,1r"); toggle_led1=!toggle_led1; }
else { sendDataToSack("WizFi250AirCmd:AT+FGPIO=1,1,0r"); toggle_led1=!toggle_led1; }
}
else if (view.getId() == R.id.buttonLed2)
{
addText("Get ADCn", Color.RED, Color.TRANSPARENT);
sendDataToSack("WizFi250AirCmd:AT+FGETADC=?r");
}
else if (view.getId() == R.id.buttonLed3)
{
addText("WiFi Statusn", Color.RED, Color.TRANSPARENT);
sendDataToSack("WizFi250AirCmd:AT+MINFOrAT+MMAC=?rAT+WSTATrAT+WNET=?rAT+WSEC=?r");
}
}

스마트폰 앱 소스는 아래 링크에서 다운로드 가능합니다.

WizFi250 Smart-Phone App Code Download

Posting Source : Steve Kim's IoT WiFi This+