今天尝试在BeagleBone Black开发板上通过I2C总线读取SHT30温湿度传感器。
1、安装i2c-tools包:
sudo apt-get install i2c-tools


可以看见系统中有两个I2C总线。这里使用I2C-2总线,对应管脚为P9的17、18两个管脚。
2、连接好硬件:
将SHT30模块,通过杜邦线连接到BeagleBone Black开发板上。通过i2c-tools工具可查询到地址信息。

3、编程读取温湿度信息。
接下来使用python来读取SHT30的温湿度信息。首先安装smb库
sudo apt-get install python3-smbus
然后编写代码来与SHT30进行通讯。
# @Author :Aramy
# 温湿度计,使用SHT30
import time
import smbus
BUS = smbus.SMBus(2)
addr=0x44
# sht30
def read_value():
BUS.write_byte_data(addr,0xe0,0x0)
time.sleep(1)
data = BUS.read_i2c_block_data(addr,0x0,6)
rawT = ((data[0]) << 8) | (data[1])
rawR = ((data[3]) << 8) | (data[4])
temp = -45 + rawT * 175 / 65535
RH = 100 * rawR / 65535
return temp,RH
def init_sht30():
try:
BUS.write_byte_data(addr,0x23,0x34)
time.sleep(0.5)
except:
return False
else:
return True
if __name__ == '__main__':
init_sht30()
while True:
temp,rh=read_value()
strtemp="温度:{:.1f}".format(temp)
strrh="湿度:{:.1f}".format(rh)
print(strtemp,' ',strrh)
time.sleep(1)成功读取到温湿度信息。

我要赚赏金
