|
1 | 1 | import board |
2 | 2 | import busio |
3 | | -import time |
4 | 3 | from digitalio import DigitalInOut |
5 | 4 | from secrets import secrets |
6 | 5 |
|
|
14 | 13 | esp32_cs = DigitalInOut(board.D10) |
15 | 14 | esp32_ready = DigitalInOut(board.D9) |
16 | 15 | esp32_reset = DigitalInOut(board.D7) |
17 | | -esp32_gpio0 = DigitalInOut(board.D12) |
18 | 16 |
|
19 | 17 |
|
20 | 18 | spi = busio.SPI(board.SCK, board.MOSI, board.MISO) |
21 | | -esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset, gpio0_pin=esp32_gpio0, debug=False) |
| 19 | +esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset, debug=True) |
22 | 20 |
|
23 | | -## Create Access Point from SSID and optional password in secrets |
24 | 21 | wifi = wifimanager.ESPSPI_WiFiManager(esp, secrets, debug=True) |
| 22 | + |
25 | 23 | wifi.create_ap() |
26 | 24 | time.sleep(10) |
27 | 25 |
|
28 | | -socket.set_interface(esp) |
29 | | -sock = socket.socket() # Request a socket for the server |
30 | | -curr_sock = sock |
31 | | -sockNum = sock.get_sock_num() |
32 | | -print("server status: ", esp.get_server_state(sockNum)) |
33 | | - |
34 | | -# Start the server on port 80 with the socket number we just requested for it. |
35 | | -esp.start_server(80, sockNum) |
| 26 | +sock = socket.socket() # gets and creates a socket |
| 27 | +sock_num = sock.get_sock_num() # returns socket number |
36 | 28 |
|
37 | | -print("socket num: ", sockNum) |
38 | | -print("server status: ", esp.get_server_state(sockNum)) |
| 29 | +esp.start_server(sock_num, 80) |
| 30 | +print("socket num: ", sock_num) |
| 31 | +print("socket status?: ", esp.socket_status(sock_num)) |
39 | 32 | print("IP addr: ", esp.pretty_ip(esp.ip_address)) |
40 | | -print("info: ", esp.network_data) |
41 | | -print("done!") |
42 | | - |
43 | 33 |
|
44 | 34 | status = 0 |
45 | | -last_sock = 255 |
46 | | -def server_avail(): # TODO: make a server helper class |
47 | | - global last_sock |
48 | | - sock = 255; |
49 | | - |
50 | | - if (curr_sock != 255): |
51 | | - # if (last_sock != 255): |
52 | | - # TODO: if last sock, check that last_sock is still connected and available |
53 | | - # sock = last_sock |
54 | | - if (sock == 255): |
55 | | - sock = esp.socket_available(sockNum) |
56 | | - if (sock != 255): |
57 | | - last_sock = sock |
58 | | - return sock |
59 | | - |
60 | | - return 255 |
61 | | - |
62 | 35 | while True: |
63 | | - if status != esp.status: # TODO: Move device connected check to server class ? |
| 36 | + if status != esp.status: |
64 | 37 | status = esp.status |
65 | 38 |
|
66 | 39 | if status == 8: |
67 | | - print("Device connected! status=", status) |
| 40 | + print("Device connected!") ## works |
68 | 41 | else: |
69 | | - print("Device disconnected! status=", status) |
| 42 | + print("Device disconnected status=", status) ## works |
70 | 43 |
|
| 44 | + print("socket available?: ", esp.socket_available(sockNum)) |
| 45 | + print("socket_status: ", esp.socket_status(sockNum)) |
| 46 | + print(sock.read()) |
71 | 47 |
|
72 | | - avail = server_avail() |
73 | | - if (avail != 255): |
74 | | - sock.set_sock_num(avail) # TODO: Server class should return a new client socket |
75 | | - data = sock.read() |
76 | | - if (len(data)): |
77 | | - print(data) |
78 | | - sock.write(b"HTTP/1.1 200 OK\r\n"); |
79 | | - sock.write(b"Content-type:text/html\r\n"); |
80 | | - sock.write(b"\r\n"); |
81 | 48 |
|
82 | | - sock.write(b"Click <a href=\"/H\">here</a> turn the LED on!!!<br>\r\n"); |
83 | | - sock.write(b"Click <a href=\"/L\">here</a> turn the LED off!!!!<br>\r\n"); |
84 | | - |
85 | | - sock.write(b"\r\n") |
86 | | - sock.close() |
| 49 | +print("done!") |
0 commit comments