MENYALAKAN EMPAT LAMPU DENGAN HP ANDROID MELALUI WIFI

Project NodeMCU untuk mengendalikan 4 Channel Relay

Penjelasan singkat

Pada tutorial project NodeMCU artikel ini akan dibahas tentang kendali LED maupun modul Relay melalui jaringan Wifi menggunakan NodeMCU ESP8266 V.1.0.
Hal utama yang dibutuhkan yaitu konektifitas Wireless / wifi melalui Wifi Router tetapi itu tidak harus terhubung ke jaringan internet.
NodeMCU ESP8266 akan terhubung ke Jaringan wifi sebagai Client dan akan mendapatkan ip address sebagai alamat perangkat tersebut.
Dari alamat IP address tersebut, dapat langsung diakses melalui browser pada komputer maupun smartphone misalnya menggunakan browser google chrome.
Pengaplikasian termudah yaitu digunakan pada rumah untuk mengontrol lampu yang akan dihidupkan maupun dimatikan.
Sehingga tidak banyak membutuhkan saklar ON/OFF untuk tiap lampu, hanya dibutuhkan 1 smartphone yang sering kita pakai sebagai alat kendali utama.
Selain itu proyek sederhana ini dapat dikembangkan lebih jauh misal dikoneksikan dengan cloudmqtt sebagai server broker yang memungkinan kendali via jarak jauh, tanpa harus terhubung dengan koneksi wifi yang sama.
Dimana hal itu masuk kedalam Internet of Things atau IOT, yang dapat dijadikan ladang bisnis yang dapat menghasilkan uang.

Kebutuhan yang diperlukan project NodeMCU ESP8266

Refrensi pembelajaran tutorial dasar :
Bahan yang diperlukan :
  • NodeMCU ESP8266 V.1.0
  • Modul Relay 4 channel
  • Kabel jumper
  • Wifi Router (nama wifi dan password harus ada)
  • Komputer + Software Arduino IDE
Pengetesan pertama harus dicek kondisi module NodeMCU dengan program “blinking”. untuk melakukan hal itu dapat dicek di link refrensi diatas.

GAMBAR RANGKAIAAN

Untuk memudahkan dalam pembuatan coding pada software Arduino IDE, perlu diperhatikan terlebih dahulu akan tabel GPIO.
Library yang dibutuhkan untuk project ini yaitu library ESP8266WiFi yang dimana dapat merupakan hal wajib ada untuk proses kompiler. Tutorial menginstal Library cukup cari di internet library esp8266
setelah itu masukkan kode program dibawah ini pada arduino ide anda
#include <ESP8266WiFi.h> //library ESP8266wifi yang telah diimportkan
#define ON LOW
#define OFF HIGH
const char* ssid = "Blokb21no12";
const char* password = "Komponen";
int relay1 = 5; //D1 on ESP Board
int relay2 = 4; //D2 on ESP Board
int relay3 = 00; //D3 on ESP Board
int relay4 = 2;  //D4 on ESP Board
int value1 = OFF, value2 = OFF, value3 = OFF, value4 = OFF;
//menggunakan port 80 untuk http
WiFiServer server(80);
void setup(){
//menggunakan baud komunikasi serial pada 115200
  Serial.begin(115200);
  delay(15);
  pinMode(relay1,OUTPUT);pinMode(relay2,OUTPUT);
  pinMode(relay3,OUTPUT);pinMode(relay4,OUTPUT);
  
  digitalWrite(relay1, ON);digitalWrite(relay2, ON);
  digitalWrite(relay3, ON);digitalWrite(relay4, ON);
  Serial.println();Serial.println(); //pemberian spasi
  Serial.print("Terhubung dengan Wifi.... ");
// Koneksi dengan Wifi
  Serial.println(ssid);
  //prosedur pengkoneksian wifi
  WiFi.begin(ssid, password);
//pengecekan status wifi
  while (WiFi.status() != WL_CONNECTED) //pengecekan kondisi koneksi wifi
  {delay(600);Serial.print(".");}
  Serial.println("");
  Serial.println("Sudah terkoneksi dengan wifi");
  server.begin(); //prosedur memulai akses server
  Serial.println("Pemulaian Akses Server");
  //menuliskan alamat ip
  Serial.print("Alamat ip yang digunakan untuk pengaksesan: ");
  //contoh format ip address : http://192.168.1.1/
  Serial.print("http://");Serial.print (WiFi.localIP());Serial.println("/");
}
void loop() {
  WiFiClient client = server.available(); //cek kondisi jika terhubung dengan client
  if (!client) {
    return;
  }
  //menunggu client, data dikirim
  Serial.println("client baru");
  //jika client tidak available
  while(!client.available()) {delay(5);}
  String request = client.readStringUntil('\r');
  Serial.print(request);client.flush();
  
  //penulisan data pada browser dengan alamat diatas
  client.println("HTTP/1.1 200 OK");client.println("Content-Type: text/html");
  client.println("");
  client.println("<!DOCTYPE HTML>");client.println("<html>");
  client.println("<fieldset>");client.println("<font color = red>");
  client.print("Kendali relay via Wifi");
  client.println("</font>");client.println("</fieldset>");
  client.println("<br><br>");
  client.print("relay 1 is now: ");
  // Control relay 1
  if(request.indexOf("/relay1=ON")!= -1)
  {digitalWrite(relay1, ON);value1 = ON;}
  if(request.indexOf("/relay1=OFF")!= -1)
  {digitalWrite(relay1, OFF);value1 = OFF;}
  if(value1==ON){client.print("ON");}
  if(value1==OFF){client.print("OFF");}
    
  client.println("<br><br>");
  client.println("<a href=\"/relay1=ON\"\"><button>relay1 ON </button></a>");
  client.println("<a href=\"/relay1=OFF\"\"><button>relay1 OFF </button></a><br />");  
  client.println("</html>");
client.println("<br><br>");
client.print("relay 2 is now: ");
  // Control relay 2
  if (request.indexOf("/relay2=ON") != -1)  {
    digitalWrite(relay2, ON);
    value2 = ON;
    }
  if (request.indexOf("/relay2=OFF") != -1)  {
    digitalWrite(relay2, OFF);
    value2 = OFF;
    }
    if(value2==ON){client.print("ON");}
     if(value2==OFF){client.print("OFF");}
  
  client.println("<br><br>");
  client.println("<a href=\"/relay2=ON\"\"><button>relay2 ON </button></a>");
  client.println("<a href=\"/relay2=OFF\"\"><button>relay2 OFF </button></a><br />");  
  client.println("</html>");
  client.println("<br><br>");
  client.print("relay 3 is now: ");
  // Control relay 3
  if (request.indexOf("/relay3=ON") != -1)  {
    digitalWrite(relay3, ON);
    value3 = ON;
    }
  if (request.indexOf("/relay3=OFF") != -1)  {
    digitalWrite(relay3, OFF);
    value3 = OFF;
    }
    if(value3==ON){client.print("ON");}
     if(value3==OFF){client.print("OFF");}
    
  client.println("<br><br>");
  client.println("<a href=\"/relay3=ON\"\"><button>relay3 ON </button></a>");
  client.println("<a href=\"/relay3=OFF\"\"><button>relay3 OFF </button></a><br />");  
  client.println("</html>");
  client.println("<br><br>");
  client.print("relay 4 is now: ");
  // Control relay 4
  if (request.indexOf("/relay4=ON") != -1)  {
    digitalWrite(relay4, ON);
    value4 = ON;
    }
  if (request.indexOf("/relay4=OFF") != -1)  {
    digitalWrite(relay4, OFF);
    value4 = OFF;
    }
    if(value4==ON){client.print("ON");}
     if(value4==OFF){client.print("OFF");}
    
  client.println("<br><br>");
  client.println("<a href=\"/relay4=ON\"\"><button>relay4 ON </button></a>");
  client.println("<a href=\"/relay4=OFF\"\"><button>relay4 OFF </button></a><br />");  
  client.println("</html>");
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

Selamat mencoba!
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam Blogku

Komentar

Postingan populer dari blog ini

PESTA ADAT WARGA PAROTO "MATTOJANG" AYUNAN RAKSASA

PEMBAGIAN SEMBAKO DAN AIR BERSIH DI DESA PAROTO