Fla*_*ira 8 python raspberry-pi adafruit sensors
我正在 Raspberrypi 4B 4Gb 上运行最新的 raspberry pi 操作系统“Linux raspberrypi 5.4.51-v7l+ #1327 SMP Thu Jul 23 11:04:39 BST 2020 armv7l GNU/Linux”。
我已经安装了 Python3
sudo apt-get install python3-dev python3-pip
更新了设置工具、轮子和 pip
sudo python3 -m pip install --upgrade pip setuptools wheel
并安装了 Adafruit_DHT 模块
sudo pip3 install Adafruit_DHT
之后,我将 DHT22 连接到 gpio4 上的 rpi 并创建了以下 python 脚本:
import Adafruit_DHT
import time
from datetime import datetime
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 4
PROBE_NAME = "PI4"
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("{2} - T={0:0.1f} H={1:0.1f}".format(temperature, humidity, datetime.now()))
else:
print("Failed to retrieve data from humidity sensor")
Run Code Online (Sandbox Code Playgroud)
比我运行它
sudo python3 temp.py
我收到以下错误
Traceback (most recent call last):
File "temp.py", line 11, in <module>
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
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)
Run Code Online (Sandbox Code Playgroud)
知道如何让它工作吗?
我已经在 raspberry pi zero w 上完成了完全相同的步骤,它开箱即用
Kot*_*oto 16
在“/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py”中,您可以在elif阶梯的#112行添加以下内容,这样应该可以解决问题。
elif match.group(1) == 'BCM2711':
return 3
Run Code Online (Sandbox Code Playgroud)
由于最近的 raspbian 升级,看起来 /proc/cpuinfo 中的硬件名称已更改。
小智 5
桥本幸太郎的解决方案是有效的。我的 Pi4 也有同样的问题。
真正的问题是 AdaFruit 不再支持或更新这个旧的 Adafruit_DHT 库。AdaFruit 针对该传感器的新库是“ Adafruit_CircuitPython_DHT ”,可以在此处找到。将代码更新到这个新库可能是个好主意。
https://github.com/adafruit/Adafruit_CircuitPython_DHT