|
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