Saturday, May 9, 2015

Salam Otomasi...


Sebagai seorang Automation Engineering anda harus familier dengan berbagai jenis sensor suhu, diantaranya Thermo couple, LM35, SHT 11, dan DHT 11. dari beberapa sensor suhu yang saya sebutkan tadi DHT 11 Adalah sensor suhu yang paling ekonomis harganya mungkin kisaran 40 rb.
selain murah sensor ini juga dilengkapi dengan pembacaan nilai suhu dan kelembaban udara (Relative Hummidity). Jadi efektif sekali untuk anda yang ingin belajar sensor suhu dan kelembaban.




Kali ini saya akan menjelaskan bagaimana cara akses data digital suhu dan kelembaban dari sensor DHT11 dengan menggunakan bahasa pemrograman Basic yang mana saya menggunakan sofware bascomAVR. Output yang dihasilkan merupakan baris data digital 40 bits, yang terdiri dari 16 bit data temperature, 16 bit data humidity dan 8 bit data parity.

Penggunaannya cukup sederhana, cukup sambungkan PIN – ke Ground dan PIN + ke VCC (5 V) dan Pin S ke input PIN, misalnya PIN 1. Selanjutnya, tinggal baca temperature dan humidity dengan code di bawah ini:
program bascom
Dim T1 As Byte
Dim H1 As Byte
Dim Crc1 As Byte
Dim Mybyte1 As Byte
Dim Sensor_data1 As String * 40
Dim Tmp_str81 As String * 8
Dim Count1 As Byte
Dim Send_kelembaban As String * 2
Dim Send_suhu As String * 2
Dim Send_h1 As String * 3
Dim Send_t1 As String * 3
 
 
 
 
 
Sub Get_th1(t1 As Byte , H1 As Byte)
Count1 = 0
Sensor_data1 = ""
Set Dht_io_set1
Reset Dht_put1
Waitms 25
Set Dht_put1
Waitus 40
Reset Dht_io_set1
Waitus 40
If Dht_get1 = 1 Then
    H1 = 1
    Exit Sub
End If
  Waitus 80
  If Dht_get1 = 0 Then
    H1 = 2
    Exit Sub
  End If
  While Dht_get1 = 1 : Wend
   Do
    While Dht_get1 = 0 : Wend
    Waitus 30
     If Dht_get1 = 1 Then
       Sensor_data1 = Sensor_data1 + "1"
       While Dht_get1 = 1 : Wend
       Else
       Sensor_data1 = Sensor_data1 + "0"
    End If
    Incr Count1
   Loop Until Count1 = 40
   Set Dht_io_set1
   Set Dht_put1
   Tmp_str81 = Left(sensor_data1 , 8)
   H1 = Binval(tmp_str81)
   Tmp_str81 = Mid(sensor_data1 , 17 , 8)
   T1 = Binval(tmp_str81)
   Tmp_str81 = Right(sensor_data1 , 8)
   Crc1 = Binval(tmp_str81)
   Mybyte1 = T1 + H1
   If Mybyte1 <> Crc1 Then
      H1 = 3
   End If
 
 
End Sub


0 komentar:

Post a Comment