-
Notifications
You must be signed in to change notification settings - Fork 0
/
wake.py
52 lines (43 loc) · 1.37 KB
/
wake.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import machine
import network
from micropython_wol import wol
# Verander de volgende variabelen naar jouw netwerkinstellingen en het MAC-adres van je pc
SSID = 'jouw_wifi_naam'
PASSWORD = 'jouw_wifi_wachtwoord'
PC_MAC_ADDRESS = b'00:11:22:33:44:55'
# Maak een WLAN-interface en verbind met het netwerk
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
# Wacht tot de WLAN-verbinding tot stand is gebracht
while not wlan.isconnected():
pass
# Functie om het WOL-pakket te verzenden
def send_wol_packet():
wol.send_magic_packet(PC_MAC_ADDRESS)
# Maak een HTTP-server en definieer de handler voor de root-URL
import usocket as socket
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 80))
s.listen(5)
while True:
conn, addr = s.accept()
request = conn.recv(1024)
conn.sendall('HTTP/1.1 200 OK\nContent-Type: text/html\n\n')
conn.sendall('''<!DOCTYPE html>
<html>
<head><title>Wake On LAN</title></head>
<body>
<h1>Wake On LAN</h1>
<form method="POST" action="/">
<button type="submit" name="submit">Wake up</button>
</form>
</body>
</html>''')
conn.close()
# Als het verzoek een POST-verzoek is, stuur dan het WOL-pakket
if b'POST / HTTP/1.1' in request and b'Wake up' in request:
send_wol_packet()
if __name__ == "__main__":
main()