2015-03-07 4 views
6

У меня проблемы с работой датчика температуры DHT 11 в PI 2 с Python2.7 GPIO 0.5.11. Я имею в виду пример кода http://www.uugear.com/portfolio/dht11-humidity-temperature-sensor-module/.Python GPIO-код для датчика температуры DHT 11 не работает в PI 2

Тот же код отлично работает на PI 1 B +. В PI 2 я получаю сообщение «ERR_RANGE» как Ошибка. Я попытался отладить проблему, похоже, что данные, прочитанные @ GPIO pin 4, необходимо увеличить.

После увеличения значения считывания данных до 2000, значение температуры и влажности возвращается 255 раз. Кто-нибудь сталкивался с проблемой, помогите мне в том, как ее решить.

Спасибо, Bharadvaj

+0

Это может быть ваша проблема https: //blog.adafruit.com/2015/02/27/i2c-spi-i2s-lirc-pps-stopped-working-read-this-piday-raspberrypi-raspberry_pi/, но нам потребуется дополнительная информация, чтобы помочь вам опубликоватьизображение (ы), показывающее соединения и исходный код. –

+0

Спасибо за ссылку ссылки, я проверю и обновлю. –

ответ

2

Возможно больше информации поможет решить вашу проблему. У меня такой же датчик, как и вы.

Я после этого учебника: 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 

И это мой тестирование питон скрипт:

#!/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: Судо CHMOD а + х dht_test. py и запустить как sudo: sudo ./dht_test.py Возможно, это поможет вам.

+0

Я могу получить температуру и влажность в соответствии с вашим ответом. Но кажется, что дробные части обоих данных всегда равны 0. Например, Temp = 25.0 * C Влажность = 35.0%. – sevenOfNine

+0

Я обнаружил, что DHT11 не измеряет дробную часть. Итак, измерение выполнено успешно. – sevenOfNine

11

Вы также можете проверить следующую небольшую библиотеку. Это зависит только от 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)