IOT Web Server

Tutorial ESP32 IOT Web Server kontrol Lampu dengan HP dan PC

Display Horizontal

Bismillahirrahmanirrahim, Assalamu’alaikum Warahmatullahi Wabarakaatuh

Sholawat
Allahumma sholli ‘ala Muhammad wa ‘ala ali Muhammad

Halo sobat IOTkece, bagaimana kabarnya nih? Luarbiasa pastinya, kali ini saya akan membagikan tutorial bagaimana cara menyalakan dan mematikan lampu dengan menggunakan hp secara wireless dan tanpa menggunakan aplikasi database hanya dengan browser. Board yang kita gunakan adalah DevKit ESP32

Langsung saja ke tutorialnya

1. Persiapkan Alat dan Bahan

  1. Devkit ESP32
  2. Project Board
  3. Resistor 100 Ohm (2 Pcs)
  4. LED 5 mm (2 Pcs) Warna bebas tergantung selera
  5. Kabel Jumper Male to Male
  6. USB Tansfer (Micro USB)
  7. Laptop + Arduino IDE (Jika dilaptop sobat belum terinstal Arduino IDE klik disini)

2. Wiring

Wiring Web Server ESP32
Wiring Web Server
  1. Kaki Anoda Led1 ke pin D26 (Sebelumnya diberi resistor 100 Ohm)
  2. Kaki Anoda Led2 ke pin D27 (Sebelumnya diberi resistor 100 Ohm)
  3. Kaki Katoda ke GND

3. Program

/*
 Bismillahirrahmanirrahim, Assalamualaikum
 Allahumma sholli ‘ala Muhammad wa ‘ala ali Muhammad

Tutorial IOT Web server by IOTkece
 */

#include <WiFi.h>

const char* ssid = "Rumahku Surgaku";
const char* password = "Bismillah#1";

WiFiServer server(80);

String header;


String Lamp1State = "off";
String Lamp2State = "off";

const int Lamp1 = 26;
const int Lamp2 = 27;


unsigned long currentTime = millis();
unsigned long previousTime = 0; 
const long timeoutTime = 2000;

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

  pinMode(Lamp1, OUTPUT);
  pinMode(Lamp2, OUTPUT);

  digitalWrite(Lamp1, LOW);
  digitalWrite(Lamp2, LOW);


  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.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

void loop(){
  WiFiClient client = server.available();   

  if (client) {                           
    currentTime = millis();
    previousTime = currentTime;
    Serial.println("New Client.");          
    String currentLine = "";                
    while (client.connected() && currentTime - previousTime <= timeoutTime) { 
      currentTime = millis();
      if (client.available()) {            
        char c = client.read();           
        Serial.write(c);                
        header += c;
        if (c == '\n') {                   
          if (currentLine.length() == 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();
            
            if (header.indexOf("GET /26/on") >= 0) {
              Serial.println("GPIO 26 on");
              Lamp1State = "on";
              digitalWrite(Lamp1, HIGH);
            } else if (header.indexOf("GET /26/off") >= 0) {
              Serial.println("GPIO 26 off");
              Lamp1State = "off";
              digitalWrite(Lamp1, LOW);
            } else if (header.indexOf("GET /27/on") >= 0) {
              Serial.println("GPIO 27 on");
              Lamp2State = "on";
              digitalWrite(Lamp2, HIGH);
            } else if (header.indexOf("GET /27/off") >= 0) {
              Serial.println("GPIO 27 off");
              Lamp2State = "off";
              digitalWrite(Lamp2, LOW);
            }
            
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");

            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #3DE31B; border: none; color: black; padding: 16px 40px;");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #DB240F;}</style></head>");
            
            client.println("<body><h1>ESP32 IOT Web Server Control Lamp</h1>");
            client.println("<p>Lamp 1 - Current Condition <b>" + Lamp1State + "</b></p>");
            if (Lamp1State=="off") {
              client.println("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");
            } else {
              client.println("<p><a href=\"/26/off\"><button class=\"button button2\">OFF</button></a></p>");
            } 
               
            client.println("<p>Lamp 2 - Current Condition <b>" + Lamp2State + "</b></p>");  
            if (Lamp2State=="off") {
              client.println("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");
            } else {
              client.println("<p><a href=\"/27/off\"><button class=\"button button2\">OFF</button></a></p>");
            }
            client.println("</body></html>");
            client.println();
            break;
          } else { 
            currentLine = "";
          }
        } else if (c != '\r') { 
          currentLine += c;  
        }
      }
    }
    header = "";
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

Upload program ke Board DevKit ESP32 dengan settingan sebagai berikut, Jika belum terinstal board ESP32 Klik disini

Setting Board ESP32
Settingan ESP32

ESP32 ini spesial, saat proses uploading program pada bagian bawah ada tulisan connecting…., maka tekan tombol boot pada ESP32 sampai proses uploading berjalan,

Setelah selesai buka Serial Monitor dengan Ctrl + Shift + M atau Klik Ikon Serial Monitor

Serial Monitor
Buka Serial Monitor

Setelah terbuka setting Baud Rate ke 115200 sesuai dengan program diatas

Select Baud Rate
Setting Baud Rate

Setelah disetting maka ketikan IP Addres pada Serial Monitor ke Browser Sobat, jika tidak muncul maka Restart Board sobat dengan menekan tombol EN sesaat

IP Web Server
IP Web Server

Ketikan IP Addres tersebut ke browser Sobat, Nanti akan tampil halaman seperti ini pada smartphone Sobat

IOT Kece
IOT Web Server from IOTkece

Kalau di Laptop/ Komputer akan seperti ini tampilannya

IOT Web Server Laptop
IOT Web Server PC

Selamat Mencoba Sobat, jangan lupa Bismillah dulu yaaa, Kalau berhasil komentar di bawah yaaa, kalau ada masalah juga komentar yaaa,,,,. Dan jangan lupa bagikan ke orang yang membutuhkan Informasi Ini yaaa…

Baca Juga : Tutorial Blynk Kontrol Lampu Dengan Internet Dari Manapun

Terimakasih, Wassalamualaikum Warahmatullahi Wabarakatuh

“Jangan Pernah Berhenti Mencoba Sampai Kau Menemukan Jawabannya”

#IOTkece

Related Posts

9 thoughts on “Tutorial ESP32 IOT Web Server kontrol Lampu dengan HP dan PC

  1. Gan mau tanya” nih boleh?
    Apakah coding yang sidah di upload di esp32 bisa dihapus? Atau kalau ingin mengganti codingan tinggal langsung upload lahi terima kasih

      1. thx kak. kak bisa berdiskusi?
        jadi gini kak saya nih mau buat alat semacam ini (bukan local)
        tapi saya bingung gmna cara membuat alat ini berfungsi ketika kita berada di luar kota? selain menggunakan blnyk. apada solusi ketika kita harus menggunakan paket data terima ksih

        1. Banyak sekali platform yang mendukung untuk project iot, blynk hanyalah salah satunya, dan kenapa pada tutorial yang saya buat selalu menggunakan blynk, karena untuk pemula blynk sangat mudah sekali dipelajari dan dimengerti, jikalau ingin menggunakan selain blynk boleh boleh saja, Semoga membantu

Leave a Reply

Your email address will not be published. Required fields are marked *