import socket #maakt IP communicatie mogelijk. led_state = {0: "uit", 1: "aan"} #een dictionary die 0 omzet in uit en 1 omzet in aan. def web_page(): return """<html> <head> <title>ESP32 webserver met led</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <h1>ESP32 webserver met led</h1> <a href="/?led={}"><button>{}</button></a> </body> </html>""".format(led_state[not led.value()], led_state[led.value()]) #het html script, hier ga ik laten op in server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(("", 8080)) server_socket.listen(5) #maakt een socket aan met het TCP/IP protocol(familie). #verbindt de zocket met het IP adress van de ESP32 en poort. #accepteerd inkomende verbindingen, met een maximale wachtrij van 5. while True: connection, address = server_socket.accept() print("Got a connection from %s" % str(address)) request = str(connection.recv(1024)) print("connect = %s" % request) #verbindt, retouneert nieuwe socket en het adres van de client. #ontvangt en slaat inkomend HTTP verzoek op in request. led_on = request.find("/?led=aan") led_off = request.find("/?led=uit") if led_on ==6: print("LED ON") led.value(1) if led_off == 6: print("LED OFF") led.value(0) #zorgt Dat de value van de led op 0 of 1 wordt gezet, oftewel aan of uit. #print LED OFF of LED ON in de terminal wanneer hij uit of aan gaat. response = web_page() connection.send("HTTP/1.1 200 OK/n") connection.send("Content-Type: text/html/n") connection.send("Connection: close/n/n") connection.sendall(response) connection.close() #genereerd de webpagina op basis van de huidige status van de led. #verzenden de HTTP respons met de juiste headers en de gegenereerde HTML pagina naar de client. #sluit verbinding nadat response is verzonden.