问题描述
已将 DHT11 连接到 Rpi4。
VCC--引脚 1
数据针--gpio4
接地引脚--引脚 6
它工作正常,但在多次给出结果后,我收到此错误。 Pigpio 的新手请帮我找出问题所在
import time
from pigpio_dht import DHT11,DHT22
while True:
gpio = 4 # BCM Numbering
sensor = DHT11(gpio)
#sensor = DHT22(gpio)
result = sensor.read()
temperature=([value for value in result.values()][0])
print(temperature)
humidity=([value for value in result.values()][2])
print(humidity)
time.sleep(10)
输出:
28
46
28
46
28
46
28
46
28
46
然后我得到以下信息:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Can't connect to pigpio at localhost(8888)
Can't create callback thread.
Perhaps too many simultaneous pigpio connections.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Traceback (most recent call last):
File "dht8.py",line 9,in <module>
sensor = DHT11(gpio)
File "/home/pi/.local/lib/python3.7/site-packages/pigpio_dht/dht11.py",line 24,in __init__
super(DHT11,self).__init__(gpio,pi=pi,timeout_secs=timeout_secs,use_internal_pullup=True,max_read_rate_secs=1,datum_byte_count=1)
File "/home/pi/.local/lib/python3.7/site-packages/pigpio_dht/dhtxx.py",line 47,in __init__
self._pi.set_pull_up_down(gpio,pigpio.PUD_UP)
File "/usr/lib/python3/dist-packages/pigpio.py",line 1385,in set_pull_up_down
return _u2i(_pigpio_command(self.sl,_PI_CMD_PUD,gpio,pud))
File "/usr/lib/python3/dist-packages/pigpio.py",line 993,in _pigpio_command
sl.s.send(struct.pack('IIII',cmd,p1,p2,0))
AttributeError: 'nonetype' object has no attribute 'send'
提前致谢
解决方法
您正在 while
循环内设置设备,因此它创建了同一设备的多个实例,因此是错误代码
Can't create callback thread.
Perhaps too many simultaneous pigpio connections.
您需要创建一个设备实例并长期从传感器读取信息。像这样的事情会起作用:
import time
from pigpio_dht import DHT11,DHT22
gpio = 4 # BCM Numbering
sensor = DHT11(gpio)
while True:
result = sensor.read()
temperature=([value for value in result.values()][0])
print(temperature)
humidity=([value for value in result.values()][2])
print(humidity)
time.sleep(10)