diff --git a/Fremddateien/AdafruitDHT.py b/Fremddateien/AdafruitDHT.py new file mode 100755 index 0000000..15e889f --- /dev/null +++ b/Fremddateien/AdafruitDHT.py @@ -0,0 +1,50 @@ +#!/usr/bin/python +# Copyright (c) 2014 Adafruit Industries +# Author: Tony DiCola + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import sys + +import Adafruit_DHT + + +# Parse command line parameters. +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) + +# Try to grab a sensor reading. Use the read_retry method which will retry up +# to 15 times to get a sensor reading (waiting 2 seconds between each retry). +humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) + +# Note that sometimes you won't get a reading and +# the results will be null (because Linux can't +# guarantee the timing of calls to read the sensor). +# If this happens try again! +if humidity is not None and temperature is not None: + print '{0:0.1f};{1:0.1f}'.format(temperature, humidity) +else: + print 'Failed to get reading. Try again!' diff --git a/Fremddateien/Adafruit_DHT.py b/Fremddateien/Adafruit_DHT.py deleted file mode 100644 index 8f86fcb..0000000 --- a/Fremddateien/Adafruit_DHT.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding:utf-8 -*- - -import sys -import dhtreader - -DHT11 = 11 -DHT22 = 22 -AM2302 = 22 - - -dhtreader.init() - -if len(sys.argv) != 3: - print("usage: {0} [11|22|2302] GPIOpin#".format(sys.argv[0])) - print("example: {0} 2302 Read from an AM2302 connected to GPIO #4".format(sys.argv[0])) - sys.exit(2) - -dev_type = None -if sys.argv[1] == "11": - dev_type = DHT11 -elif sys.argv[1] == "22": - dev_type = DHT22 -elif sys.argv[1] == "2302": - dev_type = AM2302 -else: - print("invalid type, only 11, 22 and 2302 are supported for now!") - sys.exit(3) - -dhtpin = int(sys.argv[2]) -if dhtpin <= 0: - print("invalid GPIO pin#") - sys.exit(3) - -#print("using pin #{0}".format(dhtpin)) -t, h = dhtreader.read(dev_type, dhtpin) -if t and h: - print "%.3f; %.3f" % (t, h) -else: - print("Failed to read from sensor, maybe try again?") diff --git a/main.sh b/main.sh index 3f815ac..e01d316 100755 --- a/main.sh +++ b/main.sh @@ -70,7 +70,7 @@ do gpio write 13 0 done - luft_roh=$(sudo python /home/pi/Temperaturmessung/Fremddateien/Adafruit_DHT.py 2302 17) # Rohdaten des Luftfeuchtigkeits-Sensors + luft_roh=$(sudo python /home/pi/Temperaturmessung/Fremddateien/AdafruitDHT.py 2302 17) # Rohdaten des Luftfeuchtigkeits-Sensors set -- $luft_roh luft_temp=$1 luft_feucht=$2 @@ -78,7 +78,7 @@ do do gpio write 13 1 echo "----Luft: $luft_roh" - luft_roh=$(sudo python /home/pi/Temperaturmessung/Fremddateien/Adafruit_DHT.py 2302 17) # Rohdaten des Luftfeuchtigkeits-Sensors + luft_roh=$(sudo python /home/pi/Temperaturmessung/Fremddateien/AdafruitDHT.py 2302 17) # Rohdaten des Luftfeuchtigkeits-Sensors set -- $luft_roh luft_temp=$1 luft_feucht=$2