我有一个与 DHT22 传感器连接的Raspberry Pi 4,我想从我的传感器读取数据。
所以我安装了库Adafruit_DHT
sudo pip3 install Adafruit_DHT
然后,我导航到目录Adafruit_Python_DHT/examples/
,然后,
因为我有一个连接到 GPIO pi n° 4的 DHT 22传感器,
我跑
python AdafruitDHT.py 22 4
我得到
(lab_app) root@Raspberry100:/var/www/lab_app/Adafruit_Python_DHT/examples# python AdafruitDHT.py 2302 4
Traceback (most recent call last):
File "AdafruitDHT.py", line 41, in <module>
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 94, in read_retry
humidity, temperature = read(sensor, pin, platform)
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 80, in read
platform = get_platform()
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 63, in get_platform
raise RuntimeError('Unknown platform.')
RuntimeError: Unknown platform.
(lab_app) root@Raspberry100:/var/www/lab_app/Adafruit_Python_DHT/examples# python AdafruitDHT.py 22 4
Traceback (most recent call last):
File "AdafruitDHT.py", line 41, in <module>
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 94, in read_retry
humidity, temperature = read(sensor, pin, platform)
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 80, in read
platform = get_platform()
File "/var/www/lab_app/lib/python3.8/site-packages/Adafruit_DHT-1.4.0-py3.8-linux-armv7l.egg/Adafruit_DHT/common.py", line 63, in get_platform
raise RuntimeError('Unknown platform.')
RuntimeError: Unknown platform.
(lab_app) root@Raspberry100:/var/www/lab_app/Adafruit_Python_DHT/examples#
由于回溯表明
“未知平台。”
我对 Adafruit_Python_DHT 库的 github 存储库做了一些研究,并找到了脚本Adafruit_Python_DHT/Adafruit_DHT/common.py
。
在这里,我看到有一个 If/elif 结构def get_platform()
,旨在识别调用库的设备,但只有 RPi 1、2 和 3 的值分配,而 RPi 4 缺失。
所以我打赌这就是错误unknown platform
发生的原因。
我浏览了库源代码并找到了目录Adafruit_Python_DHT/Adafruit_DHT/
,其中最后一次提交显示“包含 Raspberry Pi 4”。
这是一个platform_detect.py
似乎旨在以某种方式“升级”库以识别 Raspberry Pi 4 的模块。
所以我试图通过这样做来“升级”我的图书馆:
在(lab_app) root@Raspberry100:/var/www/lab_app/Adafruit_Python_DHT/Adafruit_DHT#
,
我跑
platform_detect.py
而且我没有从提示中得到任何输出,所以我想一切都很顺利。
然后我导航到目录Adafruit_Python_DHT/examples/
并再次运行
python AdafruitDHT.py 22 4
但我仍然得到同样的错误。
那么如何使用 Adafruit_Python_DHT 库从连接到 GPIO pi n° 4 的 DHT22 传感器获取数据?