Python Adafruit DHT22库是否可以修改以支持树莓Pi 4模型B(BCM2711)?

Python Adafruit DHT22库是否可以修改以支持树莓Pi 4模型B(BCM2711)?,python,raspberry-pi,iot,Python,Raspberry Pi,Iot,我找到了唯一一个用于数字输出相对湿度和温度传感器/模块DHT22的Python库: 但是考虑到/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py中的函数,它不支持最新的Raspberry处理器(BCM2711): 强制此函数返回“Pi 3(型号B+)/BCM2837”是否安全? 因为否则我无法导入库: Traceback: File "/usr/local/lib/python3.7/dist-

我找到了唯一一个用于数字输出相对湿度和温度传感器/模块DHT22的Python库:

但是考虑到/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py中的函数,它不支持最新的Raspberry处理器(BCM2711):

强制此函数返回“Pi 3(型号B+)/BCM2837”是否安全?

因为否则我无法导入库:

Traceback:

File "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/common.py", line 94, in read_retry
    humidity, temperature = read(sensor, pin, platform)
File "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/common.py", line 80, in read
    platform = get_platform()
File "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/common.py", line 60, in get_platform
    from . import Beaglebone_Black
File "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/Beaglebone_Black.py", line 24, in <module>
    from . import Beaglebone_Black_Driver as driver
ImportError: cannot import name 'Beaglebone_Black_Driver' from 'Adafruit_DHT' (/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/__init__.py)
回溯:
文件“/usr/local/lib/python3.7/dist packages/Adafruit\u DHT/common.py”,第94行,在read\u重试中
湿度、温度=读数(传感器、针脚、平台)
文件“/usr/local/lib/python3.7/dist packages/Adafruit\u DHT/common.py”,第80行,已读
平台=获取平台()
get_平台中的文件“/usr/local/lib/python3.7/dist packages/Adafruit_DHT/common.py”,第60行
从…起进口Beaglebone_黑色
文件“/usr/local/lib/python3.7/dist packages/Adafruit_DHT/Beaglebone_Black.py”,第24行,在
从…起导入Beaglebone_Black_驱动程序作为驱动程序
导入错误:无法从“Adafruit”导入名称“Beaglebone\u Black\u Driver”(/usr/local/lib/python3.7/dist packages/Adafruit\u DHT/\u init\u.py)
主持人: Raspberry Pi 4型号B 2Gb RAM, Raspbian GNU/Linux 10(buster), Python 3.7


所有版本的Raspberry板都兼容GPIO(主要是GPIO),所以修复这个库可能不是什么大问题?

我敢更改上面的功能,它可以工作!但是,如果您对不同的板版本使用不同的输出,请小心。我用的是GPIO4

...
elif match.group(1) == 'BCM2837':
    # Pi 3b+
    return 3
else:
    # Something else, PI 4 MODEL B
    return 3
@康斯塔 Raspberry pi 4b使用“BCM 2711”,因此我认为我们可以添加以下代码

...
elif match.group(1) == 'BCM2711':
    #Pi 4b
    return 3
else:
    return None

非常有用的答案。这使我能够在调用脚本从传感器检索数据时解决RPi4的设备检测问题:python AdafruitDHT.py
...
elif match.group(1) == 'BCM2711':
    #Pi 4b
    return 3
else:
    return None