Info Sekolah
Senin, 21 Apr 2025
  • Selamat Datang di Website resmi SMKS Sanjaya Bajawa, berlokasi di Jalan Let.Jend. Soeprapto, Kec. Bajawa-Kabupaten Ngada-Flores, Nusa Tenggara Timur-Kontak Admin 082236008339
  • Selamat Datang di Website resmi SMKS Sanjaya Bajawa, berlokasi di Jalan Let.Jend. Soeprapto, Kec. Bajawa-Kabupaten Ngada-Flores, Nusa Tenggara Timur-Kontak Admin 082236008339
9 Januari 2025

Project 4: Kontrol LED dengan Wifi

Kam, 9 Januari 2025 Dibaca 23x

Deskkripsi/cara kerja

Kontrol LED secara wireless dengam WiFi melalui alamat IP address. Akses alamat IP melalui browser kemudian kontrol melalui tombol yang ada di webpage. Siapkan jaringan WiFi/Hotspot dengan nama WiFi (ssid) dan password-nya.

Buat rangkaian NodeMCU dengan 4 buah LED dan 4 resistor yang terhubung ke pin D0, D1, D2 dan D3 seperti pada rangkaian/skematik.

 

****************************************/

#include <ESP8266WiFi.h>

//---GANTI SESUAI DENGAN JARINGAN WIFI

//---HOTSPOT ANDA

const char* ssid = "ArdutechWiFi"; //Nama Hotspot

const char* password = "12345678"; //Password

WiFiServer server(80);

//====================================

void setup() {

  Serial.begin(115200);

  pinMode(D0, OUTPUT);

  pinMode(D1, OUTPUT);

  pinMode(D2, OUTPUT);

  pinMode(D3, OUTPUT);

  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");

  server.begin();

  Serial.println("Server started");

  Serial.print("Use this URL to connect: ");

  Serial.print("http://");

  Serial.print(WiFi.localIP());

  Serial.println("/");

}

//====================================  

void loop() {

  WiFiClient client = server.available();

  if (!client) {

    return;

  }

  Serial.println("new client");

  while(!client.available()){

    delay(1);

  }

  String request = client.readStringUntil('\r');

  Serial.println(request);

  client.flush();

  if (request.indexOf("/led1on") > 0)  {

    digitalWrite(D0, HIGH);  

  }

  if (request.indexOf("/led1off") >0)  {

    digitalWrite(D0, LOW);  

  }

  if (request.indexOf("/led2on") > 0)  {

    digitalWrite(D1, HIGH);  

  }

  if (request.indexOf("/led2off") >0)  {

    digitalWrite(D1, LOW);  

  }

  if (request.indexOf("/led3on") >0)  {

    digitalWrite(D2, HIGH);  

  }

  if (request.indexOf("/led3off") > 0)  {

    digitalWrite(D2, LOW);  

  }

  if (request.indexOf("/led4on") > 0)  {

    digitalWrite(D3, HIGH);  

  }

  if (request.indexOf("/led4off") > 0)  {

    digitalWrite(D3, LOW);  

  }

  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.println("<head>");

  client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");

  client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");

  client.println("</head>");

  client.println("<body bgcolor = \"#f7e6ec\">");

  client.println("<hr/><hr>");

  client.println("<h3><center> Project IoT : Kontrol 4 LED  </center></h3>");

  client.println("<h4><center> www.ardutech.com  </center></h4>");

  client.println("<hr/><hr>");  

  client.println("<br><br>");

  //client.println("<br><br>");

  client.println("<center>");

  client.println("Lampu 1");

  client.println("<a href=\"/led1on\"\"><button>Turn On </button></a>");

  client.println("<a href=\"/led1off\"\"><button>Turn Off </button></a><br />");  

  client.println("</center>");  

  client.println("<br><br>");

  client.println("<center>");

  client.println("Lampu 2");

  client.println("<a href=\"/led2on\"\"><button>Turn On </button></a>");

  client.println("<a href=\"/led2off\"\"><button>Turn Off </button></a><br />");  

  client.println("</center>");

  client.println("<br><br>");

  client.println("<center>");

  client.println("Lampu 3");

  client.println("<a href=\"/led3on\"\"><button>Turn On </button></a>");

  client.println("<a href=\"/led3off\"\"><button>Turn Off </button></a><br />");  

  client.println("</center>");

  client.println("<br><br>");

  client.println("<center>");

  client.println("Lampu 4");

  client.println("<a href=\"/led4on\"\"><button>Turn On </button></a>");

  client.println("<a href=\"/led4off\"\"><button>Turn Off </button></a><br />");  

  client.println("</center>");

  client.println("<br><br>");

  client.println("<center>");  

  client.println("<table border=\"5\">");

  client.println("<tr>");

  //=====================

  if (digitalRead(D0))

         {

           client.print("<td>LED 1 = ON</td>");        

         }

  else

          {

            client.print("<td>LED 1 = OFF</td>");

          }    

  client.println("<br />");

  //======================          

  if (digitalRead(D1))

          {

           client.print("<td>LED 2 = ON</td>");

          }

  else

          {

            client.print("<td>LED 2 = OFF</td>");

          }

  client.println("</tr>");

  //=======================

  client.println("<tr>");

  if (digitalRead(D2))

          {

           client.print("<td>LED 3 = ON</td>");

          }

  else

          {

            client.print("<td>LED 3 = OFF</td>");

          }

  if (digitalRead(D3))

          {

           client.print("<td>LED 4 = ON</td>");

          }

  else

          {

            client.print("<td>LED 4 = OFF</td>");

          }

  client.println("</tr>");  

  client.println("</table>");

  client.println("</center>");

  client.println("</html>");

  delay(1);

  Serial.println("Client disonnected");

  Serial.println("");

}

Step 3 : Hasil Pengujian

Setelah program berhasil di Upload, silakan buka Serial Monitor dari menu Tools  Serial Monitor, seting baudrate pada 115200 maka akan tampil di Serial Monitor alamat IP (IP Address) dari NodeMCU.

Artikel Lainnya

Oleh : Admin1

LAPTOP LAB 1

Oleh : Admin1

DATA SISWA 2024/2025

Oleh : Admin1

MGMP Sekolah 2024

Artikel ini memiliki

0 Komentar

Tinggalkan Komentar