示例#1
0
def emptyBucket(sbsID):
    pydb.runSQL(
        "INSERT INTO task (taskName,taskSensorName,taskSensorID,taskStatus,taskComment,taskStartTime) VALUES ('Empty','Smart Bucket',"
        + sbsID
        + ",1,'Started from web api',NOW())"
    )
    return "Emptying Bucket " + sbsID
示例#2
0
文件: sbs.py 项目: jamiekowalczik/sbs
def emptyBucket(taskID):
    try:
        result = pydb.runSQL("SELECT * FROM task WHERE taskID = "+str(taskID)+" AND taskStatus = 2")
        sensorID = result[0]['taskSensorID']
        result = pydb.runSQL("SELECT * FROM sbs WHERE sbsID = "+str(sensorID))
        depthpin = result[0]['sbsDepthPin']
        print "depth pin: "+str(depthpin)
        bucketEmpty = False
        while (bucketEmpty == False):
            #andata = raspi.getAnalogData(int(depthpin),0)
            result = pydb.runSQL("SELECT * FROM task WHERE taskID = "+str(taskID))
            taskStatus = result[0]['taskStatus'] 
            val = 0
            arrayValues = []
            for x in range(0,5):
                val = raspi.getAnalogData(int(depthpin),0)
                arrayValues.append(int(val))
                time.sleep(.1)
                val = np.mean(arrayValues)

            andata = val

            if (float(andata) > EMPTYVAL):
		print "EMPTY, waiting 60 seconds then closing valve!... "+str(andata)
                changeLightStatus(GREENPIN)
                pydb.runSQL("UPDATE task set taskStatus = '0', taskEndTime = NOW() WHERE taskID = "+str(taskID))
                time.sleep(60)
                switchEmptyValve(sensorID,1)
                bucketEmpty = True
            elif (float(andata) < FULLVAL):
                changeLightStatus(REDPIN)
                switchEmptyValve(sensorID,0)
                print "FULL, Emptying! "+str(andata)
            elif (int(taskStatus) != 2):
                changeLightStatus(GREENPIN)
                pydb.runSQL("UPDATE task taskEndTime = NOW() WHERE taskID = "+str(taskID))
                switchEmptyValve(sensorID,1)
                bucketEmpty = True
            else:
                changeLightStatus(YELLOWPIN)
                switchEmptyValve(sensorID,0)
                print "Emptying... "+str(andata)
            time.sleep(1)
    except KeyboardInterrupt:
        switchEmptyValve(sensorID,1)
        sys.exit(2)
示例#3
0
文件: sbs.py 项目: jamiekowalczik/sbs
def turnLEDOff(pin,st):
    pydb.runSQL("update `gpio`.`pinStatus` set pinStatus = '0' WHERE pinNumber = '"+str(pin)+"';")
    time.sleep(st)
    return
示例#4
0
文件: sbs.py 项目: jamiekowalczik/sbs
def switchEmptyValve(sensorID,pinStatus):
    #print "running sql "+str(pinStatus)+"  "+str(EMPTYVALVEPIN)
    #pinStatus = 0 is open, pinStatus = 1 is closed
    pydb.runSQL("update `sbs`.`sbs` set sbsEmptyPinStatus = '"+str(pinStatus)+"' WHERE sbsID = "+str(sensorID))
示例#5
0
文件: sbs.py 项目: jamiekowalczik/sbs
def switchFillValve(sensorID,pinStatus):
    #pinStatus = 0 is open, pinStatus = 1 is closed
    pydb.runSQL("update `sbs`.`sbs` set sbsFillPinStatus = '"+str(pinStatus)+"' WHERE sbsID = "+str(sensorID))
示例#6
0
#!/usr/bin/env python
import time
import os
import subprocess
import RPi.GPIO as GPIO
import pydb
import sbs
import threading
import itertools

GPIO.setmode(GPIO.BCM)

while True:
    result = pydb.runSQL("SELECT * FROM sbs")
    for row in result:
        pinNumber = int(row["sbsFillPin"])
        pinStatus = True if int(row["sbsFillPinStatus"]) == 1 else False
        GPIO.setup(pinNumber, GPIO.OUT)
        GPIO.output(pinNumber, pinStatus)

        pinNumber = int(row["sbsEmptyPin"])
        pinStatus = True if int(row["sbsEmptyPinStatus"]) == 1 else False
        GPIO.setup(pinNumber, GPIO.OUT)
        GPIO.output(pinNumber, pinStatus)
    time.sleep(1)
示例#7
0
#!/usr/bin/env python
import time
import os
import subprocess
import RPi.GPIO as GPIO
import pydb
import sbs
import threading
import itertools

GPIO.setmode(GPIO.BCM)

while True:
    result = pydb.runSQL("SELECT * FROM task WHERE taskStatus = 1")
    for row in result:
        if (str(row['taskName']) == "Empty"):
            print "Empty Bucket"
            pydb.runSQL("UPDATE task set taskStatus = '2' WHERE taskID = "+str(row['taskID']))
            sbs.emptyBucket(row['taskID'])
        if (str(row['taskName']) == "Fill"):
            print "Fill Bucket"
            pydb.runSQL("UPDATE task set taskStatus = '2' WHERE taskID = "+str(row['taskID']))
            sbs.fillBucket(row['taskID'])
    time.sleep(1)
示例#8
0
def logsql(temp,humid,solar,imgtime):
    pydb.runSQL("insert into `gpio`.`weather` (`temp`,`humid`,`solar`,`imgtime`,`timestamp`) values ('"+temp+"','"+humid+"','"+solar+"','"+imgtime+"','"+time.strftime("%Y-%m-%d %H:%M:%S")+"');")