Anda di halaman 1dari 9

Job 5 Interface DHT11 dengan ESP8266

sebagai Web-server
A. Capaian Pembelajaran
1. Mahasiswa mampu menjadikan Modul ESP8266 pembaca Sensor Suhu DHT11
2. Mahasiswa mampu menampilkan data suhu melalui Webserver menggunakan board ESP8266

B. Perangkat yang Diperlukan


1. Board Modul NodeMCU V3 (Lolin)
2. Kabel Data USB to MicroUSB / Kabel Data standart HP
3. Sensor DHT11
4. Software ArduinoIDE

C. Dasar Teori
C.1 Cara kerja Sensor DHT11
Sensor DHT11 merupakan serangkaian komponen senor dan IC kontroller yang dikemas dalam satu
paket. Sensor ini ada yang memiliki 4 pin ada pula yang 3 pin. Tapi tidak menjadi masalah karena dalam
penerapannya tiak ada perbedaan. Didalam bodi sensor yang berwarna biru atau putih terdapat sebuah
Resistor dengan tipe NTC (Negative Temperature Coefficient).

Resistor jenis ini memiliki karakteristik dimana nilai resistansinya berbanding terbalik dengan kenaikan
suhu. Artinya, semakin tinggi suhu ruangan maka nilai resistansi NTC akan semakin kecil. Sebaliknya
nilai resistansi akan meningkat ketika suhu disekitar sensor menurun.

Selain itu didalamnya terdapat sebuah sensor kelembapan dengan karkteristik resistif terhadp perubahan
kadar air di udara. Data dari kedua sensor ini diolah didalam IC kontroller. IC kontroller ini akan
mengeluarkan output data dalam bentuk single wire bi-directional.

Spesifikasi Sensor DHT11


- Tegangan Input 3-5V
- Arus 0.3mA, Iddle 60uA
- Periode sampling 2 detik
- Output data serial
- Resolusi 16bit
- Temperatur antara 0°C sampai 50°C (akurasi 1°C )
- Kelembapan antara 20% sampai 90% (akurasi 5%)
1
C.2 Susunan Pin
Sensor DHT11 memiliki 2 versi, yatu versi 4 pin dan versi 3 pin. Tidak ada perbedaan karakteristik dari
2 versi ini. Pada versi 4 pin,. Pin 1 adalah tegangan sumber, berkisar antara 3V sampai 5V. Pin 2
adalalah data keluaran (output) . Pin ke 3 adalah pin NC (normall y close ) alias tidak digunakan dan
pin ke 4 adalah Ground. Sedangkan pada versi 3 kaki, pin 1 adalah VCC antara 3V sampai 5V, pin 2
adalah data keluaran dan pin 3 adalah Ground. Susunan pin selengkapnya dapat dilihat pada Gambar
5.1.

Gambar 5.1 Susunan Pin DHT-11

Adapun versi upgrade (peningkatan) dari sensor DHT11 adalah sensor DHT22. Tidak ada perbedaan
pada susunan pin, hanya saja akurasi dari DHT22 lebih tinggi dari DHT11, yakni sevbesar 0.5 °C
untuk temperature dan 2.5% untuk kelembapan.

2
D. Langkah Percobaan
D.1 Membaca sensor DHT-11
1. Install library sensor DHT dengan meng-klik tools>manage libraries dan ketik “dht” (tanpa
koma atas) pada kolom search seperti Gambar 5.2. Kemudian klik tombol install

Gambar 5.2 Menu install library sensor DHT

2. Buat Rangkaian sebagaimana Gambar 5.3

Gambar 5.3 Rangkaian DHT-11 dan NodeMCU

3
3. Jalankan arduino IDE
4. Koneksikan NodeMCU dengan PC menggunakan kabel USB
5. Pastikan setting board dan com sesuai
6. Buat sketch program sebagai berikut :

#include <DHT.h>
// DHT Sensor
uint8_t DHTPin = D7;

// Initialize DHT sensor.


DHT dht(DHTPin, DHTTYPE);

void setup(){
Serial.begin(115200);
dht.begin();
}

void loop(){
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();

Serial.print("kelembaban: ");
Serial.print(kelembaban);
Serial.print(" ");
Serial.print("suhu: ");
Serial.println(suhu);
}

7. Compile dan Upload program.


8. Buka Serial Monitor pada ArduinoIDE (menu Tools => Serial Monitor)
9. Atur baudrate pada nilai 115200
10. Lihat tampilan pada serial monitor. Jika semua benar, maka akan tampil sebagaimana
pada Gambar 5.4

4
Gambar 5.4 Tampilan Serial Monitor

Tugas D.1:

Modifikasi program anda agar mampu mengendalikan nyala Lampu LED Built-in
berdasar kondisi suhu dengan ketentuan:
- LED menyala jika suhu antara 32 – 37 C
- LED mati jika suhu <32 C atau > 37 C

D.2 Menampilkan data sensor DHT-11 di Web


1. Buat Rangkaian sebagaimana Gambar 5.3
2. Buat sketch program sebagai berikut :
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include "DHT.h"

// Uncomment one of the lines below for whatever DHT sensor type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321

/*Put your SSID & Password*/


const char* ssid = "SSID"; // Enter SSID here
const char* password = "password"; //Enter Password here

ESP8266WebServer server(80);

// DHT Sensor

5
uint8_t DHTPin = D7;

// Initialize DHT sensor.


DHT dht(DHTPin, DHTTYPE);

float Temperature;
float Humidity;

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

pinMode(DHTPin, INPUT);

dht.begin();

Serial.println("Connecting to ");
Serial.println(ssid);

//connect to your local wi-fi network


WiFi.begin(ssid, password);

//check wi-fi is connected to wi-fi network


while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());

server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);

server.begin();
Serial.println("HTTP server started");

}
void loop() {

server.handleClient();

void handle_OnConnect() {

Temperature = dht.readTemperature(); // Gets the values of the temperature

6
Humidity = dht.readHumidity(); // Gets the values of the humidity
server.send(200, "text/html", SendHTML(Temperature,Humidity));
}

void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}

String SendHTML(float Temperaturestat,float Humiditystat){


String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-
scale=1.0, user-scalable=no\">\n";
ptr +="<title>ESP8266 Weather Report</title>\n";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto;
text-align: center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<div id=\"webpage\">\n";
ptr +="<h1>ESP8266 NodeMCU Weather Report</h1>\n";

ptr +="<p>Temperature: ";


ptr +=(int)Temperaturestat;
ptr +="°C</p>";
ptr +="<p>Humidity: ";
ptr +=(int)Humiditystat;
ptr +="%</p>";

ptr +="</div>\n";
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}

3. Compile dan Upload program.


4. Aktifkan AP Wi-fi anda
5. Buka Serial Monitor pada ArduinoIDE (menu Tools => Serial Monitor)
6. Atur baudrate pada nilai 115200
7. Lihat tampilan pada serial monitor. Jika semua benar, maka akan tampil sebagaimana
pada Gambar 5.5

7
Gambar 5.5 Tampilan Serial Monitor

8. Buka browser, akses sesuai alamat IP yang didapat


9. Jika program berjalan dengan benar, maka akan keluar tampilan sebagaimana Gambar
5.6

Gambar 5.6 Tampilan Browser

8
Tugas D.2:

==== disampaikan pada pertemuan minggu berikutnya =========

SELAMAT MENGERJAKAN

Praktikum Embedded System


Prodi STr. Teknik Telekomunikasi
Kelas TE-3C
Semester Gasal -Tahun Ajaran 2020/2021
Pengampu: Amin Suharjono

Anda mungkin juga menyukai