정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

원기옥님..Help/wifi 웹사이트 반응속도 관련
변한빈 | 2015-05-14

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "SungSu";      //  연결하실 와이파이 SSID
char pass[] = "12345678";   // 네트워크 보안키

int status = WL_IDLE_STATUS;

WiFiServer server(80);  // 80포트를 사용하는 웹서버 선언

void setup() {
  Serial.begin(9600);

  if (WiFi.status() == WL_NO_SHIELD) { // 현재 아두이노에 연결된 실드를 확인
    Serial.println("WiFi shield not present");
    while (true);  // 와이파이 실드가 아닐 경우 계속 대기
  }

  // 와이파이에 연결 시도
  while ( status != WL_CONNECTED) { //연결될 때까지 반복
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);  // WPA/WPA2 연결
  }

  server.begin();

  printWifiStatus();  // 연결 성공시 연결된 네트워크 정보를 출력
}


void loop() {
  int sw = analogRead(A0);
  // flex 센서와 조도센서에서 값을 가져옴

  WiFiClient client = server.available();  // 들어오는 클라이언트를 수신한다.
  if (client) {  // 클라이언트를 수신 시
    boolean currentLineIsBlank = true;

    while (client.connected ()) {
      if (client.available()) {
        char c = client.read();
        // 문자의 끝을 입력 받으면 http 요청이 종료되고, 답신을 보낼 수 있습니다.
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println("Refresh: 0.3"); // 1초당 페이지 refresh
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<meta charset=utf-8/>");
          client.print("<meta name=view content=width=device-width, ");
          client.println("initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no />");
          client.println("<html><body style=background-color:white>");
          client.println("<head>"); 
          client.println("<title>EB전자은행</title>");
          client.println("</head>");
          client.println("<div data-role=content>");
          client.println("<br>");
          if(sw>100){
            client.println("<br>");
            client.println("<br>");
            client.print("<font color=\"red\"> <h1>위험<h1>");
            delay(5000);
          }
          client.println("</div>");
          client.println("</body>");
          client.println("</html>");
          break;
        }

        if (c == '\n') {
          currentLineIsBlank = true;
        }

        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
}

void printWifiStatus() {  // 연결된 네트워크 정보 출력
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
  // 네트워크 SSID 출력

  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
  // 네트워크 ip 출력

  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
  // 수신 강도 출력
}

 

진한 글씨로 한 부분이 웹사이트 내부 명령어입니다.

제가 하고 싶은 부분은 A0부분에 스위치를 연결했는데. 누르면 바로 "위험"이 안뜨고 지연시간이 있고나서 뜨네요..

혹지 좋은 방법이나, 위 소스 중 필요없는 부분 좀 말씀 해주시면 감사드리겠습니다.

이전글   |    궁금한 것이 있습니다. 2015-05-14
다음글   |    8051 이랑 토양습도센서에대해 질문있습니다!... 2015-05-15