123456789101112131415161718192021222324252627282930313233343536 |
- #!/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()
|