< 웹페이지 제어파트>
웹페이지(파폭)브라우저에서 Submit 버튼을 누르면 LED Status가 ON/OFF명령을
번갈아가면서 명령을 주게 됩니다.
동영상을 통해 LED가 깜박거리는 것을 확인할 수 있습니다.
동영상을 통해 LED가 깜박거리는 것을 확인할 수 있습니다.
아래 소스코드로 쉽게 테스트 해볼 수 있습니다.
<소스코드>
<소스코드>
#include <Ethernet.h>
#include <WString.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC주소--예제에서 copy/paste
byte ip[] = { 203, 237, 51, 12 }; // IP 주소 설정
byte gateway[] = { 203, 237, 51, 254 }; // 게이트웨이 주소 설정
byte subnet[] = { 255, 255, 255, 0 }; // 서브넷 마스크 주소 설정 --고정IP로 할당해주어야 한다.
Server server(80); // 포트 80번으로 설정
byte sampledata=50; // 샘플데이타
int ledPin = 4; // 4번핀에 LED(+)로 설정
String readString = String(30);
boolean LEDON = false; // LEDON을 불리안변수 거짓으로 설정
void setup(){
Ethernet.begin(mac, ip, gateway, subnet); // 이더넷 ON
pinMode(ledPin, OUTPUT); // LED를 출력으로 설정
Serial.begin(9600); // baud rate=9600으로 시리얼 포트 신호 출력
}
void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30) {
readString.append(c);
}
Serial.print(c);
// LED핀이 high이면 켜지고 low이면 꺼진
if (c == '\n') {
if(readString.contains("L=1")) {
digitalWrite(ledPin, HIGH);
LEDON = true;
}
else{
digitalWrite(ledPin, LOW);
LEDON = false;
}
// 밑은 웹페이지 디자인 -- HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<body style=background-color:white>");
client.println("<h1>LED control</h1>");
client.println("<form method=get name=LED><input type=checkbox name=L value=1>LED<br>...(밑에줄 이어서)
<input type=submit value=submit></form>");
client.println("<br />");
client.print("<font size='5'>LED status: ");
if (LEDON)
client.println("<font color='black' size='5'>ON ");
else
client.println("<font color='black' size='5'>OFF ");
client.println("<hr />");
client.println("<hr />");
client.println("<font color='black' size='3'> Sample data: ");
client.print(sampledata);
client.println("<br />");
client.println("</body></html>");
readString=" ";
client.stop();
}}}}}
#include <WString.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC주소--예제에서 copy/paste
byte ip[] = { 203, 237, 51, 12 }; // IP 주소 설정
byte gateway[] = { 203, 237, 51, 254 }; // 게이트웨이 주소 설정
byte subnet[] = { 255, 255, 255, 0 }; // 서브넷 마스크 주소 설정 --고정IP로 할당해주어야 한다.
Server server(80); // 포트 80번으로 설정
byte sampledata=50; // 샘플데이타
int ledPin = 4; // 4번핀에 LED(+)로 설정
String readString = String(30);
boolean LEDON = false; // LEDON을 불리안변수 거짓으로 설정
void setup(){
Ethernet.begin(mac, ip, gateway, subnet); // 이더넷 ON
pinMode(ledPin, OUTPUT); // LED를 출력으로 설정
Serial.begin(9600); // baud rate=9600으로 시리얼 포트 신호 출력
}
void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30) {
readString.append(c);
}
Serial.print(c);
// LED핀이 high이면 켜지고 low이면 꺼진
if (c == '\n') {
if(readString.contains("L=1")) {
digitalWrite(ledPin, HIGH);
LEDON = true;
}
else{
digitalWrite(ledPin, LOW);
LEDON = false;
}
// 밑은 웹페이지 디자인 -- HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<body style=background-color:white>");
client.println("<h1>LED control</h1>");
client.println("<form method=get name=LED><input type=checkbox name=L value=1>LED<br>...(밑에줄 이어서)
<input type=submit value=submit></form>");
client.println("<br />");
client.print("<font size='5'>LED status: ");
if (LEDON)
client.println("<font color='black' size='5'>ON ");
else
client.println("<font color='black' size='5'>OFF ");
client.println("<hr />");
client.println("<hr />");
client.println("<font color='black' size='3'> Sample data: ");
client.print(sampledata);
client.println("<br />");
client.println("</body></html>");
readString=" ";
client.stop();
}}}}}