2014-10-07 97 views
3

所以我已經正確地將DHT22溼度傳感器連接到我的BeagleBone Black Rev C. 我在我的MacBook Pro上運行OS小牛,我按照Adafruit提供的關於如何使用我的DHT22DHT22傳感器導入Adafruit_DHT錯誤

我使用的網站是相當清楚的:https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install-updated

而且,這裏是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 

我成功了,直到最後一行。一旦我進入最後一行(須藤./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目錄LS,我得到這個:

[email protected]:~/Adafruit_Python_DHT# ls 
Adafruit_DHT examples ez_setup.py ez_setup.pyc LICENSE README.md setup.py source 

我試過重新安裝setup.py,但結果仍然是一樣的。

我遵循Adafruit提供的所有方向,但我似乎無法通過此。對發生了什麼有什麼想法?這似乎是一個簡單的問題,但它被證明是從我的DHT22讀取數據的主要障礙。如果需要更多信息來幫助解決這個問題,請告訴我。

回答

0

看來您的腳本找不到「Adafruit_DHT」模塊。 有兩種方法。

  1. 運行在終端的文件 「巨​​蟒Adafruit_Python_DHT」

  2. 添加以下代碼在腳本的第一行。 Should I put #! (shebang) in Python scripts, and what form should it take?

+0

我非常感謝幫助。我做了你所說的,並通過在終端中運行文件「python Adafruit_Python_DHT」,得到:{/ usr/bin/python:在Adafruit_Python_DHT中找不到'_____main_____'模塊} 我已成功運行BMP180傳感器在我的beaglebone黑色與Adafruit的代碼,我注意到它沒有一個_____main_____ module.Adafruit警告我說:「這個教程是第一次嘗試開發DHT接口驅動程序。它不能保證工作,並且用於實驗和黑客! 「所以我想這是它不起作用的原因。一般來說很多事情都沒有。 – FooLingYu2 2014-10-08 15:38:06

+0

好吧,你可以嘗試添加 如果__name__ == '__main__': 的main() 在Adafruti的兩行代碼, 「__main__」/ main()中可以用別的名字。 – PSone 2014-10-09 06:44:17

+0

我不明白你想如何添加這個。在導入Adafruit_DHT之前添加它?你在說什麼? 如: 如果__name__ == '__main__':main()的進口 Adafruit_DHT – FooLingYu2 2014-10-09 19:36:23

0

好吧,嘗試運行此腳本 「命令」。

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() 
+0

'根@ beaglebone:〜#CD Adafruit_Python_DHT 根@ beaglebone:〜/ Adafruit_Python_DHT#CD例子 根@ beaglebone:〜/ Adafruit_Python_DHT /例子#納米hope.py 根@ beaglebone:〜/ Adafruit_Python_DHT /例子#sudo的蟒蛇hope.py 回溯(最近通話最後一個): 文件 「hope.py」,2號線,在 進口Adafruit_DHT ImportError:No module named Adafruit_DHT' same problem:/ i don不知道爲什麼當Adafruit_BMP適用於他們的BMP180傳感器時,我無法導入Adafruit_DHT。文件夾佈局非常相似。必須是在編碼 缺少的東西。我真的很欣賞努力 – FooLingYu2 2014-10-10 14:10:00

+0

順便說一句我複製你的腳本到希望.py – FooLingYu2 2014-10-10 14:13:08

+0

如果你再次重新安裝驅動程序會怎麼樣?也許這會起作用。 – PSone 2014-10-13 01:45:12

1

簡單的解決辦法:

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 ## ## ...文件再次

你可能已經忘了正常運行安裝程序。