не удается импортировать имя Beaglebone_Black_Driver из Adafruit_DHT - PullRequest
3 голосов
/ 03 августа 2020

Я использую последнюю версию raspberry pi os "Linux raspberrypi 5.4.51-v7l + # 1327 SMP Thu Jul 23 11:04:39 BST 2020 armv7l GNU / Linux" на Raspberrypi 4B 4Gb.

Я установил Python3 sudo apt-get install python3-dev python3-pip

Обновил setuptools, wheel и pip sudo python3 -m pip install --upgrade pip setuptools wheel

И установил модуль Adafruit_DHT sudo pip3 install Adafruit_DHT

После этого Я подключил свой DHT22 к моему rpi на gpio4 и создал следующий сценарий 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")

Затем я запустил его 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)

Есть идеи, как заставить его работать?

Я проделал точно такие же шаги на raspberry pi zero w, и он работает из коробки

Ответы [ 2 ]

3 голосов
/ 08 августа 2020

В "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py" вы можете добавить следующие строки в строку # 112 лестничной диаграммы elif, так что это должно решить проблему.

elif match.group(1) == 'BCM2711':
    return 3

Похоже, что имя оборудования в / proc / cpuinfo было изменено из-за недавнего обновления raspbian.

0 голосов
/ 27 августа 2020

Раствор Котаро Хашимото работает. У меня была такая же проблема с моим Pi4.

Настоящая проблема в том, что AdaFruit больше не поддерживает и не обновляет эту старую библиотеку Adafruit_DHT. Новую библиотеку от AdaFruit для этого датчика " Adafruit_CircuitPython_DHT " можно найти здесь. Было бы неплохо обновить свой код до этой новой библиотеки.

https://github.com/adafruit/Adafruit_CircuitPython_DHT

...