mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-03-28 17:32:36 +01:00
74 lines
1.6 KiB
Python
74 lines
1.6 KiB
Python
# GPIO module for MeshLink, concept code, not implemented
|
|
# K7MHI Kelly Keeton 2024
|
|
|
|
# https://pypi.org/project/gpio/
|
|
#import gpio
|
|
|
|
# https://pythonhosted.org/RPIO/
|
|
import RPIO
|
|
|
|
from modules.log import logger, getPrettyTime
|
|
trap_list_gpio = ("gpio", "pin", "relay", "switch", "pwm")
|
|
|
|
# set up input channel without pull-up
|
|
RPIO.setup(7, RPIO.IN)
|
|
|
|
# set up input channel with pull-up
|
|
RPIO.setup(8, RPIO.IN, pull_up_down=RPIO.PUD_UP)
|
|
|
|
# set up GPIO output channel
|
|
RPIO.setup(8, RPIO.OUT)
|
|
|
|
# change to BOARD numbering schema
|
|
RPIO.setmode(RPIO.BOARD)
|
|
|
|
# set up PWM channel
|
|
RPIO.setup(12, RPIO.OUT)
|
|
p = RPIO.PWM(12)
|
|
|
|
def gpio_status():
|
|
# get status of GPIO pins
|
|
gpio_status = ""
|
|
gpio_status += "GPIO 7: " + str(RPIO.input(7)) + "\n"
|
|
gpio_status += "GPIO 8: " + str(RPIO.input(8)) + "\n"
|
|
gpio_status += "GPIO 12: " + str(RPIO.input(12)) + "\n"
|
|
return gpio_status
|
|
|
|
def gpio_toggle():
|
|
# toggle GPIO pin 8
|
|
RPIO.output(8, not RPIO.input(8))
|
|
return "GPIO 8 toggled"
|
|
|
|
def gpio_pwm():
|
|
# set PWM on GPIO pin 12
|
|
p.start(50)
|
|
return "PWM started"
|
|
|
|
def gpio_stop():
|
|
# stop PWM on GPIO pin 12
|
|
p.stop()
|
|
return "PWM stopped"
|
|
|
|
def gpio_shutdown():
|
|
# shutdown GPIO
|
|
RPIO.cleanup()
|
|
return "GPIO shutdown"
|
|
|
|
def trap_gpio(message):
|
|
# trap for GPIO commands
|
|
if "status" in message:
|
|
return gpio_status()
|
|
elif "toggle" in message:
|
|
return gpio_toggle()
|
|
elif "pwm" in message:
|
|
return gpio_pwm()
|
|
elif "stop" in message:
|
|
return gpio_stop()
|
|
elif "shutdown" in message:
|
|
return gpio_shutdown()
|
|
else:
|
|
return "GPIO command not recognized"
|
|
|
|
|
|
|