Semangat pagi, kali ini kita akan belajar untuk mengontrol LED melalui wifi menggunakan NodeMCU. Mengapa LED? nggak langsung ke peralatan listrik…. LED ini merupakan langkah awal sebagai testing apakah secara fungsi sistem ini dapat berjalan dengan baik atau tidak. Jika sudah berhasil tanpa kendala, LED ini dapat diganti dengan berbagai peralatan listrik apapun itu dengan tambahan relay tentunya.

Oke untuk bahan-bahan yang diperlukan berikut ini :

  • NodeMCU V3 atau versi lain, BELI
  • Kabel micro USB, BELI
  • LED dan resistor 220 Ohm, BELI
  • Kabel jumper, BELI
  • Breadboard, BELI

Rangkaian

Keterangan :

  • Kaki negatif LED dihubungkan ke GND
  • Kaki positif dihubungkan ke resistor 220 Ohm dan D5

Silahkan rangkai sesuai dengan rangkaian di atas, jangan lupa untuk menghubungkan NodeMCU ke laptop dengan kabel micro USB. Jika sudah kita beralih ke Arduino IDE-nya.

  • Buka Arduino IDE
  • Pastikan board pada menu Tools adalah NodeMCU 1.0 (ESP-12E Module)
  • Pastikan Port sudah terdeteksi juga misalnya COM20
  • Jika sudah upload sketch program di bawah ini

Sketch Program

#include <ESP8266WiFi.h&gt;

#define pinLED D5

const char* ssid = "ketik nama wifi anda";
const char* password = "ketik password wifi anda";

WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  pinMode(pinLED, OUTPUT);
  digitalWrite(pinLED, 0);
  
  // menghubungkan ke WIFI
  Serial.println();
  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");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  int val;
  if (req.indexOf("/gpio/0") != -1)
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  digitalWrite(pinLED, val);
  
  client.flush();

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML&gt;\r\n<html&gt;\r\nKondisi LED  ";
  s += (val)?"nyala":"mati";
  s += "</html&gt;\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");
}

Perlu diperhatikan pada baris program ini :

  • const char* ssid = “ketik nama wifi anda“;
  • const char* password = “ketik password wifi anda“;

ganti dengan nama wifi dan password anda ya kemudian upload program sampai done uploading.

Hasil

Buka Serial monitornya dengan baudrate 115200, maka hasil tampilannya seperti gambar di bawah ini.

Jika tampilan seperti di atas, maka sudah terkoneksi dengan wifi. Di sini saya mendapatkan IP 192.168.169.109, silahkan anda lihat pada serial monitor dan pastinya IP nya berbeda dengan IP punya saya. heee

Untuk cara kontrol LED nya, silahkan buka browser anda bisa menggunakan chrome, mozila atau yang lainnya.

  • Ketik http://192.168.169.109/gpio/1 untuk menyalakan LED
  • Ketik http://192.168.169.109/gpio/0 untuk mematikan LED

Silahkan untuk IP disesuikan ya dengan IP anda. Untuk videonya di bawah ini.

Demikian pembahasan kali ini, semoga berhasil. Terima kasih.

Kategori: NodeMCU

2 Komentar

Chor · Agustus 9, 2019 pada 3:08 am

Ini apakah bisa di kontrol dari jarak jauh asal terkoneksi internet misal dari luar kota bahkan luar negeri ?

    m syefudin · Agustus 9, 2019 pada 4:26 am

    gk bisa gan…ini msh pke wifi local… jd hanya bisa untuk jangakauan sejauh jangkauan wifi aja

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll Up
id_IDIndonesian
en_USEnglish id_IDIndonesian