IOT Projects

  • Arduino webserver

    programming the esp8266 is much easier than you think in Arduino IDE you need set some setting to go, so if you interesting let's get start it. First thing first, open the Arduino IDE and click on "file" you will see a list of options, go to option "preferences" and click it.
    Post

    Then add the following URL to activated the esp8266 Core: http://arduino.esp8266.com/stable/package_esp8266com_index.json
    Post

    after that go to Tools>>Boards>>Boards Manager for installing the latest board manager supporting the esp8266 module.
    Post

    Type in the searching bar "esp8266" and install the board manager to get able to program it throw Arduino IDE.
    Post

    chooses the esp board in the list as you have, after that you ready to go..
    Post

    Now you have an Arduino board with wifi Specifications, so now any library in the Arduino IDE working with the esp8266, the code below it's a simple example of web server control of a state of pin number 3 if it's on or off.
    Arduino code
    #include <ESP8266WiFi.h>
     
    const char* ssid = "your ssid";
    const char* password = "your password";
     
    int ledPin = 3; 
    WiFiServer server(80);
     
    void setup() {
      Serial.begin(115200);
      delay(10);
     
      pinMode(ledPin, OUTPUT);
      digitalWrite(ledPin, LOW);
     
      // 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() {
      // Check if a client has connected
      WiFiClient client = server.available();
      if (!client) {
        Serial.println("No client");
        delay(500);
        return;
      }
     
      // Wait until the client sends some data
      Serial.println("new client");
      while(!client.available()){
        delay(1);
      }
     
      // Read the first line of the request
      String request = client.readStringUntil('\r');
      Serial.println(request);
      client.flush();
     
      // Match the request
     
      int value = LOW;
      if (request.indexOf("/LED=ON") != -1)  {
        digitalWrite(ledPin, HIGH);
        value = HIGH;
      }
      if (request.indexOf("/LED=OFF") != -1)  {
        digitalWrite(ledPin, LOW);
        value = LOW;
      }
     
    // Set ledPin according to the request
    //digitalWrite(ledPin, value);
     
      // Return the response
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println(""); //  do not forget this one
      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
     
      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("</html>");
     
      delay(1);
      Serial.println("Client disonnected");
      Serial.println("");
     
    }