From f28f073d09550cbf699dc625747d7d8ef34c8d30 Mon Sep 17 00:00:00 2001 From: Vitor de Miranda Henrique Date: Mon, 10 Oct 2016 11:40:07 -0500 Subject: [PATCH] Add files via upload Added DS18B20 1-wire temperature sensor support --- extras/GetHumidity.py | 3 +++ extras/GetTemperature.py | 45 ++++++++++++++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/extras/GetHumidity.py b/extras/GetHumidity.py index 831612c..5463aff 100644 --- a/extras/GetHumidity.py +++ b/extras/GetHumidity.py @@ -31,6 +31,9 @@ sensor_args = { '11': Adafruit_DHT.DHT11, if len(sys.argv) == 3 and sys.argv[1] in sensor_args: sensor = sensor_args[sys.argv[1]] pin = sys.argv[2] +elif len(sys.argv) == 2 and sys.argv[1] == '1820' + print 'Failed' + sys.exit(1) else: sys.exit(1) diff --git a/extras/GetTemperature.py b/extras/GetTemperature.py index bb056b4..e7ded43 100644 --- a/extras/GetTemperature.py +++ b/extras/GetTemperature.py @@ -22,22 +22,59 @@ # SOFTWARE. import sys import Adafruit_DHT +import os +import glob +import time # 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] + isDHTSensor = True +elif len(sys.argv) == 2 and sys.argv[1] == '1820' + os.system('modprobe w1-gpio') + os.system('modprobe w1-therm') + base_dir = '/sys/bus/w1/devices/' + device_folder = glob.glob(base_dir + '28*')[0] + device_file = device_folder + '/w1_slave' + isDHTSensor = False else: sys.exit(1) -humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) +def read_temp_raw(): + f = open(device_file, 'r') + lines = f.readlines() + f.close() + return lines + +def read_temp(): + lines = read_temp_raw() + while lines[0].strip()[-3:] != 'YES': + time.sleep(0.2) + lines = read_temp_raw() + equals_pos = lines[1].find('t=') + if equals_pos != -1: + temp_string = lines[1][equals_pos+2:] + temp_c = float(temp_string) / 1000.0 + return temp_c -if temperature is not None: +def read_dht_temp(): + hum, temp = Adafruit_DHT.read_retry(sensor, pin) + return temp + +if isDHTSensor = True: + temperature = read_dht_temp() + if temperature is not None: + print '{0:0.1f}'.format(temperature) + else: + print 'Failed' + sys.exit(1) +else + temperature = read_temp() print '{0:0.1f}'.format(temperature) -else: - print 'Failed' sys.exit(1)