본문 바로가기
Arduino

Webpage제어를 통한 Arduino + Ethernet 모듈 LED ON/OFF

by 풍야 2010. 8. 11.




< 웹페이지 제어파트>






  웹페이지(파폭)브라우저에서 Submit 버튼을 누르면 LED Status가 ON/OFF명령을 

  번갈아가면서 명령을 주게 됩니다.

  동영상을 통해 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();
}}}}}