웹서버 기능으로 데이터 읽기 및 제어하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (www.helloapps.co.kr)
WiFi 코딩 업로드 전 준비사항 항상 WiFi 보드의 리셋 버튼을 클릭하여 보드를 초기화 해 놓고 아두이노 프로 그램을 업로드 해야 한다. 리셋버튼을 눌러 전원 초기화 리셋버튼이 눌려지면 WiFi 보드에서 실행중인 프로그램이 종료되고 다시 시작할 준비 상태가 됨
웹서버에서 데이터 읽기
WiFi 데이터 읽기 명령어를 loop 함수에 추가하기 void setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HA-12345"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.StartAP(); } void loop() { String s = wifi.WiFiRead(); if (s.length() > 0) Serial.println(s); } delay(100); wifi.WiFiRead() 명령어는 외부에서 전송된 값을 넘겨준다.
실행하기 실행 결과
WiFi AP로 접속 노트북이나 스마트폰의 WiFi 접속을 자신이 생성한 AP로 접속한다.
웹서버에 접속 노트북이나 스마트폰에서 웹브라우저 실행 후, AP의 주소로 접속한다. http://192.168.4.1
웹브라우저에서 버튼 값 전송하기 웹브라우저에서 화면에 보이는 버튼 중에 하나를 선택하여 눌러 본다.
실행 결과 웹브라우저에서 “on” 버튼을 클릭한 경우의 실행 결과
실행 결과 웹브라우저에서 다른 버튼들을 클릭한 경우의 실행 결과
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("HA-12345"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.StartAP(); } 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 setup() { Serial.begin(115200); delay(200); wifi.begin(9600); delay(500); wifi.SSID("HA-12345"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.StartAP(); } 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("HA-12345"); Serial.print(wifi.Message()); wifi.Password("HelloApps"); wifi.StartAP(); }
멜로디 연주하기 웹브라우저에서 숫자 버튼을 이용하여 도레미파솔라시도를 연주해 본다.