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 :
- Apa itu Module NodeMCU ESP8266?
- Tutorial Arduino mengakses relay
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
Posting Komentar