(学习笔记)关于PCF8591模块实现温度和光照强度读取

目录

前言

实验目的

实验器材及环境

实验原理

实验过程

实验效果

总结

主要参考资料


前言

本文仅为学习笔记记录,内容多存在不严谨、不准确之处,请慎重参考

实验目的

本次学习是为了实现使用树莓派连接PCF8591实现温度、光照强度的获取

实验器材及环境

  1. 笔记本电脑一台(Windows系统);
  2. VNC远程登陆软件;
  3. 树莓派4b(需要安装smbus库);
  4. PCF8591模块一个;
  5. 杜邦线若干.

实验原理

  1. 根据PCF8591 HW-011模块的规格说明,其自带的光敏传感器为GL5528型光敏电阻器。根据GL5528光敏电阻器的规格说明,其灵敏度约为0.6 V/(lx),最大光照强度检测范围为100,000流明。因此,PCF8591 HW-011模块自带的GL5528型光敏电阻器可以检测比较强的光照强度,最大检测范围为100,000流明。
  2. PCF8591 HW-011模块自带的热敏传感器是一个10KΩ的NTC热敏电阻,用于检测温度。根据热敏电阻的规格说明,其温度检测范围一般为-50℃至+150℃,且检测精度和灵敏度会随着温度的变化而变化。因此,PCF8591 HW-011模块自带的热敏传感器最大能检测的温度范围为-50℃至+150℃
  3. 核心方法1,给定要读取的地址(address)并给定通道号(channel)
    bus.write_byte(address, channel)
  4. 核心方法2,读取地址(address)所送的数据(0~255)
    bus.read_byte(address)

实验过程

  1. 硬件连接
    首先将PCF8591的SDA、SCL接口分别对应接到树莓派接口上,然后将VCC接到树莓派的3.3V或者5V输出,END随意接到树莓派的0V上即可.将模块上的J4 、J5:接上 短路帽,即为选择热敏电阻与光敏电阻接入电路;
  2. 库的安装
    通过VNC或者ssh登陆树莓派后在终端输入以下代码:
    pip install smbus
  3. 代码实现:
    import smbus2
    import time
    # PCF8591模块地址
    address = 0x48
    
    # 传感器通道
    temp_channel = 0
    light_channel = 1
    
    def read_sensor(channel):
        with smbus2.SMBus(1) as bus:
            # 向PCF8591模块写入要读取的通道
            bus.write_byte(address, channel)
    
            # 等待转换完成
            time.sleep(0.5)
    
            # 读取转换结果
            value = bus.read_byte(address)
    
            return value
    
    while True:
        # 读取温度传感器数值
        temp_value = read_sensor(temp_channel)
        # 转换成摄氏度
        # temperature = (1 - temp_value / 255)*200 - 50
        temperature = temp_value - 205
    
        # 读取光敏传感器数值
        light_value = read_sensor(light_channel)
        # 转换成流明
        # light_value = (1-light_value / 255.0)*100000
        light_value = (1-light_value / 255.0)*1000
    
        print("温度传感器数值:{:.2f} C".format(temperature))
        print("光敏传感器数值:{:.2f} lm".format(light_value))
        print("\n")
        
     

实验效果

总结

实验过程并不严谨,在对光敏传感器和热敏传感器所传数据进行转换时并没有找到相关资料。按道理来讲应该以原理1和原理2来决定计算公式,但经测试,发现读取数据转化为摄氏度和流明后非常离谱,而用上述方法得到的数据看起来比较合理,所以上述代码中两个计算方法仅供参考,实际测量值可能会有较大偏差。

主要参考资料

树莓派与PCF8591模数转换器的那些事儿

PCF8591使用及Python控制

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值