Cara memprogram sensor DHT 11 suhu dan kelembaban

Dalam tulisan kali ini belajarlistrik.com akan membahas cara memprogram sensor DHT 11 suhu dan kelembaban. Sensor DHT 11 merupakan salah satu sensor yang cukup handal yang dapat kita gunakan untuk mendapatkan data suhu sekaligus data kelembaban.

Cara memprogram sensor DHT 11

Cara memprogram sensor DHT 11

Sensor DHT 11 juga dapat mudah berkomunikasi dengan berbagai macam jenis controller yang populer saat ini seperti Arduino dan Mikrokontroler.

Prinsip Kerja sensor DHT 11

Untuk memudahkan dalam memahami prinsip kerja sensor DHT 11, terlebih dahulu akan dijelaskan karakteristrik  sensor DHT 11:

Tegangan kerja power supply    :3,5 – 5 Volt DC

Jumlah pin                                          : 4 buah terdiri dari VCC, Ground, Data, NC (Not Connected)

Resolusi Kelembaban                     : 16 bit data ( 25℃    ±2℃)

Resolusi Suhu                                    : 16 bit data ( 25℃    ±2℃)

Dengan hanya memiliki 1 pin data, maka sensor DHT 11 dapat berkomunikasi dengan controller baik mikrokontroler ataupun Arduino dengan metode komunikasi serial (single wire bi-directional).

Data yang dikirim oleh sensor DHT 11 ke controller sebanyak 40 bit data dimana, 16 bit data pertama merupakan data biner kelembaban, 16 bit selanjutnya merupakan data biner suhu, dana 8 bit data terakhir merupakan hasil dari penjumlahan dari nilai suhu dan kelembaban.

Dengan metoda pengiriman data secara serial sebanyak 40 bit yang terdiri dari data suhu dan kelembaban membuat sensor DHT 11 ini tidak memerlukan kalibrasi lagi. Data suhu dan kelembaban sudah dapat terbaca dengan menerjamahkan ke 40 bit data biner yang dikirim sensor DHT 11 menjadi data desimal.

Cara memprogram sensor suhu dan kelembaban DHT 11 dengan Bascom AVR

Sebelum membuat program, ada baiknya belajarlistrik.com jelaskan terlebih dahulu algoritma dalam memprogram sensor DHT 11:

  • Hubungkan sensor dengan mikrokontroler atau arduino.
  • Konfigurasikan Pin Mikrokontroler sebagai output, lalu beri sinyal high (1) ke sensor DHT 11 selama 18 ms.
Signal slave sebagai trigger untuk sensor suhu kelembaban DHT 11

Signal slave sebagai trigger untuk sensor suhu kelembaban DHT 11

  • Konfigurasikan pin mikrokontroler sebagai input.
  • Sinyal high (1) yang dikirim oleh mikrokontroler tadi akan diterima oleh sensor DHT 11, maka sensor DHT 11 akan mengirim sinyal low selama 80 mikro detik, lalu sinyal high 80 selama mikro detik. Setelah itu DHT 11 akan mengirim 40 bit data. Untuk itu kita dapat mengaktifkn fasilitas timer / counter pada mikrokontroler, belajar Counter pada Mikrokontroler Atmega
waktu delay sensor sebelum memulai pengiriman data ke kontroler

waktu delay sensor sebelum memulai pengiriman data ke kontroler

  • 40 bit data yang dikirim oleh DHT 11 ditandai dengan logika 1 slave signal selama 70 mikro detik dan logika 0 jika slave signal selama 26 sampai 28 mikrodetik.
  • Perbedaan signal high dan signal low yang diberikan sensor suhu kelembaban DHT 11 ke kontroler

    Perbedaan signal high dan signal low yang diberikan sensor suhu kelembaban DHT 11 ke kontroler

Berdasarkan algoritma pemrograman sensor DHT 11 yang telah kita buat, kita terjemahkan algoritma tadi dalam bentuk kode program dengan menggunakan compiler Bascom seperti dibawah ini:

Program Sensor DHT 11

$regfile = “m8535.dat”

$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0

Config Lcd = 16 * 2

Cursor Off

Cls

Waitms 10

Declare Sub Get_th(t As Byte , H As Byte)

Config Serialin = Buffered , Size = 128

Config Serialout = Buffered , Size = 128

Dht_put Alias Porta.3

Dht_get Alias Pina.3

Dht_io_set Alias Ddra.3

Dim T As Byte

Dim H As Byte

Dim Sensor_data As String * 40

Dim Nilaistring As String * 8

Dim Hitung As Byte

Enable Interrupts

Set Dht_io_set

Set Dht_put

Do

Call Get_th(t , H)

Cls

Lcd “Suhu: ” ; T ; “C”

Lowerline

Lcd “Kelembaban: ” ; H ; “%”

Loop

Sub Get_th(t As Byte , H As Byte)

Hitung = 0

Sensor_data = “”

Set Dht_io_set

Reset Dht_put

Waitms 25

Set Dht_put

Waitus 40

Reset Dht_io_set

Waitus 120

While Dht_get = 1 : Wend

Do

While Dht_get = 0 : Wend

Waitus 30

If Dht_get = 1 Then

Sensor_data = Sensor_data + “1”

While Dht_get = 1 : Wend

Else

Sensor_data = Sensor_data + “0”

End If

Incr Hitung

Loop Until Hitung = 40

nilaistring = Left(sensor_data , 8)

H = Binval(nilaistring)

nilaistring = Mid(sensor_data , 17 , 8)

T = Binval(nilaistring)

End Sub

End

Lalu compile program yang telah kita buat, sehingga menghasilkan file yang berekstensi *hex yang dapat kita downloadkan pada mikrokontroler. Lalu download program tadi ke chip mikrokontroler kita atau juga dapat mencoba project ini menggunakan software simulasi proteus.

Hasil simulasi dengan software proteus untuk sensor DHT 11

Hasil simulasi dengan software proteus untuk sensor DHT 11

Published on Apr 5, 2017 | Under Belajar Mikrokontroler | By admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Tutorial Listrik | Belajar Mikrokontroler Arduino | Aplikasi PLC SCADA | Belajarlistrik