Thumbnail monitoring DHT11 via browser

Monitoring sensor DHT11 dengan NodeMCU ESP8266 via Browser

Pada tutorial project artikel ini akan dibahas tentang monitoring sensor suhu dan kelembaban sensor DHT11 melalui jaringan Wifi melalui via browser.

NodeMCU ESP8266 adalah platform iot device yang dikemas ke dalam modul yang dikhususkan untuk mengakses modul sensor maupun modul microcontroller lainnya, yang dapat dikendalikan atau monitoring melalui internet.

Dan itu yang sering disebut dengan istilah Internet of Things (IoT).

Hal utama yang dibutuhkan yaitu konektifitas Wireless / wifi melalui Wifi Router dan 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 atau ip address NodeMCU tersebut, dapat langsung diakses melalui komputer maupun smartphone melalui browser, dan menuliskan ip tersebut.


Kebutuhan yang diperlukan project NodeMCU ESP8266

Bahan yang diperlukan :

Hal yang pertama perlu dilakukan yaitu pengetesan NodeMCU dengan memprogram secara sederhana “Blinking” menggunakan software Arduino IDE.

Untuk melakukan hal itu dapat dicek di link refrensi disini.

Skema alur project ini

Skema Rangkaian pada NodeMCU + DHT11

Monitoring DHT11 via browser komputer dengan NodeMCU

Wiring Sensor suhu dan kelembaban (DHT11) dengan Nodemcu ESP8266

  • GND                     : Gnd power supply
  • VCC                      : Vout power supply
  • Output Sensor     : Pin D1

Library yang dibutuhkan 

  • DHT11 : [ddownload id=”1457″]
  • Adafruit Sensor : [ddownload id=”1458″]

[irp]

Peletakan Library pada masing – masing Operation System :

  • PC (Windows) : Program file /Arduino/ libraries
  • Mac : (home directory)/Applications/Arduino (Show Package Content)/Contents/Java/Libraries
  • Linux : (home directory)/sketchbook/libraries

Kode Program

//www.nyebarilmu.com
//NodeMCU ESP8266 + DHT11
//©2017

#include <ESP8266WiFi.h> //memasukan library ESP8266
#include "DHT.h" //memasukan library dht11

//mendefinisikan sensor yang dipakai (DHT11, DHT21, dan DHT22)
#define DHTTYPE DHT11   //tipe yang dipilih DHT 11

//Nama wifi yang akan dikHidupeksikan
const char* ssid = "Blok21no12";
//masukan password wifinya
const char* password = "012345678";

WiFiServer server(80);

// DHT Sensor pada pin 5 di NodeMCU
const int DHTPin = 5;
//inisialisasi library DHTpin
DHT dht(DHTPin, DHTTYPE);

void setup() {
  Serial.begin(9600);
  delay(20);
  dht.begin();

  Serial.println();
  // Mengkonesikan ke wifi
  Serial.print("Menghubungkan ke jaringan... ");Serial.println(ssid);

  //Mulai koneksikan dengan via wifi
  WiFi.begin(ssid, password);

  //syarat kondisi pengkoneksian
  while (WiFi.status() != WL_CONNECTED)
  {delay(300);Serial.print(".");}Serial.println("");
  Serial.println("Jaringan WiFi terkoneksi");

  // pemulaian
  server.begin();Serial.println("Koneksi Server dimulai");

  Serial.print("alamat IP yang untuk pengaksesan: ");
  //penulisan alamat ip
  Serial.print("http://");
  //IP address
  Serial.print(WiFi.localIP());Serial.println("/");
}

void loop() {
  // mengecek jika client sudah terkonek
  WiFiClient client = server.available();
  //jika tidak client yang terkoneksi
  if (!client) {return;}

  Serial.println("Koneksi baru");
  //Jika sudah ada client baru maka
  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) {
            // Pembacaan sensor juga bisa sampai 2 detik 'lama' (sensornya sangat lambat)
            float h = dht.readHumidity();
            // Baca suhu sebagai Celsius (default)
            float t = dht.readTemperature();
            // Baca suhu sebagai Fahrenheit (apakah Fahrenheit = benar)
            float f = dht.readTemperature(true);
            // Periksa apakah ada yang membaca gagal dan keluar lebih awal (coba lagi)
            if (isnan(h) || isnan(t) || isnan(f)) {
              Serial.println("Failed to read from DHT sensor!");
            }
            else{
              Serial.print("Kelembaban : ");
              Serial.print(h);
              Serial.println("%");

              Serial.print("Suhu : ");
              Serial.print(t);
              Serial.print(" *C ");
              Serial.println(f);
            }
            // Menuliskan dalam format HTML
            client.println("HTTP/1.1 200 OK");client.println("Content-Type: text/html");
            client.println("Connection: close");client.println();

            // Halaman web Anda yang sebenarnya menampilkan suhu dan kelembaban
            client.println("<!DOCTYPE HTML>");
            client.println("<html>");
            client.println("<head></head><body><h1>NodeMCU ESP8266 - Suhu dan Kelembaban Sensor DHT11</h1><h3>Suhu dalam Celcius: ");
            client.println(t);//celsiusTemp
            client.println("*C</h3><h3>Suhu ke dalam Fahrenheit: ");
            client.println(f);//fahrenheitTemp
            client.println("*F</h3><h3>Kelembaban: ");
            client.println(h);
            client.println("%</h3><h3>");
            client.println("</body></html>");
            break;
        }
        if (c == '\n') {
          // Saat mulai membaca baris baru
          blank_line = true;
        }
        else if (c != '\r') {
          // Ketika menemukan karakter pada baris saat ini
          blank_line = false;
        }
      }
    }
    // Menutup koneksi klien
    delay(5);
  }
}

Hasil dari percobaan

Hasil Monitoring DHT11 via browser komputer dengan NodeMCU

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

 

17 Comments

  1. Ibnu Adi Perdana

    Bg, ada kontak yang bisa dihubungi?
    saya mau tanya, kalau pakai php gimna bg syntax nya?

    • admin-kece

      kalo untuk php blm dikembangkan lbh jauh, tp saran ane gunain developer ketiga saja gan misal kyk BLYNK

    • Sensornya yang diganti atau ditambah menggunakan fitur apa dulu gan?

      kalo menggunakan ADC perlu penambahan module i2c ADC tambahan

      kalo menggunakan i2c tinggal dideklarasikan alamatnya

  2. rozy

    kalau nerima data sensornya pake android ndak pakai browser bisa ndak gan ?

    • bisa saja itu gan, kalo android ane lebih condong pake aplikasi “Blynk”

      tapi kalo custom buat sendiri bisa pake basic4android, gan

      baru proses trial2 untuk itu

  3. iqbal

    gan kalo alat ini di taro di rumah, misall kita lgi di luar kota. apakah kita bisa buka dari browser hp/laptop ??

    • Kalo untuk project ini hanya lokal area saja gan,

      kalo untuk dimanapun kita berada bisa dikontrol, ane gunain BLYNK sebagai sarana semacam server atau interface nya

  4. proprasaan

    kok masih error yah bang
    errornya gini

    E:koding arduinowifisketch_jul16asketch_jul16a.ino: In function ‘void setup()’:

    sketch_jul16a:36: error: ‘WL_CHidupNECTED’ was not declared in this scope

    while (WiFi.status() != WL_CHidupNECTED)

    ^

    exit status 1
    ‘WL_CHidupNECTED’ was not declared in this scope

  5. mito uzumaki

    Gan itu pake resistor ngga, soalnya sensor dht11 yg ane pake panas terus meleleh

    • ane pake sensor DHT11 yang bentuk modul gan,

      jadi sudah siap pake,

      kalo panas terus meleleh coba cek ampere sama tegangan yang masuk kesitu,

      apakah benar 3,3volt kah? *karena akan disambungin dengan modul ESP8266 NODEMCU

  6. Kanata Hongo

    Gan mau tanya, Saya pake nya arduino biasa (Uno) bukan NODEMCU itu ngaruh gk ?

Leave a Reply to admin-kece Cancel reply

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