微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法连接到 localhost(8888) 处的 pigpio 无法创建回调线程可能有太多同时的 Pigpio 连接

如何解决无法连接到 localhost(8888) 处的 pigpio 无法创建回调线程可能有太多同时的 Pigpio 连接

已将 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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。