Skip to main content
Skip table of contents

5.15 - SHT1X [U12 Datasheet]

Sends and receives data from a SHT1X T/RH sensor from Sensirion.

Baud rate without delay is about 2 kpbs.

DATA is IO0, SCK is IO1

Enable is not handled by this function.

Table 5.15-1.

Command

 

Byte #

Description

0

Data Byte 3

1

Data Byte 2

2

Data Byte 1

3

Data Byte 0

4

Bit 7: Wait for measurement ready signal

 

Bit 6: Issue serial reset

 

Bit 5: 1ms Delay

 

Bit 4: 300µs Delay

 

Bit 3: IO3 State

 

Bit 2: IO2 State

 

Bit 1: IO3 Tris (Direction?)

 

Bit 0: IO2 Tris (Direction?)

5

011X1000 (SHT1X)

6

Number of bytes to write (0-4)

7

Number of bytes to read (0-4)

 

 

 

 

Response

 

Byte #

Description

0

Data Byte 3

1

Data Byte 2

2

Data Byte 1

3

Data Byte 0

4

Bit 2: Serial reset error

 

Bit 1: Measurement ready error

 

Bit 0: Ack error

5

011X1000 (Echo of byte 5)

6

Echo of byte 6 from Command

7

Echo of byte 7 from Command

LabJackPython Example

>>> import u12
>>> d = u12.U12(debug=True)
open called
Writing: [0x0, 0x0, 0x0, 0x0, 0x0, 0x57, 0x0, 0x0]
Received: [0x57, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0]
>>> results = d.rawSHT1X()
Writing: [0x0, 0x0, 0x0, 0x3, 0x8f, 0x68, 0x1, 0x3]
Received: [0x0, 0x66, 0x34, 0x19, 0x0, 0x68, 0x1, 0x3]
>>> print results
{
'DataByte3': 0, 'DataByte2': 102, 'DataByte1': 52, 'DataByte0': 25,
'ErrorFlags':
<BitField object: [ Serial Reset Error Flag = 0 (0),
Measurement Ready Error Flag = 0 (0),
Ack Error Flag = 0 (0) ] >}
>>> tempC = (results['DataByte0'] * 256 ) + results['DataByte1']
>>> tempC = (tempC * 0.01) - 40
>>> print tempC
24.52
>>> results = d.rawSHT1X(Data = [5,0,0,0])
Writing: [0x0, 0x0, 0x0, 0x5, 0x8f, 0x68, 0x1, 0x3]
Received: [0x0, 0xaa, 0xae, 0x2, 0x0, 0x68, 0x1, 0x3]
>>> print results
{
'DataByte3': 0, 'DataByte2': 170, 'DataByte1': 174, 'DataByte0': 2,
'ErrorFlags':
<BitField object: [ Serial Reset Error Flag = 0 (0),
Measurement Ready Error Flag = 0 (0),
Ack Error Flag = 0 (0) ] >}
>>> sorh = (results['DataByte0'] * 256 ) + results['DataByte1']
>>> rhlinear = (-0.0000028*sorh*sorh)+(0.0405*sorh)-4.0
>>> rh = ((tempC-25.0)*(0.01+(0.00008*sorh)))+rhlinear
>>> print rh
22.4341888

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.