Membuat Termometer Digital Dengan DHT11
Sensor DHT11 memerlukan resistor 10K pada kaki VCC dan Data untuk menghindari arus langsung yang masuk ke sensor sebelum masuk ke mikrokontroler. Rangkaiannya seperti berikut
Pada bagian ini
akan
dibahas mengenai pembuatan termometer digital menggunakan sensor DHT11
sebagai
pendeteksi kondisi suhu. Alat ini tidaklah jauh berbeda dengan
pembahasan alat
yang dibuat sebelumnya, perbedaannya hanya pada sensor, jika sebelumnya
membahas tentang sensor LM35 namun kali ini membahas tentang sensor
DHT11
sebagai detektor suhu. Kelebihan dari sensor DHT11 ini dibanding dengan
LM35
yaitu jika DHT11 ini bisa mengukur dua data sekaligus yaitu suhu dan
kelembaban, jika LM35 hanya fokus pada suhu saja. Berikut adalah gambar
dari
alat pendeteksi suhu dengan DHT11.
Bentuk Sensor DHT11
DHT11 merupakan sensor yang telah teruji
keakuratannya dalam pengukuran suu dan kelembaban suatu udara. DHT11 memiliki
perbedaan dari sensor-sensor yang lain antara lain dapat mengukur dua faktor
sekaligus dalam satu sensor yaitu suhu dan kelembaban, serta harganya yang
terjangkau
Sensor DHT11 memerlukan resistor 10K pada kaki VCC dan Data untuk menghindari arus langsung yang masuk ke sensor sebelum masuk ke mikrokontroler. Rangkaiannya seperti berikut
Skematik Mikrokontroller
Program BASCOM AVR
'======================================================
'Programmer:
Yanuar Mukhammad
'E-mail : Yanuarm@hotmail.com
'======================================================
$regfile =
"m16def.dat"
$crystal =
12000000
'--------------------------
Config Lcdpin =
Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin =
Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16
* 2
Cursor Off
Cls
Declare Sub
Get_th(t As Byte , H As Byte)
Config Serialin
= Buffered , Size = 128
Config
Serialout = Buffered , Size = 128
Dht_put Alias
Portb.2
Dht_get Alias
Pinb.2
Dht_io_set
Alias Ddrb.2
Dim T As
Byte
Dim H As
Byte
Dim Crc As
Byte
Dim Mybyte As Byte
Dim Sensor_data
As String * 40
Dim Tmp_str8 As
String * 8
Dim Count As
Byte
Enable
Interrupts
Set Dht_io_set
Set Dht_put
Lcd
"Yanuar M."
Lowerline
Lcd "DHT11
sensor"
Do
Waitms
1500
Call
Get_th(t , H)
Cls
Lcd
"TMP: " ; T ; "C"
Lowerline
Lcd
"PHP: " ; H ; "%"
Loop
Sub Get_th(t As
Byte , H As Byte)
Count
= 0
Sensor_data
= ""
Set
Dht_io_set
Reset
Dht_put
Waitms
25
Set
Dht_put
Waitus
40
Reset
Dht_io_set
Waitus
40
If
Dht_get = 1 Then
H
= 1
Exit
Sub
End
If
Waitus
80
If
Dht_get = 0 Then
H
= 2
Exit
Sub
End
If
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
Count
Loop
Until Count = 40
Set
Dht_io_set
Set
Dht_put
Tmp_str8
= Left(sensor_data , 8)
H
= Binval(tmp_str8)
Tmp_str8
= Mid(sensor_data , 17 , 8)
T
= Binval(tmp_str8)
Tmp_str8
= Right(sensor_data , 8)
Crc
= Binval(tmp_str8)
Mybyte
= T + H
If
Mybyte <> Crc Then
H = 3
End
If
End Sub
Cara Penggunaan Alat
Alat diberi tegangan 12v atau
9v jika terdapat rangkaian regulator, jika tidak maka menggunakan vcc sebesar
5v untuk mengaktifkan alat. Pada saat diaktifkan, LCD akan otomatis menampilkan
data Suhu dan kelembaban
No comments:
Post a Comment