project nodemcu

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.

Skema alur project ini serta rangkaian komponennya

Project relay nodemcu esp8266

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 untuk import library dapat dicek di link ini.

Koding pemrograman

[lockercat]

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

}

[/lockercat]

Hasil trial yang saya lakukan

Hasil Project NodeMCU

Selamat mencoba!

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

57 Comments

  1. Fardian

    Mas kontrol nya via android bisa kah??

    • kalo untuk kontrol via android bisa aja gan, tapi masih pake browser belum ada aplikasinya

      sekarang masih proses pengembangan gunain basic4android untuk project itu

      thanks sudah berkunjung,

  2. Ibnu Adi Perdana

    bg, relay nya pake 3.3 dari nodemcu bisa ya?

    • bisa gunain module 4 channel logic level converter gan,

      harganya murah cuma 5rb an

      itu buat konversi logika 3,3 v ke 5v dan sebaliknya

  3. Ibnu Adi Perdana

    bg, relay nya pake 3.3 dari nodemcu bisa ya?

    • bisa gunain module 4 channel logic level converter gan,

      harganya murah cuma 5rb an

      itu buat konversi logika 3,3 v ke 5v dan sebaliknya

  4. bro untuk programnya uda ane download. pas dibuka di softwarenya kok kaga bisa yah? atau ada settingannya untuk membuka program tersebut? thx

  5. bro untuk programnya uda ane download. pas dibuka di softwarenya kok kaga bisa yah? atau ada settingannya untuk membuka program tersebut? thx

  6. Bro apakah alat ini bisa dikendalikan dari jarak jauh? Yang dalam arti bukan hanya dapat dikendalikan di area sekitar rumah saja.

    • Kalo ini hanya Lokal area saja gan,

      kalo dimanapun, yang pake software BLYNK, cek saja ada contoh programnya

      • kalo untuk kontrol via android bisa aja gan, tapi masih pake browser belum ada aplikasinya

        sekarang masih proses pengembangan gunain basic4android untuk project itu

        thanks sudah berkunjung,

  7. Bro apakah alat ini bisa dikendalikan dari jarak jauh? Yang dalam arti bukan hanya dapat dikendalikan di area sekitar rumah saja.

    • Kalo ini hanya Lokal area saja gan,

      kalo dimanapun, yang pake software BLYNK, cek saja ada contoh programnya

  8. rsn

    bang ini pake 4 channel logic level converter?

    • sudah ane benerin filenya,

      dan itu tanpa 4 channel sudah bisa gan,

      soalnya udah ane trial sendiri

  9. rsn

    bang ini pake 4 channel logic level converter?

    • sudah ane benerin filenya,

      dan itu tanpa 4 channel sudah bisa gan,

      soalnya udah ane trial sendiri

  10. saya menggunakan wemos d1 mini pro , bagaimana cara menggunakan nya mengontrol 6 relay dengan Aplikasi Android

    • Aplikasi androidnya buatan sendiri atau dari play store gan?

      bisa dikirim link nya,

  11. saya menggunakan wemos d1 mini pro , bagaimana cara menggunakan nya mengontrol 6 relay dengan Aplikasi Android

    • Aplikasi androidnya buatan sendiri atau dari play store gan?

      bisa dikirim link nya,

  12. Andrean Bagus Mahendra

    Kalo pake cloudmqtt gmn caranya bang? Dibagian apa yg harus di ubah?

  13. Andrean Bagus Mahendra

    Kalo pake cloudmqtt gmn caranya bang? Dibagian apa yg harus di ubah?

  14. Deni Mulyana

    bang relay 3 gak nyala, itu kenapa ya,, relay 3 hanya nyala pas relas 1, 2, 4 mati, pas 124 nyala relay 3 mati, danrelay 3 gak bisa di control di web,,

    • Coba cek di rangkaian nya dulu gan, kalo gak cek gunain voltmeter, apakah ada tegangan 3.3 v atau gak untuk relay 3 nya

  15. Deni Mulyana

    bang relay 3 gak nyala, itu kenapa ya,, relay 3 hanya nyala pas relas 1, 2, 4 mati, pas 124 nyala relay 3 mati, danrelay 3 gak bisa di control di web,,

    • Coba cek di rangkaian nya dulu gan, kalo gak cek gunain voltmeter, apakah ada tegangan 3.3 v atau gak untuk relay 3 nya

  16. MCGrumm

    Apakah espnya harus terhubung ke router? Ada cara ngga supaya dia langsung terhubung ke server tanpa harus connect router?

  17. MCGrumm

    Apakah espnya harus terhubung ke router? Ada cara ngga supaya dia langsung terhubung ke server tanpa harus connect router?

  18. Raihan Muhammad

    untuk masukin kodenya pake software apa gan? sorry masih pemula

  19. Raihan Muhammad

    untuk masukin kodenya pake software apa gan? sorry masih pemula

  20. septian

    bang gua wifinya pake hotspot hp, tapi pas munculin serial monitor ga muncul apa-apa. apa pake hotspot dari hp ngga bisa atau ada yg lain yg salah ya bang

  21. septian

    bang gua wifinya pake hotspot hp, tapi pas munculin serial monitor ga muncul apa-apa. apa pake hotspot dari hp ngga bisa atau ada yg lain yg salah ya bang

  22. Paulus Hendriawan

    gan kalau pakai NodeMCU Versi 1.0 (Unofficial board) itu harus ada pengaturan lagi atau tinggal ikutin tutorial yang agan kasi? terimakasih.

  23. Paulus Hendriawan

    gan kalau pakai NodeMCU Versi 1.0 (Unofficial board) itu harus ada pengaturan lagi atau tinggal ikutin tutorial yang agan kasi? terimakasih.

Leave a Reply to Ibnu Nugraha Cancel reply

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