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