电子网首页 > 开源与设计

【BEAGLEBONEBLKREVCAM3358BZCZ】试用——I2C读取温湿度

2026-03-10 11:32 | 来源:电子世界报

今天尝试在BeagleBone Black开发板上通过I2C总线读取SHT30温湿度传感器。

1、安装i2c-tools包:

sudo apt-get install i2c-tools

image.png

image.png

可以看见系统中有两个I2C总线。这里使用I2C-2总线,对应管脚为P9的17、18两个管脚。

2、连接好硬件:0620d14fc2c4e873518c35d7ec0a8425.jpg

将SHT30模块,通过杜邦线连接到BeagleBone Black开发板上。通过i2c-tools工具可查询到地址信息。

image.png

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)

成功读取到温湿度信息。

image.png

阅读全文

推荐技术

返回顶部