import time import board import busio from digitalio import DigitalInOut from digitalio import Direction from adafruit_espatcontrol import adafruit_espatcontrol # Get wifi details and more from a secrets.py file try: from secrets import secrets except ImportError: print("WiFi secrets are kept in secrets.py, please add them there!") raise # With a Particle Argon RX = board.ESP_TX TX = board.ESP_RX resetpin = DigitalInOut(board.ESP_WIFI_EN) rtspin = DigitalInOut(board.ESP_CTS) uart = busio.UART(TX, RX, timeout=0.1) esp_boot = DigitalInOut(board.ESP_BOOT_MODE) esp_boot.direction = Direction.OUTPUT esp_boot.value = True print("ESP AT commands") esp = adafruit_espatcontrol.ESP_ATcontrol( uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=False ) print("Resetting ESP module") esp.hard_reset() first_pass = True while True: try: if first_pass: print("Scanning for AP's") for ap in esp.scan_APs(): print(ap) print("Checking connection...") # secrets dictionary must contain 'ssid' and 'password' at a minimum print("Connecting...") esp.connect(secrets) print("Connected to AT software version ", esp.version) print("IP address ", esp.local_ip) first_pass = False print("Pinging 8.8.8.8...", end="") print(esp.ping("8.8.8.8")) time.sleep(10) except (ValueError, RuntimeError, adafruit_espatcontrol.OKError) as e: print("Failed to get data, retrying\n", e) print("Resetting ESP module") esp.hard_reset() continue