Sensor
Mikrokontroller
DHT11
Arduino Uno
LabView
Model
DHT11
Power supply
3-5.5V DC
Output signal
Measuring range
Accuracy
Resolution or
sensitivity
0.1Celsius
Repeatability
Humidity hysteresis
+-1%RH
Long-term Stability
+-0.5%RH/year
Sensing period
Average: 2s
Interchangeability
fully interchangeable
Dimensions size
12*15.5*5.5mm
Seperti terlihat pada gambar 2 dan tabel 1, sensor DHT11 memiliki empat buah kaki
yaitu : pada bagian kaki(VCC), dihubungkan ke bagian Vss yg bernilai sebesar 5V, pada
mikrokontroller dan untuk bagian kaki GND dihubungkan ke ground (GND) pada board
mikrokontroller. Bagian kaki data yang merupakan keluaran (output) sensor, dihubungkan
ke bagian analog input pada mikrokontroller. Sementara satu kaki tambahan yaitu kaki
NC (Not Connected), yang tidak dihubungkan ke pin manapun.
B. Mikrokontroller Arduino Uno
mudah digunakan. Arduino ditujukan bagi para pembuat sistem yang menginginkan
abstraksi yang relatif sederhana dan terhindar dari kerumitan teknis elektronika.
Platform arduino terdiri dari arduino board, shield, bahasa pemrograman arduino, dan
arduino development environment. Arduino board biasanya memiliki sebuah chip dasar
mikrokontroler Atmel AVR ATmega8 berikut turunannya.
Blok diagram arduino board yang sudah disederhanakan dapat dilihat pada gambar 3.
Shield adalah sebuah papan yang dapat dipasang diatas arduino board untuk menambah
kemampuan dari arduino board. Bahasa pemrograman arduino adalah bahasa
pemrograman yang umum digunakan untuk membuat perangkat lunak yang ditanamkan
pada arduino board. Bahasa pemrograman arduino mirip dengan bahasa pemrograman
C++.
C. LabView
Kelebihan LabVIEW
mempunyai bahasa
pemograman berbasis grafis atau blok. Perangkat lunak ini terdiri dari tiga komponen
utama yaitu front panel, block diagram, function palette, dan control palette (Wardoyo,
2013).
D. Interkoneksi Sistem dan Protokol Akuisisi Data Sensor
Pada tugas ini, Sensor DHT11 dihubungkan dengan mikrokontroller Arduino Uno, yang
berperan sebagai perangkat akusisi data. Berdasarkan datasheet, sensor DHT11 berkomunikasi
dengan mikrokontroller melalui single wire atau one wire two way serial interface. Sehingga, pin
pada arduino yang digunakan sebagai jalur input data dari sensor, tidak menggunakan pin serial
UART (universal asynchronous receiver/transmitter), karena jalur komunikasi tersebut
membutuhkan dua buah pin receiver dan transmitter. Pada tugas ini, komunikasi antara sensor
DHT11 dan Arduino Uno menggunakan pin 2 (digital input). Sementara catu daya sensor
dihubungkan dengan pin power 5V dan ground. Gambar 4 menunjukkan tampilan interkoneksi
sistem antara Arduino Uno dengan sensor DHT11.
Akuisisi data sensor DHT11 dilakukan oleh mikrokontroller dengan mengirimkan low
signal beturut turut selama 18ms melalui jalur komunikasi data, dan kemudian mengembalikannya
kondisi sinyal high. Hal ini akan diartikan oleh sebagai permintaan akusisi data sensor DHT11.
Selanjutnya, sensor DHT11 akan mengirimkan low signal berturut turut selama 18 mikro detik
melalui jalur komunikasi data. Isyarat ini akan diartikan oleh mikrokontroller sebagai respon atas
permintaan akuisisi data. Setelah itu, DHT11 akan mulai mengirimkan data sensor secara serial.
Gambar 5 menunjukkan timing diagram protokol komunikasi ini.
2. PEMBAHASAN
Rancang bangun yang dibahas pada bagian 1, diimplementasikan melalui serangkaian
bahasa pemrograman. Berikut adalah penggalan program yang digunakan untuk mengirimkan
request akuisisi data. Pin 2 mikrokontroller yang digunakan sebagai jalur komunikasi,
mengirimkan (write) low signal selama 18ms. Selanjutnya, pin tersebut mengirimkan high signal
selama 40 mikro detik. Agar pin 2 siap digunakan untuk menerima data tempratur dari DHT11, pin
2 diubah menjadi mode input.
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
delay(18);
digitalWrite(pin, HIGH);
delayMicroseconds(40);
pinMode(pin, INPUT);
Selanjutnya, mikrokontroller mulai menerima 40 bit (5 byte) data nilai tempratur dan data
nilai kelembaban yang dihasilkan oleh sensor DHT11. Berikut adalah potongan program yang
digunakan memiliki fungsi menerima data dari sensor DHT11.
for (int i=0; i<40; i++)
{
loopCnt = 10000;
while(digitalRead(pin) == LOW)
if (loopCnt-- == 0) return -2;
unsigned long t = micros();
loopCnt = 10000;
while(digitalRead(pin) == HIGH)
if (loopCnt-- == 0) return -2;
if ((micros() - t) > 40) bits[idx] |= (1 << cnt);
if (cnt == 0)
// next byte?
{
cnt = 7;
// restart at MSB
idx++;
// next byte!
}
else cnt--;
}
Berdasarkan datasheet, most significant byte (MSB), yaitu byte 0 dan 1 merupakan nilai
kelembaban udara. Sementara least significant byte (LSB), yaitu byte merupakan nilai tempratur
udara yang terukur. Sementara byte ke 4 merupakan byte checker, yang dihasilkan dari
penjumlahan 4 byte sebelumnya. Penggalan coding berikut berfungsi memisahkan
bytestream ke dalam variabel humidity dan variable temprature.
humidity
= bits[0];
temperature = bits[2];
uint8_t sum = bits[0] + bits[2];
if (bits[4] != sum) return -1;
return 0;
Gambar 6 menunjukkan grafik hasil pengukuran lingkungan udara kamar yang ditampilkan
melalui perangkat lunak LabView. Byte stream yang dikirimkan dari sensor suhu ke
mikrokontroller adalah 0100 0001 0000 0000 0010 0000 0000 0000 0110 0010 0000 0000.
Berdasarkan urutan kedatangan data serial, MSB dari byte stream dari rangkaian suhu tersebut
adalah 0100 0001 (bin) atau sama dengan 65. Sementara byte berikutnya adalah 0010 0000 (bin)
atau sama dengan 32. Sehingga, data tersebut dapat diartikan bahwa suhu terukur adalah 32 dan
kelembaban yang terukur adalah 65% (dengan rentang kesalahan 2C berdasarkan datasheet).
Gambar 6. Grafik hasil pengukuran lingkungan udara kamar yang ditampilkan melalui perangkat lunak
LabView
Gambar 7 menunjukkan grafik hasil pengukuran lingkungan udara panas yang ditampilkan
melalui perangkat lunak LabView. Byte stream yang dikirimkan dari sensor suhu ke
mikrokontroller adalah 0100 1111 0000 0000 0011 1000 0000 0000 1000 0111 0000 0000.
Berdasarkan urutan kedatangan data serial, MSB dari byte stream dari rangkaian suhu tersebut
adalah 0100 1111 (bin) atau sama dengan 79. Sementara byte berikutnya adalah 0011 1000 (bin)
atau sama dengan 56. Sehingga, data tersebut dapat diartikan bahwa kelembaban yang terukur
adalah 79% dan suhu terukur adalah 56 C (dengan rentang kesalahan 2C berdasarkan
datasheet).
Hasil
pengukuran
kelembaban
menunjukkan
kenaikan
dibandingkan
pengukuran
kelembaban pada udara kamar. Hal ini karena uap air mendidih mengandung banyak partikel air
yang berubah menjadi gas (uap), sehingga kelembaban yang terukur lebih tinggi (79%)
dibandingkan dengan kelembaban udara kamar 65%.
Mengacu pada datasheet dan ringkasannya pada tabel 1, rentang pengukuran dari sensor ini
adalah 0C - 50C. Sehingga, tempratur air mendidih yang mencapai 100C tidak dapat diukur
dengan tepat oleh sensor. Bahkan apabila dipaksakan menunggu hingga pembacaan mendekati
nilai tempratur air mendidih, hal tersebut dapat menyebabkan kerusakan pada sensor.
.
Gambar 7. Grafik hasil pengukuran lingkungan udara panas yang ditampilkan melalui perangkat lunak
LabView
Gambar 8 menunjukkan grafik hasil pengukuran lingkungan udara dingin yang ditampilkan
melalui perangkat lunak LabView. Byte stream yang dikirimkan dari sensor suhu ke
mikrokontroller adalah 0101 1101 0000 0000 0001 1010 0000 0000 0111 0111 0000 0000.
Berdasarkan urutan kedatangan data serial, MSB dari byte stream dari rangkaian suhu tersebut
adalah 0101 1101 (bin) atau sama dengan 93. Sementara byte berikutnya adalah 0001 1010 (bin)
atau sama dengan 26. Sehingga, data tersebut dapat diartikan bahwa kelembaban yang terukur
adalah 79% dan suhu terukur adalah 56 (dengan rentang kesalahan 2C berdasarkan datasheet).
Hasil
pengukuran
kelembaban
menunjukkan
kenaikan
dibandingkan
pengukuran
kelembaban pada udara kamar maupun udara panas. Hal ini karena uap air hasil pencairan es
mengandung lebih banyak partikel air, sehingga kelembaban yang terukur lebih tinggi (93%)
dibandingkan dengan kelembaban udara panas (79%) maupun kelembaban udara kamar 65%.
Gambar 8. Grafik hasil pengukuran lingkungan udara dingin yang ditampilkan melalui perangkat lunak
LabView
Video demo dari sistem ini dapat dilihat pada link ini. ( https://youtu.be/2X2n1NIbOUw )
b) Sistem tersebut mampu melakukan instrumentasi suhu dan kelembaban dan menampilkannya
melalui LabView.
c) Nilai yang dihasilkan oleh sensor DHT11 merupakan nilai suhu dan kelembaban yang telah
terkalibrasi dan tidak perlu dilakukan operasi perhitungan untuk memperoleh nilai suhu dan
kelembaban tersebut.
d) Instrumentasi suhu dan kelembaban dengan sensor DHT11 memiliki rentang yang
terbatas, dimana apabila kondisi yang akan diukur berada diluar rentang tersebut,
hasil pengukuran bisa menjadi tidak akurat.
Saran :
Pengembangan sistem yang melibatkan sensor DHT11 perlu mempertimbangkan batasan
rentang pengukuran dan akurasi sensor ini.