Ejemplo n.º 1
0
def on_terminate():
    RELAY.RESET(0)
    RELAY.RESET(1)
    MOTOR.RESET(0)
    MOTOR.RESET(1)

    print("All relays and Motors are off.")
    print("Program has been terminated!")
Ejemplo n.º 2
0
def main():
    global wakeup
    ppADDR = 1
    rain_threshold = 1.0
    spr_state = 0.0

    observer = Observer()
    observer.schedule(Handler(), ".", recursive=False)
    observer.start()
    RELAY.RESET(ppADDR)

    while True:
        print('Iterating')
        if wakeup:
            try:
                pf = open('rain.data', 'r')
                print('Opened file rain.data')
                line = pf.readline()
                pf.close()
                sline = line.split(',')
                rv = float(sline[0])
                rtime = datetime.datetime.now()
                print('File rain.data timestamp: ', sline[1])
                print('Weighted rain amount -3/+3: ', sline[0])
                print('Rain threshold to enable sprinkler: ', rain_threshold)
                if rv > rain_threshold:
                    print('Sprinkler Disabled: Relay OFF at ', rtime)
                    RELAY.relayOFF(ppADDR, 1)
                    spr_state = 0.0
                else:
                    print('Sprinkler Enabled: Relay ON at ', rtime)
                    RELAY.relayON(ppADDR, 1)
                    spr_state = 1.0

            except (ValueError, EOFError):
                ierr = ierr + 1
            wakeup = False
        statsdb.statsdb('SprinklerEN', spr_state)
        time.sleep(100.0)
Ejemplo n.º 3
0
from __future__ import print_function

import piplates.RELAYplate as RELAY
import time

ppADDR = 0
RELAY.RESET(ppADDR)

rly = 6
RELAY.relayON(ppADDR, rly)
print('relay 6 is on')
time.sleep(1)

print('starting spray loop')
while True:
    rly = 7
    RELAY.relayON(ppADDR, rly)
    print('Spray on, sleeping 1 sec')
    time.sleep(1)
    RELAY.relayOFF(ppADDR, rly)
    print('Spray off, sleeping  10 secs')
    time.sleep(10)
Ejemplo n.º 4
0
     elif (cmd == "getADDR"):
         resp['ADDR'] = RP.getADDR(addr)
     elif ("relay" in cmd):
         relay = args['relay']
         if (cmd == "relayON"):
             RP.relayON(addr, relay)
         elif (cmd == "relayOFF"):
             RP.relayOFF(addr, relay)
         elif (cmd == "relayTOGGLE"):
             RP.relayTOGGLE(addr, relay)
         state = RP.relaySTATE(addr)
         this_state = (state >> (relay - 1)) & 1
         resp['relay'] = relay
         resp['state'] = this_state
     elif (cmd == "RESET"):
         RP.RESET(addr)
         resp['RESET'] = "OK"
     else:
         sys.stderr.write("unknown relay cmd: " + cmd)
         break
     print(json.dumps(resp))
 elif (plate_type == "DAQC" or plate_type == "DAQC2"):
     # switch between DAQC and DAQC2 for their common API
     if (plate_type == "DAQC2"):
         PP = DP2
     else:
         PP = DP
     if (cmd == "getDINbit"):
         bit = args['bit']
         state = PP.getDINbit(addr, bit)
         resp['bit'] = bit
Ejemplo n.º 5
0
from __future__ import print_function

import piplates.RELAYplate as RELAY
import time

ppADDR = 0  #Relay Plate Address
RELAY.RESET(ppADDR)  #Reset Relay Plate IOs

vs = 0.00304
vo = -.0109
volt = 13.95  #Voltage of Peristaltic Pump
pump_windage2 = 14.0 / 16.0  #Estimated Ratio to adjust pump calibration

ozs = raw_input("Enter oz to put out: ")
oz = float(ozs)  #Establishes raw input as number?
maxtime = float(raw_input("Enter time betwen nutrient doses: "))

print("oz is: ", oz)

tp = oz / (volt * vs + vo) * pump_windage2

print("tp is: ", tp)

N = tp / maxtime

tr = tp / (15 * N)

print("N: ", N)
print("tr: ", tr)

ontotal = 0
Ejemplo n.º 6
0
 def reset(self):
     RELAY.RESET(self.address)