Skip to content

Instantly share code, notes, and snippets.

@milleniumbug
Last active September 6, 2018 15:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save milleniumbug/17df45175adf0d30939190daa5310162 to your computer and use it in GitHub Desktop.
Save milleniumbug/17df45175adf0d30939190daa5310162 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b"Cookie/tGSIMonjf803gVn4GaOQhjPwd45NxbWbSlNuN2/UPI=", ("127.0.0.1", 5005))
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import datetime
import time
from timeit import default_timer as timer
GPIO.setmode(GPIO.BCM)
mock_mode = False
power_button_pins = [5, 6]
pin_external_relay = 23
GPIO.setup(power_button_pins[0], GPIO.OUT, initial = 1)
GPIO.setup(power_button_pins[1], GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(pin_external_relay, GPIO.OUT, initial = 1)
def turn_on_pc(reason):
print(datetime.datetime.now(), "Power on! Reason:", reason)
if mock_mode:
return
GPIO.output(pin_external_relay, GPIO.LOW)
time.sleep(0.2)
GPIO.output(pin_external_relay, GPIO.HIGH)
def rising(channel):
print(datetime.datetime.now(), "Rising edge")
i = 0
for _ in range(0, 30):
time.sleep(0.01)
i += GPIO.input(channel)
if i > 5:
turn_on_pc("button pressed - {0} polls".format(i))
else:
print(datetime.datetime.now(), "Not pressing - only {0} polls successful".format(i))
GPIO.add_event_detect(power_button_pins[1], GPIO.RISING, callback=rising)
import socket
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("127.0.0.1", 5005))
while True:
data, addr = sock.recvfrom(1024)
if data == b"Cookie/tGSIMonjf803gVn4GaOQhjPwd45NxbWbSlNuN2/UPI=":
turn_on_pc("udp socket receive")
finally:
GPIO.cleanup()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment