Tutorial Sensor Suhu dan Kelembaban SHT11

Sensor SHT11 merupakan sensor yang dapat mendeteksi suhu dan kelembaban dengan range -40 sampai 123.8 derajat Celcius atau -40 sampai 254.9 derajat Fahrenheit, dan 0 sampai 100 %RH.
Ada dua pin yang digunakan pada SHT11 untuk berkomunikasi dengan mikrokontroler, yaitu pin SCK dan pin DATA. Pin SCK berfungsi untuk mensinkronisasikan komunikasi antara SHT11 dan mikrokontroler, sedangkan pin DATA berfungsi untuk mentransfer data in dan out pada SHT11.

 Rangkaian skematik sensor SHT11 ini sebagai berikut:

 skematiksht11

Listing programnya sebagai berikut:

‘===============================================
‘ Tutorial Sensor Suhu dan Kelembaban SHT11
‘ Programmer: Wahyu Rahmaniar
‘ Company: Technologination

‘===============================================

  1. $regfile = “m8535.dat”  
  2. ‘mikrokontroler ATMega8535
  3. $crystal = 11059200
  4. $baud = 9600  
  5. ‘baud rate utk pengiriman data serial
  6.  
  7. Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
  8. pin-pin lcd yang digunakan
  9. Config Lcd = 16 * 2
  10. Deflcdchar 1 , 28 , 20 , 28 , 32 , 32 , 32 , 32 , 32  
  11. ‘membuat karakter derajat 
  12. Dim Dataword As Word
  13. Dim Command As Byte
  14. Dim Calc As Single
  15. Dim Calc2 As Single
  16. Dim Rhlinear As Single
  17. Dim Rhlintemp As Single
  18. Dim Tempc As Single
  19. Dim Ctr As Byte
  20. Dim X As Word
  21. Dim Y As Single
  22. Dim Z As Single
  23. Dim Suhu As String * 10
  24. Dim Kelembaban As String * 10
  25. Dim Tekanan As String * 10
  26. Const C1 = -4
  27. Const C2 = 0.0405
  28. Const C3 = -0.0000028
  29. Const S = .01
  30. Const H = .00008
  31. Sck Alias Portc.0  
  32. ‘sck output pada port C.0
  33. Dataout Alias Portc.1 
  34. ‘ketika memanggil dataout portc.1 menjadi output
  35. Datain Alias Pinc.1  
  36. ‘ketika memanggil datain portc.1 menjadi input 
  37. Declare Sub Kirim()
  38. Ddrc = &B11111111  
  39. ‘port c sebagai output
  40. Config Pinc.0 = Output
  41. Config Pinc.1 = Output
  42. Wait 1
  43. Set Dataout
  44. For Ctr = 1 To 12
  45. Set Sck
  46. Waitus 2
  47. Reset Sck
  48. Waitus 2
  49. Next Ctr
  50. Do
  51. Gosub Data_suhu
  52. Print “Data suhu: “; Suhu  
  53. ‘mengirimkan data suhu ke komputer
  54. Print “Data kelembaban: “; Kelembaban ‘ 
  55. ‘mengirimkan data kelembaban ke komputer
  56. ‘Waitms 100
  57. Gosub Tampil
  58. Loop
  59. Tampil:  
  60. ‘sub program untuk menampilkan pada LCD
  61. Cls
  62. Cursor Off
  63. Upperline
  64. Lcd “Suhu= ” ; Suhu ; ” ” ; Chr(1) ; “C”
  65. Lowerline
  66. Lcd “Rh = ” ; Kelembaban ; ” ” ; “%”
  67. Wait 1
  68. Return
  69. Data_suhu:  
  70. ‘sub program untuk mengambil data suhu dan kelembaban dari sht11
  71. Command = &B00000011
  72. Call Kirim  
  73. ‘memanggil fungsi kirim
  74. Tempc = S * Dataword
  75. Tempc = Tempc – 40
  76. Suhu = Fusing(tempc , “#.##”) 
  77. ‘mengubah data single menjadi string dengan 2 angka dibelakang koma
  78. Command = &B00000101
  79. Call Kirim
  80. Calc = C2 * Dataword
  81. Calc2 = Dataword * Dataword
  82. Calc2 = C3 * Calc2
  83. Calc = Calc + C1
  84. Rhlinear = Calc + Calc2
  85. Calc = H * Dataword
  86. Calc = Calc + S
  87. Calc2 = Tempc – 25
  88. Calc = Calc2 * Calc
  89. Rhlintemp = Calc + Rhlinear
  90. Kelembaban = Fusing(rhlintemp , “#.##”)
  91. Return
  92. Sub Kirim()
  93. Local Datavalue As Word
  94. Local Databyte As Byte
  95. Set Sck
  96. Reset Dataout
  97. Reset Sck
  98. Set Sck
  99. Set Dataout
  100. Reset Sck
  101. Shiftout Dataout , Sck , Command , 1
  102. Ddrc = &B11111101
  103. Config Pinc.1 = Input
  104. Set Sck
  105. Reset Sck
  106. Waitus 10
  107. Bitwait Pinc.1 , Reset
  108. Shiftin Datain , Sck , Databyte , 1
  109. Datavalue = Databyte
  110. Ddrc = &B11111111
  111. Config Pinc.1 = Output
  112. Reset Dataout
  113. Set Sck
  114. Reset Sck
  115. Ddrc = &B11111101
  116. Config Pinc.1 = Input
  117. Shiftin Datain , Sck , Databyte , 1
  118. Shift Datavalue , Left , 8
  119. Datavalue = Datavalue Or Databyte
  120. Dataword = Datavalue
  121. Ddrc = &B11111111
  122. Config Pinc.1 = Output
  123. Reset Dataout
  124. Set Sck
  125. Reset Sck
  126. Ddrc = &B11111101
  127. Config Pinc.1 = Input
  128. Shiftin Datain , Sck , Databyte , 1
  129. Ddrc = &B11111111
  130. Config Pinc.1 = Output
  131. Set Dataout
  132. Set Sck
  133. Reset Sck
  134. End Sub
  135. End

Program diatas berfungsi untuk menampilkan data suhu dan kelembaban dari sensor SHT11 ke LCD display 16×2 dan mengirimkan data suhu dan kelembaban tersebut ke komputer.

Rangkaian lengkapnya sebagai berikut:

Datasheet sensor suhu dan kelembaban SHT11 dapat didownload disini.

Sumber :

http://technologination.blogspot.com/

Iklan



    Tinggalkan Balasan

    Isikan data di bawah atau klik salah satu ikon untuk log in:

    Logo WordPress.com

    You are commenting using your WordPress.com account. Logout / Ubah )

    Gambar Twitter

    You are commenting using your Twitter account. Logout / Ubah )

    Foto Facebook

    You are commenting using your Facebook account. Logout / Ubah )

    Foto Google+

    You are commenting using your Google+ account. Logout / Ubah )

    Connecting to %s



%d blogger menyukai ini: