2015-03-07 13 views
6

Mam do czynienia z problemami z uruchomieniem czujnika temperatury DHT 11 w PI 2 z Python2.7 GPIO 0.5.11. Mam na myśli kod przykładowy http://www.uugear.com/portfolio/dht11-humidity-temperature-sensor-module/.Python Kod GPIO dla czujnika temperatury DHT 11 nie działa w PI 2

Ten sam kod działa prawidłowo na PI 1 B +. W PI 2 otrzymuję "ERR_RANGE" jako błąd. Próbowałem debugować problem wydaje się jak dane odczytane @ GPIO pin 4 musi zostać zwiększony.

Po zwiększeniu wartości odczytu danych do 2000, zwracana wartość temperatury i wilgotności wynosi 255. Czy ktoś napotkał problem, pomóż mi rozwiązać.

Dzięki Bharadvaj

+0

To może być twój problem https: //blog.adafruit.com/2015/02/27/i2c-spi-i2s-lirc-pps-stopped-working-read-this-piday-raspberrypi-raspberry_pi/ ale potrzebujemy więcej informacji, które pomogą Ci opublikować a obrazek (-y) pokazujący połączenia i twój kod źródłowy. –

+0

Dzięki za link referencyjny zweryfikuję i zaktualizuję. –

Odpowiedz

2

Może więcej informacji przyczyni się do rozwiązania problemu. Mam taki sam czujnik jak ty.

Śledziłem ten tutorial: 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 

I to jest mój testowania skryptów 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!' 

zapisać go jako np dht_test.py, Chmod: sudo chmod a + x dht_test. py i uruchom jako sudo: sudo ./dht_test.py Może to ci pomaga.

+0

Mogłem uzyskać temperaturę i wilgotność zgodnie z twoją odpowiedzią. Wydaje się jednak, że ułamkowe części obu danych mają zawsze wartość 0. Na przykład Temp = 25.0 * C Wilgotność = 35,0%. – sevenOfNine

+0

Stwierdziłem, że DHT11 nie mierzy części ułamkowej. Pomiary zakończą się pomyślnie. – sevenOfNine

11

Możesz również sprawdzić poniższą małą bibliotekę. To zależy tylko od modułu GPIO:

https://github.com/szazo/DHT11_Python

Przykład:

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)