Skip to content

Instantly share code, notes, and snippets.

@sourceperl
Created June 20, 2017 12:33
Show Gist options
  • Save sourceperl/7752d1a5af519fea5209f8d6987bcca7 to your computer and use it in GitHub Desktop.
Save sourceperl/7752d1a5af519fea5209f8d6987bcca7 to your computer and use it in GitHub Desktop.
Command line utility to make a high pulse on relay attach to Rpi GPIO
#!/usr/bin/env python3
# make high pulse on relay attach to Rpi GPIO
# see REL_PIN_MAP to fix GPIO pin number
import time
import argparse
import RPi.GPIO as GPIO
# some const
REL_PIN_MAP = [29, 23, 21, 19]
REL_ON = GPIO.LOW
REL_OFF = GPIO.HIGH
# parse args
parser = argparse.ArgumentParser()
parser.add_argument('relay_id', type=int,
choices=range(1, len(REL_PIN_MAP) + 1),
help='relay ID')
parser.add_argument('-s', '--size', type=float, default=1.0,
help='pulse size in s (default is 1.0)')
args = parser.parse_args()
rel_pin = REL_PIN_MAP[args.relay_id - 1]
# setup
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(rel_pin, GPIO.OUT, initial=REL_OFF)
# make a pulse
GPIO.output(rel_pin, REL_ON)
time.sleep(args.size)
GPIO.output(rel_pin, REL_OFF)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment