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 :
- NodeMCU ESP8266 V.1.0
- DHT11 / DHT22
- Kabel jumper
- Wifi Router
- Komputer + Software Arduino IDE
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
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
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!
Bg, ada kontak yang bisa dihubungi?
saya mau tanya, kalau pakai php gimna bg syntax nya?
kalo untuk php blm dikembangkan lbh jauh, tp saran ane gunain developer ketiga saja gan misal kyk BLYNK
Solved bg, udah bisa pake script php
Solved bg, udah bisa connect ke file php nya dia bg
Kang butuh pencerahan buat tambah sensor yg di tambah dan di ganti di mana aja..?
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
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
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
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
oke gan, ane cek dulu, takutny salah copy di postingan ny,
Sudah ya gan,
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
Gan mau tanya, Saya pake nya arduino biasa (Uno) bukan NODEMCU itu ngaruh gk ?
gak bisa konek ke internet itu gan,