ST모드에서 데이터 읽기 및 제어하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (www.helloapps.co.kr)
WiFi 코딩 업로드 전 준비사항 항상 WiFi 보드의 리셋 버튼을 클릭하여 보드를 초기화 해 놓고 아두이노 프로 그램을 업로드 해야 한다. 리셋버튼을 눌러 전원 초기화 리셋버튼이 눌려지면 WiFi 보드에서 실행중인 프로그램이 종료되고 다시 시작할 준비 상태가 됨
웹서버에서 데이터 읽기
WiFi 데이터 읽기 명령어를 loop 함수에 추가하기 void setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HelloApps"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.ConnectAP(); wifi.BeginServer(); } void loop() { String s = wifi.WiFiRead(); if (s.length() > 0) Serial.println(s); } delay(100); wifi.WiFiRead() 명령어는 외부에서 전송된 값을 넘겨준다.
웹서버에 접속 노트북이나 스마트폰에서 웹브라우저 실행 후, WiFi 보드에 할당된 주소로 접 속한다.
웹브라우저에서 버튼 값 전송하기 웹브라우저에서 화면에 보이는 버튼 중에 하나를 선택하여 눌러 본다.
실행 결과 웹브라우저에서 “on” 버튼을 클릭한 경우의 실행 결과 시리얼포트가 오픈되었습니다 - COM4 [C] SSID [D] HelloApps [C] PWRD Connecting to HelloApps [IP] 192.168.0.11 Server started on
실행 결과 웹브라우저에서 다른 버튼들을 클릭한 경우의 실행 결과 시리얼포트가 오픈되었습니다 - COM4 [C] SSID [D] HelloApps [C] PWRD Connecting to HelloApps [IP] 192.168.0.11 Server started on 1 off 2 3
LED 제어하기
디지털 13번 핀에 LED를 연결한다. 디지털 13번 핀에 LED를 연결한다. 13번 (D13)
On, off 값을 이용하여 LED 제어하기 Loop 함수에 다음과 같이 LED 제어 명령어를 추가한다. void loop() void setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HelloApps"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.ConnectAP(); wifi.BeginServer(); } void loop() { String s = wifi.WiFiRead(); if (s.length() > 0) Serial.println(s); if (s == "on") digitalWrite(13, HIGH); else if (s == "off") digitalWrite(13, LOW); } delay(100);
On, off 값을 이용하여 LED 제어하기 웹브라우저에서 on, off 버튼을 이용하여 LED를 제어해 본다.
웹브라우저 버튼으로 로봇 제어하기
로봇 제어하기 Loop 함수에 다음과 같이 로봇 제어 명령어를 추가한다. void loop() { void setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HelloApps"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.ConnectAP(); wifi.BeginServer(); } void loop() { String s = wifi.WiFiRead(); if (s.length() > 0) Serial.println(s); if (s == "1") DriveWrite(200, 200); else if (s == "2") DriveWrite(0, 200); else if (s == "3") DriveWrite(0, 0); else if (s == "4") DriveWrite(200, 0); else if (s == "5") DriveWrite(-200, -200); } delay(100);
로봇 제어하기 웹브라우저에서 숫자 버튼을 이용하여 로봇을 제어해 본다.
웹브라우저 버튼으로 멜로디 연주하기
멜로디 연주하기 디지털 2번 핀에 스피커를 연결한다. 2번 (D02)
멜로디 연주하기 Loop 함수에 다음과 같이 톤 명령어를 추가 void loop() { String s = wifi.WiFiRead(); if (s.length() > 0) Serial.println(s); if (s == "on") tone(2, 262, 250); else if (s == "1") tone(2, 294, 250); else if (s == "off") tone(2, 330, 250); else if (s == "2") tone(2, 349, 250); else if (s == "3") tone(2, 392, 250); else if (s == "4") tone(2, 440, 250); else if (s == "run") tone(2, 494, 250); else if (s == "5") tone(2, 523, 250); else if (s == "stop") tone(2, 587, 250); } delay(100); Loop 함수에 다음과 같이 톤 명령어를 추가 void setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HelloApps"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.ConnectAP(); wifi.BeginServer(); }
멜로디 연주하기 웹브라우저에서 숫자 버튼을 이용하여 도레미파솔라시도를 연주해 본다.