2015-03-07 5 views
6

Ho riscontrato problemi con il sensore di temperatura DHT 11 in PI 2 con Python2.7 GPIO 0.5.11. Mi riferisco al codice di esempio http://www.uugear.com/portfolio/dht11-humidity-temperature-sensor-module/.Il codice GPIO Python per il sensore di temperatura DHT 11 non riesce in PI 2

Lo stesso codice funziona bene su PI 1 B +. In PI 2 ottengo "ERR_RANGE" come errore. Ho provato il debug del problema sembra che i dati letti @ GPIO pin 4 deve essere aumentato.

Dopo aver aumentato il valore di lettura dei dati a 2000, il valore per la temperatura e l'umidità restituiti è 255 per tutto il tempo. Qualcuno ha affrontato il problema mi aiuta su come risolvere.

Grazie, Bharadvaj

+0

Questo può essere il tuo problema https: //blog.adafruit.com/2015/02/27/i2c-spi-i2s-lirc-pps-stopped-working-read-this-piday-raspberrypi-raspberry_pi/ ma avremo bisogno di più informazioni per aiutarti a postare un foto (s) che mostrano le connessioni e il codice sorgente. –

+0

Grazie per il link di riferimento, verificherò e aggiornerò. –

risposta

2

Forse ulteriori informazioni vi aiuteranno a risolvere il tuo problema. Ho lo stesso sensore come te.

Ho seguito questo 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 

E questo è il mio test script 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!' 

Salva come per esempio dht_test.py, Permessi: sudo chmod a + x dht_test. py ed esegui come sudo: sudo ./dht_test.py Forse questo ti aiuta.

+0

Potrei ottenere la temperatura e l'umidità in base alla risposta. Ma sembra che le parti frazionarie di entrambi i dati siano sempre 0. Ad esempio, Temp = 25,0 * C Umidità = 35,0%. – sevenOfNine

+0

Ho trovato che DHT11 non misura la parte frazionaria. Quindi, la misurazione ha successo. – sevenOfNine

11

È anche possibile controllare la seguente piccola libreria. Dipende solo modulo GPIO:

https://github.com/szazo/DHT11_Python

Esempio:

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)