所以我已将DHT22湿度传感器正确连接到我的BeagleBone Black Rev C. 我在我的MacBook Pro上运行OS Mavericks,我按照Adafruit提供的关于如何使用我的DHT22的指示
此处还有我克隆的github文件:https://github.com/adafruit/Adafruit_Python_DHT
我加入了这些内容:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo apt-get upgrade
sudo apt-get install build-essential python-dev
sudo python setup.py install
cd examples
sudo ./AdafruitDHT.py 22 P8_11
直到最后一行我才成功。一旦我输入最后一行(sudo ./AdafruitDHT.py 22 P8_11),我收到以下错误消息:
Traceback (most recent call last):
File "./AdafruitDHT.py", line 23, in <module>
import Adafruit_DHT
ImportError: No module named Adafruit_DHT
我知道某处有一个Adafruit_DHT文件,因为当我进入Adafruit_Python_DHT目录时,我得到了这个:
root@beaglebone:~/Adafruit_Python_DHT# ls
Adafruit_DHT examples ez_setup.py ez_setup.pyc LICENSE README.md setup.py source
我已尝试重新安装setup.py,但结果仍然相同。
我遵循了Adafruit提供的所有指示,但我似乎无法超越这个。对于发生了什么有什么想法?这似乎是一个简单的问题,但它证明是从我的DHT22获取读数的一个主要障碍。如果有更多信息需要帮助解决此问题,请告诉我。
答案 0 :(得分:2)
轻松修复:
cd Adafruit_Python_DHT
sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl
sudo python setup.py install
尝试再次运行sudo ./AdafruitDHT.py ## ## ...
文件
您可能忘记正确运行设置。
答案 1 :(得分:0)
您的脚本似乎找不到“Adafruit_DHT”模块。 有两种方式。
在终端中运行文件为 “Python Adafruit_Python_DHT”
在脚本的第一行添加以下代码。 Should I put #! (shebang) in Python scripts, and what form should it take?
答案 2 :(得分:0)
好的,尝试使用“sudo”运行此脚本。
import sys
import Adafruit_DHT
def main():
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#'
print 'example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4'
sys.exit(1)
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print 'Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidity)
else:
print 'Failed to get reading. Try again!'
if __name__ == '__main__':
main()