SHT 11 - Sensor Suhu + Kelembaban

SHT11 Module merupakan modul sensor suhu dan kelembaban relatif dari Sensirion. Modul ini dapat digunakan sebagai alat pengindra suhu dan kelembaban dalam aplikasi pengendali suhu dan kelembaban ruangan maupun aplikasi pemantau suhu dan kelembaban relatif ruangan.


Spesifikasi dari SHT11 ini adalah sebagai berikut:
1. Berbasis sensor suhu dan kelembaban relatif Sensirion SHT11.
2. Mengukur suhu dari -40C hingga +123,8C, atau dari -40F hingga +254,9F dan kelembaban relatif dari 0%RH hingga 1%RH.
3. Memiliki ketetapan (akurasi) pengukuran suhu hingga 0,5C pada suhu 25C dan ketepatan (akurasi) pengukuran kelembaban relatif hingga 3,5%RH.
4. Memiliki atarmuka serial synchronous 2-wire, bukan I2C.
5. Jalur antarmuka telah dilengkapi dengan rangkaian pencegah kondisi sensor lock-up.
6. Membutuhkan catu daya +5V DC dengan konsumsi daya rendah30 μW.
7. Modul ini memiliki faktor bentuk 8 pin DIP 0,6sehingga memudahkan pemasangannya.



Prinsip Kerja Sensor
SHT11 adalah sebuah single chip sensor suhu dan kelembaban relatif dengan multi modul sensor yang outputnya telah dikalibrasi secara digital. Dibagian dalamnya terdapat kapasitas polimer sebagai eleman untuk sensor kelembaban relatif dan sebuah pita regangan yang digunakan sebagai sensor temperatur. Output kedua sensor digabungkan dan dihubungkan pada ADC 14 bit dan sebuah interface serial pada satu chip yang sama. Sensor ini mengahasilkan sinyal keluaran yang baik dengan waktu respon yang cepat. SHT11 ini dikalibrasi pada ruangan denagn kelembaban yang teliti menggunakan hygrometer sebagai referensinya. Koefisien kalibrasinya telah diprogramkan kedalam OTP memory. Koefisien tersebut akan digunakan untuk mengaklibrasi keluaran dari sensor selama proses pengukuran.


Diagram Blok SHT11

Sistem sensor yang digunakan untuk mengukur suhu dan kelembaban adalah SHT11 dengan sumber tegangan 5 Volt dan komunikasi bidirectonal 2-wire. Sistem sensor ini mempunyai 1 jalur data yang digunakan untuk perintah pengalamatan dan pembacaan data. Pengambilan data untuk masing-masing pengukuran dilakukan dengan memberikan perintah pengalamatan oleh mikrokontroler. Kaki serial Data yang terhubung dengan mikrokontroler memberikan perintah pengalamatan pada pin Data SHT11 “00000101” untuk mengukur kelembaban relatif dan “00000011” untuk pengukuran temperatur. SHT11 memberikan keluaran data kelembaban dan temperatur pada pin Data secara bergantian sesuai dengan clock yang diberikan mikrokontroler agar sensor dapat bekerja. Sensor SHT11 memiliki ADC (Analog to Digital Converter) di dalamnya sehingga keluaran data SHT11 sudah terkonversi dalam bentuk data digital dan tidak memerlukan ADC eksternal dalam pengolahan data pada mikrokontroler. Skema pengambilan data SHT11 dapat dilihat pada gambar berikut ini.








nach ni dia sample program SHT11 menggunakan BASCOM AVR:


$regfile = “m8535.dat”


$crystal = 12000000


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


Config Lcd = 16 * 2


Cursor Off Noblink


‘Routine to read the SHT11 Humidity sensor chip


‘By Stuart Leslie


‘Contact stu@4sightinc.com with any questions


‘Uses BascomAVR


‘a .01 uf capacitor across VCC and Ground on the SHT11 really cleans up the data


‘a pullup is required on “data” pin as shown in the data sheet


Dim Hasil As Single


Dim Hasilsuhu As Single


Dim Suhu As Single


Dim X As Single


Dim Ctr As Byte


Dim Dataword As Word


Dim Command As Byte


Dim Dis As String * 20


Dim Calc As Single


Dim Calc2 As Single


Dim Rhlinear As Single


Dim Rhlintemp As Single


Dim Tempc As Single


Dim Tempf As Single


Const C1 = -4


Const C2 = 0.0405


Const C3 = -0.0000028


Const T1c = .01


Const T2 = .00008


Const T1f = .018


Sck Alias Portb.0


Dataout Alias Portb.1


Datain Alias Pinb.1


Redled Alias Portb.2


Declare Sub Getit()


Ddrb = &B11111111 ‘all port b are output


Config Pinb.0 = Output ‘sck


Config Pinb.1 = Output ‘datain


‘reset the serial communications first, it is easily confused!


Set Dataout


For Ctr = 1 To 12


Set Sck


Waitus 2


Reset Sck


Waitus 2


Next Ctr


Cls


Lcd “akses sht11″


Lowerline


Lcd “by fahmizal”


Wait 2


Do ‘continually read the tempfature and humidity


Command = &B00000011


Call Getit ‘Get the temperature, puts result in “dataword” for us


Tempf = T1f * Dataword


Tempf = Tempf – 40


Tempc = T1c * Dataword ‘get celcius for later calculations and for “the rest of the world”


Tempc = Tempc – 40


X = Tempf


Hasil = X – 32


Suhu = 5 / 9


Hasilsuhu = Hasil * Suhu


Dis = Fusing(hasilsuhu , “###.##”)


Home


Lcd “Temp = ” ; Dis ; “(C)”


Command = &B00000101


Call Getit ‘get the humidity


Calc = C2 * Dataword


Calc2 = Dataword * Dataword ‘that “2″ in the datasheet sure looked like a footnote for a couple days, nope it means “squared”!


Calc2 = C3 * Calc2


Calc = Calc + C1


Rhlinear = Calc + Calc2


Calc = T2 * Dataword


Calc = Calc + T1c


Calc2 = Tempc – 25


Calc = Calc2 * Calc


Rhlintemp = Calc + Rhlinear


Lowerline


Dis = Fusing(rhlintemp , “##.##”)


Lcd “Humid = ” ; Dis ; “(%)”


Waitms 500


Loop


End


Sub Getit()


Local Datavalue As Word


Local Databyte As Byte


‘start with “transmission start”


Set Sck


Reset Dataout


Reset Sck


Set Sck


Set Dataout


Reset Sck


‘now send the command


Shiftout Dataout , Sck , Command , 1


Ddrb = &B11111101 ‘datain is now input


Config Pinb.1 = Input ‘datain


Set Sck ‘click one more off


Reset Sck


Waitus 10 ‘no idea why, but it doesn’t work without it!


Bitwait Pinb.1 , Reset ‘wait for the chip to have data ready


Shiftin Datain , Sck , Databyte , 1 ‘get the MSB


Datavalue = Databyte


Ddrb = &B11111111


Config Pinb.1 = Output


Reset Dataout ‘this is the tricky part- Lot’s of hair pulling- have to tick the ack!


Set Sck


Reset Sck


Ddrb = &B11111101 ‘datain is now input


Config Pinb.1 = Input


Shiftin Datain , Sck , Databyte , 1 ‘get the LSB


Shift Datavalue , Left , 8


Datavalue = Datavalue Or Databyte


‘don’t tick the clock or ack since we don’t need the CRC value, leave it hanging!


Dataword = Datavalue


Ddrb = &B11111111


Config Pinb.1 = Output


Reset Dataout


Set Sck


Reset Sck


Ddrb = &B11111101 ‘datain is now input


Config Pinb.1 = Input


Shiftin Datain , Sck , Databyte , 1 ‘not using the CRC value for now- can’t figure it out! Anybody know how to impliment?


‘Print “CRC value was – ” ; Databyte


Ddrb = &B11111111


Config Pinb.1 = Output


Set Dataout


Set Sck


Reset Sck


End Sub






sumber: fahmizaleeits.wordpress.com

1 komentar:

  1. wah ini pake bascom ya mas...nice info mas,,,o iya aplikasi sensor ini bisa semua kondisi pa tidak mas???

    BalasHapus