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
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
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 ()
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
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()
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
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)
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()
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
#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)
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
def fwd(self): RELAY.relayON(0, 1)
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
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
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
# 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
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