#!/usr/bin/python import sys import requests import Adafruit_DHT import config import config import RPi.GPIO as GPIO # Try to read the state of GPIO_PIN_TANKFULL GPIO.setmode(GPIO.BCM) GPIO.setup(config.GPIO_PIN_TANKFULL, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) tankFull = GPIO.input(config.GPIO_PIN_TANKFULL) GPIO.cleanup() print 'Bacva puna: {}'.format(tankFull) # Go on to DHT SENSOR_TYPE = Adafruit_DHT.DHT11 if len(sys.argv) == 3: owner = sys.argv[1] controller_id = sys.argv[2] else: print 'usage: sudo ./controller.py [OWNER] [CONTROLLER_ID]#' print 'example: sudo ./controller.py Senad 225 - Send temperature as Senad for controller 225' 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_TYPE, config.GPIO_PIN_DHT) # Un-comment the line below to convert the temperature to Fahrenheit. # temperature = temperature * 9/5.0 + 32 # 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 temperature is not None and humidity is not None: response = requests.post(config.SENSORDATA_URL, json={"owner": owner, "temperatureValue": temperature, "humidityValue":humidity, "tankFull":tankFull}) print 'Temp={0:0.1f}*C'.format(temperature) print 'Humidity={0:0.1f}%'.format(humidity) if response.status_code != 200: print 'Failed to send temperature!' else: print 'Failed to get reading. Try again!'