37 lines
819 B
Python
37 lines
819 B
Python
|
#!/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()
|