아두이노프로세싱 프로그래밍

사물인터넷 NodeMCU Web Server 코딩에 의한 LED ON OFF 특집

coding art 2018. 6. 6. 13:11
728x90

______________________________________________________________________________________________________________________________

____________________________________________________________________________________


클라이언트/서버란 리소스 또는 서비스 제공자가 분리되어 있는 분산응용구조를 뜻한다. 예를 들어 아두이노 웹서버란 웹을 바탕으로 하는 서비스 관점에서 아두이노가 서버로서 서비스 코드를 실행하게 되면 네트워크를 통해 클라이언트 즉 스마트 폰이나 PC들이 아두이노에 request를 보내어 연결이 되면 아두이노가 실행하는 서비스 코드를 받아 보게 되는 것이다.....

나머지 내용은 아래의 블로그에 포스팅되어 있으므로 넘어가서 읽으세요.

아두이노 코딩-61: 아두이노 사물인터넷 NodeMCU Web Server 코딩에 의한 LED on OFF 특집

https://steemit.com/kr/@codingart/61-nodemcu-web-server-led-on-off

스팀잇에서 넘어 오신 분은 아래에 첨부한 코드를 받아가세요.




//Webserver_NodeMCU_01


#include <ESP8266WiFi.h>

 const char* ssid = "android1234";//무선 공유기 id로 수정
 const char* password = "dddddddddd";//무선 공유기 비빌번호

 int ledPin = 2; //
 
 WiFiServer server(80);

 void setup() {
   Serial.begin(115200);
   delay(10);

   pinMode(ledPin, OUTPUT);
   digitalWrite(ledPin, HIGH);

   // Set WiFi to station mode and disconnect from an AP if it was previously connected
   WiFi.mode(WIFI_STA);
   WiFi.disconnect();
   delay(100);

   Serial.println("Setup done");

   // Connect to WiFi network
   Serial.println();
   Serial.println();
   Serial.print("Connecting to ");
   Serial.println(ssid);

   WiFi.begin(ssid, password);

   while (WiFi.status() != WL_CONNECTED) {
     delay(500);
     Serial.print(".");
   }
   Serial.println("");
   Serial.println("WiFi connected");

   // Start the server
   server.begin();
   Serial.println("Server started");

   // Print the IP address
   Serial.print("Use this URL to connect: ");
   Serial.print("http://");
   Serial.print(WiFi.localIP());
   Serial.println("/");

 }

 void loop() {
  
   WiFiClient client = server.available(); // Check if a client has connected
   if (!client) {
     return;
   }

   Serial.println("new client");
   while(!client.available())  {  // Wait until client sends data
     delay(1);
   }
  
   String request = client.readStringUntil('\r'); // Read the first line of the request
   Serial.println(request);
   client.flush();

   // Match the request

   int value = LOW;
   if (request.indexOf("/LED=ON") != -1)  {
     digitalWrite(ledPin, LOW);
     value = HIGH;
   }
   if (request.indexOf("/LED=OFF") != -1)  {
     digitalWrite(ledPin, HIGH);
     value = LOW;
   }

   client.println("HTTP/1.1 200 OK");  // Return the response
   client.println("Content-Type: text/html");
   client.println("");             //  do not forget this one
   client.println("<!DOCTYPE HTML>");
   client.println("<html>");
   client.println("<body>");
    client.print("Led pin is now: ");
      if(value == HIGH) {
          client.print(" on");
        }
        else {
          client.print("Off");
        }  
   client.println("<br><br>");
   client.println("<a href=\"/LED=ON\"\"><button>Turn on </button></a>");
   client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />"); 
   client.println("</body>");
   client.println("</html>");

   delay(1);
  
   Serial.println("Client disonnected");
   Serial.println("");

 }//끝