fbpx

NodeMCU, Menampilkan Data Sensor LDR Web Server

Hari ini kita akan mencoba untuk menampilkan data sensor ldr ke web server dengan koneksi WIFI menggunakan board NodeMCU. Untuk tampilannya masih sederhana ya hee, untuk selanjutnya anda bisa juga menambahkan CSS agar tampilan lebih menarik lagi. Oke langsung saja untuk membuatnya kita membutuhkan beberapa komponen di bawah ini.

Alat dan bahan

  • Board Esp8266 NodeMCU, BELI
  • Sensor LDR, BELI
  • Kabel jumper, BELI
  • Resistor 10K, BELI
  • Breadboard, BELI

Rangkaian

Keterangan :

  • Pemasangan kaki sensor ldr boleh terbalik
  • Kaki 1 dihubungkan ke 3.3v
  • kaki 2 ke pin A0 dan resistor 10K dan GND

Sketch Program

#include <ESP8266WiFi.h>

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

int pinLdr = A0;
int ldrValue;
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(20);
  Serial.println();
  Serial.print("Menghubungkan ke WIFI... ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(300);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi terkoneksi");
  server.begin();
  Serial.println("Koneksi Server dimulai");
  Serial.print("Alamat IP : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}

void loop() {
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println("Koneksi baru");
  while (!client.available())
  {
    delay(5);
  }
  if (client) {
    boolean blank_line = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && blank_line) {
          ldrValue = analogRead(pinLdr);
          Serial.println(ldrValue);
          
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println("<head></head><body><h2>Sensor LDR NodeMCU</h2><h3>Data sensor : ");
          client.println(ldrValue);
          client.println("</h3><h3>");
 
          client.println("</body></html>");
          break;
        }
        if (c == '\n') {
          blank_line = true;
        }
        else if (c != '\r') {
          blank_line = false;
        }
      }
    }
    delay(5);
  }
}

Upload program dengan board NodeMCU 1.0 dan port terceklis sampai done uploading. Buka Serial Monitor dengan baudrate 115200. Copy IP yang muncul dan pastekan ke web browser dan hasilnya seperti di bawah ini.

Semoga bermanfaat.

About the Author

8 thoughts on “NodeMCU, Menampilkan Data Sensor LDR Web Server

    1. sebenarnya script di atas udah realtime mas, tinggal refresh aja di sisi browser nanti akan otomatis data akan ikut berubah. Kalo masu diubah lebih cepat atau lebih lambat tinggal ubah nilai delay di dalam void loop, itu untuk mengatur perulangan pengambilan data sensor. Semakin cepat berarti semakin realtime tapi loading web akan semakin lambat. Silahkan diatur-atur sendiri nilai delay yang pas ya