Ejemplo n.º 1
0
def deflate():
    import piplates.RELAYplate as rel
    rel.relayOFF(0, 1)
    time.sleep(0.1)
    rel.relayON(0, 2)
    time.sleep(DEFLATION_TIME)
    all_off()
def launch():
    RELAY.relayON(0, 6)
    time.sleep(0.5)
    RELAY.relayON(0, 5)
    print("MPV OPENED")
    client.publish(TOPIC_2, b'MAINOPEN')
    return
Ejemplo n.º 3
0
def pin_update(pin_number, value):
    if pin_number in VALID_PIPLATES_PIN_NUMBERS:

        if pin_number < 8:  #card 1
            if value:
                RELAY.relayON(0, pin_number)
            else:
                RELAY.relayOFF(0, pin_number)
        else:  #card 2 valid pin numbers 1..7
            if value:
                RELAY.relayON(1, pin_number - 7)
            else:
                RELAY.relayOFF(1, pin_number - 7)

        new_value = _get_relaystate(pin_number)

        data = {
            'status': 'SUCCESS',
            'error': None,
            'pin_number': pin_number,
            'pin_name': PIN_NAMES[str(pin_number)],
            'new_value': int(new_value)
        }
    else:
        data = {'status': 'ERROR', 'error': 'Invalid pin number or value.'}

    return data
Ejemplo n.º 4
0
def relay():
    global button_pressed

    if button_pressed == 1:
        RELAY.getID(1)
        'Pi-Plate RELAY'
        RELAY.relayON(1, 1)
        sleep(0.02)
        RELAY.relayOFF(1, 1)
        return ()
Ejemplo n.º 5
0
    def door_cmnd(self, override):
        now = datetime.datetime.now()
        ret_json = str(now) + str(requests.get(self.url).text)

        if str(ret_json).find('true') > -1 or override == True:
            RELAY.relayON(self.pid, 5)
            time.sleep(0.5)
            RELAY.relayOFF(self.pid, 5)
        else:
            RELAY.relayOFF(self.pid, 5)
        return ret_json
Ejemplo n.º 6
0
def relay():
    relay = 1
    j = input("Enter Insert Number: ")
    if relay== 1:
        button_pressed = 1
        print ("button pressed")
        RELAY.getID(1)
        'Pi-Plate RELAY'
        RELAY.relayON(1,1)
        sleep(0.02)
        RELAY.relayOFF(1,1)
        return()
Ejemplo n.º 7
0
    def open_valve(self):
        # opens the valve and returns True on success or False on failure to open valve
        # if the valve is already open, True is returned
        RELAY.relayON(0, self.relayID)

        vs = self.valve_status()
        valvelog.info("Open valve / relay : %d", self.relayID)

        if (vs == "OPEN"):
            valvelog.info("Open Success")
            return True
        else:
            valvelog.error("Open Failed on relay: %d ", self.relayID)
            return False
Ejemplo n.º 8
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.º 9
0
def inflate():
    d = get_distance()
    #no measurement, something wrong, turn off the valves
    if d < 0:
        all_off()
        log_alarm('inflate: failed to get distance')
    if d < MAX_DIST_CM:
        return
    inflate_start = timer()
    import piplates.RELAYplate as rel
    rel.relayON(0, 1)
    rel.relayOFF(0, 2)
    while True:
        time.sleep(0.1)
        if timer() - inflate_start > MAX_INFLATION_TIME:
            all_off()
            log_alarm('inflate: max inflation time reached')
            break
        d = get_distance()
        if d < MAX_DIST_CM:
            break

    #we're done inflating, lock the valves
    all_off()
Ejemplo n.º 10
0
def getDoorCmnd(line, url, override):

    try:
        stdscr = curses.initscr()
        curses.noecho()
        stdscr.nodelay(1)

        localLine = 1

        localLine += 1
        stdscr.addstr(line + localLine, 0, "BEGIN: getDoorCmnd")
        localLine += 1

        h = {'content-type': 'application/json'}
        fullUrl = url + 'door'
        stdscr.addstr(line + localLine, 0, "fullurl: " + fullUrl)
        localLine += 1
        ret = requests.get(url + 'door')

        stdscr.addstr(line + localLine, 0, str(ret.text))
        localLine += 1

        # ret.text should be json or convertible to json, then we can get cmnd and the read config
        # variable
        if str(ret.text).find('true') < -1 or override == True:
            RELAY.relayON(0, 5)
            time.sleep(0.5)
            RELAY.relayOFF(0, 5)
        else:
            RELAY.relayOFF(0, 5)

    except Exception, ex:
        # print the exception and keep going
        stdscr.addstr(line + localLine, 0,
                      "getDoorCmnd() outter exception: " + ex.message)
        localLine += 3
def lox_mpv_open():
    RELAY.relayON(0, 5)
    print("LOX MPV OPENED")
    client.publish(TOPIC_2, b'LOXMPVOPEN')
    return
def meth_mpv_open():
    RELAY.relayON(0, 6)
    print("METH MPV OPENED")
    client.publish(TOPIC_2, b'METHMPVOPEN')
    return
def meth_hi_open():
    RELAY.relayON(0, 3)
    print("METH HI OPENED")
    client.publish(TOPIC_2, b'METHHIOPEN')
    return
def lox_hi_open():
    RELAY.relayON(0, 1)
    print("LOX HI OPENED")
    client.publish(TOPIC_2, b'LOXHIOPEN')
    return
def vents_close():
    RELAY.relayON(0, 2)
    RELAY.relayON(0, 4)
    print("VENTS CLOSED")
    client.publish(TOPIC_2, b'VENTSCLOSE')
    return
Ejemplo n.º 16
0
            #stdscr.addstr(loopLine, 0, "tempFanCounter inside" + str(tempFanCounter) + "          ")
            loopLine += 1

            strtmp1 = str(fTemp1)
            strtmp2 = str(fTemp2)
            strtmp3 = str(fTemp3)

            stdscr.addstr(loopLine, 0, "sentTmp1: " + strtmp1)
            loopLine += 1
            stdscr.addstr(loopLine, 0, "sentTmp2: " + strtmp2)
            loopLine += 1
            stdscr.addstr(loopLine, 0, "sentTmp3: " + strtmp3)
            loopLine += 1

            if fVolts < voltageTrigger:
                RELAY.relayON(0, 7)
                chargerOn = True
            else:
                RELAY.relayOFF(0, 7)
                chargerOn = False

            if fanOn == False and fTemp1 > fanChangeTemp + fanDelta:
                RELAY.relayON(0, 3)
                fanOn = True
                fanChanged = True
            elif fanOn == True and fTemp1 < fanChangeTemp - fanDelta:
                RELAY.relayOFF(0, 3)
                fanOn = False
                fanChanged = True
        except Exception, ex:
            stdscr.addstr(loopLine, 0, "Exception: " + ex.message)
Ejemplo n.º 17
0
cooler_rly = 7
ADCchan = 6
temp_slope = 108.43
temp_inter = -135
temp_setpoint = 67.0
temp_hyster = 4.0

try:
    while True:

        adcread = DAQC.getADC(adADDR, ADCchan)
        print('Temp voltage: ', adcread)

        temp_val = adcread * temp_slope + temp_inter
        print('Temp: ', temp_val)

        if temp_val > temp_setpoint + temp_hyster:
            RELAY.relayON(ppADDR, cooler_rly)
            print('Cooling')

        if temp_val <= temp_setpoint:
            RELAY.relayOFF(ppADDR, cooler_rly)
            print('Optimal Temperature Achieved')

        time.sleep(10)
except KeyboardInterrupt:
    print('Caught ^C')
    RELAY.relayOFF(ppADDR, cooler_rly)
    exit()
def purge_open():
    RELAY.relayON(1, 1)
    print("PURGE OPENED")
    client.publish(TOPIC_2, b'PURGEOPEN')
    return
Ejemplo n.º 19
0
 def fwd(self):
     RELAY.relayON(0, 1)
Ejemplo n.º 20
0
import argparse
import time
import piplates.RELAYplate as plate

parser = argparse.ArgumentParser(
    description='Turn on specific zone for a specified interval.')
parser.add_argument('-z',
                    '--zone',
                    type=int,
                    help='specify zone',
                    choices=range(1, 7),
                    required=True)
parser.add_argument('-t',
                    '--time',
                    type=int,
                    help='specify interval',
                    choices=range(1, 31),
                    default=15)
args = parser.parse_args()

# Turn on the relay that powers the pump
plate.relayON(0, 7)

# Turn on specified relay for a specified/default interval
plate.relayON(0, args.zone)
time.sleep(args.time * 60)
plate.relayOFF(0, args.zone)

# Turn off the relay that powers the pump
plate.relayOFF(0, 7)
def relay6_on():
    RELAY.relayON(0, 6)
    print("Relay 6 ON")
    client.publish(TOPIC_2, b"Relay_6_ON.")
    return
def relay5_on():
    RELAY.relayON(0, 5)
    print("Relay 5 ON")
    client.publish(TOPIC_2, b"Relay_5_ON.")
    return
Ejemplo n.º 23
0
import argparse
import time
import piplates.RELAYplate as plate

parser = argparse.ArgumentParser(description='Automatically turn on sprinkler zones for specified intervals.')
parser.add_argument('-g', '--garden', action='store_false', help='disable garden zone')
args = parser.parse_args()

# The amount of time for each zone
times = [15, 12, 12, 10, 5]

# Turn on the relay that powers the pump
plate.relayON(0,7)

# Turn on all zones 1 by 1
for i in range(1,5):
    plate.relayON(0,i)
    time.sleep(times[i-1]*60)
    plate.relayOFF(0,i)

# If specified by the user, don't turn
# on zone 5 (garden)
if args.garden == True:
    plate.relayON(0,5)
    time.sleep(times[4]*60)
    plate.relayOFF(0,5)

# Turn off the relay that powers the pump
plate.relayOFF(0,7)
def dump_open():
    RELAY.relayON(0, 7)
    print("DUMP OPENED")
    client.publish(TOPIC_2, b'DUMPOPEN')
    return
Ejemplo n.º 25
0
     RP.toggleLED(addr)
     resp['LED'] = "UNKNOWN"
 elif (cmd == "getID"):
     resp['ID'] = RP.getID(addr)
 elif (cmd == "getHWrev"):
     resp['HWrev'] = RP.getHWrev(addr)
 elif (cmd == "getFWrev"):
     resp['FWrev'] = RP.getFWrev(addr)
 elif (cmd == "getPMrev"):
     resp['PMrev'] = RP.getPMrev()
 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))
def relay7_on():
    RELAY.relayON(0, 7)
    print("Relay 7 ON")
    client.publish(TOPIC_2, b'R7ON')
    return
Ejemplo n.º 27
0
# https://www.raspberrypi.org/documentation/linux/software/python.md
# https://pi-plates.com/relayplate-users-guide/
# https://pi-plates.com/examples/#Controlling_aRELAYplate_Remotely_with_Your_Web_Browser
# https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/#systemd
#
#

import piplates.RELAYplate as RELAY
import time

## The address of the relay plate
ppADDR = 0

RELAY.RESET(ppADDR)

while True:
    RELAY.relayON(ppADDR, 1)
    time.sleep(0.5)
    RELAY.relayOFF(ppADDR, 1)
    RELAY.relayON(ppADDR, 2)
    time.sleep(0.5)
    RELAY.relayOFF(ppADDR, 2)
    RELAY.relayON(ppADDR, 3)
    time.sleep(1)
    RELAY.relayOFF(ppADDR, 3)
    RELAY.relayON(ppADDR, 2)
    time.sleep(0.5)
    RELAY.relayOFF(ppADDR, 2)
    RELAY.relayON(ppADDR, 1)
    time.sleep(0.5)
def meth_vent_close():
    RELAY.relayON(0, 2)
    print("METH VENT CLOSED")
    client.publish(TOPIC_2, b'METHVENTCLOSE')
    return
Ejemplo n.º 29
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)
def lox_vent_close():
    RELAY.relayON(0, 4)
    print("LOX VENT CLOSED")
    client.publish(TOPIC_2, b'LOXVENTCLOSE')
    return