toot-my-t-shirt/tools/check-gpio.py

36 lines
819 B
Python
Executable file

#!/usr/bin/env python3
#
# example of service to monitor a GPIO for Orange Pi PC 2e
# (unfortunately it doesn't support edge triggers)
import sys
import ssl
import time
from urllib import request
import OPi.GPIO as GPIO
URL = "https://localhost:9000/button"
PIN = 12
DEBOUNCE_CYCLES = 5
GPIO.setboard(GPIO.PC2)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
activeCycles = 0
while True:
if GPIO.input(PIN):
if activeCycles == DEBOUNCE_CYCLES:
print("BUTTON PRESSED!")
req = request.Request(URL, data={})
request.urlopen(req, context=ctx)
activeCycles += 1
else:
activeCycles = 0
time.sleep(0.01)
OPi.GPIO.cleanup()