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.
Tinggalkan Komentar