web-dev-qa-db-ja.com

Python DHT 11温度センサーのGPIOコードがPI 2で失敗する

Python2.7 GPIO 0.5.11を搭載したPI 2でDHT 11温度センサーを実行すると問題が発生します。私は http://www.uugear.com/portfolio/dht11-humidity-temperature-sensor-module/ サンプルコードを参照しています。

同じコードがPI 1 B +で正常に動作します。 PI 2では、「ERR_RANGE」がエラーとして表示されます。問題をデバッグしてみたところ、GPIOピン4のデータ読み取りを増やす必要があるようです。

データ読み取り値を2000に増やした後、返される温度と湿度の値は常に255です。問題に直面した人はいますか?.

ありがとう、Bharadvaj

次の小さなライブラリも確認できます。 GPIOモジュールのみに依存します。

https://github.com/szazo/DHT11_Python

例:

import RPi.GPIO as GPIO
import dht11

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 14
instance = dht11.DHT11(pin = 14)
result = instance.read()

if result.is_valid():
    print("Temperature: %d C" % result.temperature)
    print("Humidity: %d %%" % result.humidity)
else:
    print("Error: %d" % result.error_code)
13
Zoltán Szarvas

多分より多くの情報があなたの問題を解決するのに役立ちます。私はあなたと同じセンサーを持っています。

私はこのチュートリアルに従いました: https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install-updated

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
Sudo apt-get update
Sudo apt-get install build-essential python-dev
Sudo python setup.py install

そして、これは私のテストですpythonスクリプト:

#!/usr/bin/python
import sys
import Adafruit_DHT
humidity, temperature = Adafruit_DHT.read_retry(11, 4)
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!'

たとえば、dht_test.pyとして保存します。Chmod:Sudo chmod a + x dht_test.pyとして実行し、Sudoとして実行します。Sudo ./dht_test.py多分これはあなたを助けるでしょう。

3
Tomas Pytel

以下のコードはPi 2モデルBで機能します。

https://github.com/netikras/r-pi_DHT11/blob/master/dht11.py

1
Kani