53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
import smbus2
|
|
import RPi.GPIO as GPIO
|
|
import time
|
|
|
|
"""
|
|
>>> bus = smbus2.SMBus(1)
|
|
>>> ans = bus.write_byte(0x44, 0xFD)
|
|
>>> smbus2.i2c_msg.read(0x44,6)
|
|
i2c_msg(68,1,b'\x00\x00\x00\x00\x00\x00')
|
|
>>> taa=smbus2.i2c_msg.read(0x44,6)
|
|
>>> bus.i2c_rdwr(taa)
|
|
>>> data = list(taa)
|
|
>>> print(data)
|
|
[112, 174, 89, 60, 78, 165]
|
|
"""
|
|
|
|
def main():
|
|
i2cbus = smbus2.SMBus(1)
|
|
addressSHT40 = 0x44
|
|
meas_sht40(i2cbus, 0x44)
|
|
|
|
|
|
|
|
def meas_sht40(bus, addressSHT40):
|
|
CMD_measure = 0xFD #cmd de mesure
|
|
#bus.write_byte(0x00, 0x06)
|
|
#time.sleep(1.1)
|
|
bus.write_byte(0x44, 0x39)
|
|
time.sleep(1.1)
|
|
while 1:
|
|
time.sleep(1.1)
|
|
#data = bus.read_i2c_block_data(0x44, 0, 6) #Lecture des 6 octets
|
|
data = []
|
|
|
|
bus.write_byte(0x44, 0xFD)
|
|
byte = bus.read_block_data(0x44,3)
|
|
data.append(byte)
|
|
print(f"Octet {i}: {byte:#04x}")
|
|
time.sleep(1.15)
|
|
|
|
#print(data)
|
|
|
|
"""
|
|
temp_raw = (data[0] << 8) + data[1]
|
|
humidity_raw = (data[3] <<8) + data[4]
|
|
"""
|
|
temperature = 10000*(data/65535.0)
|
|
#temperature = -45 + 175*data/65535
|
|
#print(temperature)
|
|
|
|
|
|
if __name__=="__main__":
|
|
main() |