这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【树莓派5】AHT10传感器

共4条 1/1 1 跳转至

【树莓派5】AHT10传感器

高工
2025-06-17 07:53:27     打赏

使用PI5与AHT10温度传感器进行温度采集,并把采集的数据打印在电脑端。


1、了解一下传感器的工作原理图性能

AHT10是一款高精度、低功耗的数字温湿度传感器,支持I²C通信协议。

参数:

温度范围:-40°C 至 +85°C,精度±0.3°C(典型值)。

湿度范围:0% 至 100% RH,精度±2% RH(典型值)。

工作电压:2.2V 至 5.5V,适合电池供电设备。

封装:DFN-3x3mm,易于集成。

特点:

完全校准,出厂即用。

抗干扰能力强,适合复杂环境。

低功耗模式,适合长期监测。


电源连接:

AHT10的VCC引脚连接到树莓派的3.3V或5V电源引脚(推荐3.3V以避免电压不匹配)。

GND引脚连接到树莓派的GND引脚。

I²C通信连接:

SCL引脚连接到树莓派的GPIO3(I²C时钟线)。

SDA引脚连接到树莓派的GPIO2(I²C数据线)。


注意事项,如果传感器模块带有上拉电阻,则无需额外添加;否则,建议在SCL和SDA线上添加4.7kΩ上拉电阻。


2、原理图及连接状态

下图是PI5连接器40P的原理连接图,这里使用的是GPIO2和2也就是3和5P用来控制温度传感器通信。


image.png

传感器与PI5连接状态图:

14b6d946b128da0ad7eab9767363552a.jpg


3、代码

# AHT10温湿度传感器驱动类class AHT10:
    def __init__(self, bus=1, address=0x38):
        """初始化AHT10传感器
        bus: I2C总线编号
        address: 传感器I2C地址
        """
        self.bus = smbus2.SMBus(bus)
        self.address = address    def read_data(self):
        """读取传感器温度数据
        返回: 温度值(摄氏度)
        """
        # 发送测量命令
        self.bus.write_i2c_block_data(self.address, 0xAC, [0x33, 0x00])
        time.sleep(0.1)  # 等待测量完成
        
        # 读取测量结果
        data = self.bus.read_i2c_block_data(self.address, 0x00, 6)
        
        # 检查设备状态位
        if not (data[0] & 0x80):
            raise RuntimeError("Device not ready")
            
        # 解析温度数据
        raw_temp = ((data[3] & 0x0F) << 16) | (data[4] << 8) | data[5]
        temperature = (raw_temp * 200.0 / 1048576) - 50
        return temperature


4、采集的数据运行结果:

a71b73468bd7f10eb60a51203f96267d.jpg


专家
2025-06-17 08:10:50     打赏
2楼

谢谢分享


工程师
2025-06-17 11:18:28     打赏
3楼

感谢分享


菜鸟
2025-06-18 10:06:26     打赏
4楼

这个还可以使用Python来实现啊


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]