9fc6f5f94f
Add pyportal-controller "sub-project"
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
import board
|
|
import busio
|
|
from digitalio import DigitalInOut
|
|
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
|
|
from adafruit_esp32spi import adafruit_esp32spi
|
|
import adafruit_requests as requests
|
|
import config
|
|
|
|
# If you are using a board with pre-defined ESP32 Pins:
|
|
esp32_cs = DigitalInOut(board.ESP_CS)
|
|
esp32_ready = DigitalInOut(board.ESP_BUSY)
|
|
esp32_reset = DigitalInOut(board.ESP_RESET)
|
|
|
|
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
|
|
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
|
|
|
|
requests.set_socket(socket, esp)
|
|
|
|
if esp.status == adafruit_esp32spi.WL_IDLE_STATUS:
|
|
print("ESP32 found and in idle mode")
|
|
print("Firmware vers.", esp.firmware_version)
|
|
print("MAC addr:", [hex(i) for i in esp.MAC_address])
|
|
|
|
print("Connecting to AP...")
|
|
|
|
|
|
def WifiConnect(ssid, psk):
|
|
"""Connect to the wifi with given credentials."""
|
|
nets = esp.scan_networks()
|
|
for net in nets:
|
|
net_ssid = net['ssid']
|
|
if net_ssid == bytearray(ssid):
|
|
print('Network found!')
|
|
esp.connect_AP(net_ssid, psk)
|
|
while not esp.is_connected:
|
|
machine.idle() # save power while waiting
|
|
print('WLAN connection succeeded!')
|
|
break
|
|
if not esp.is_connected:
|
|
print("WLAN not found/not connected")
|
|
|
|
|
|
WifiConnect(config.WIFI_SSID, config.WIFI_PSK)
|
|
|
|
print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi)
|
|
print("My IP address is", esp.pretty_ip(esp.ip_address))
|