esp_atcontrol_webclient.py
1 import time 2 import board 3 import busio 4 from digitalio import DigitalInOut 5 from digitalio import Direction 6 import adafruit_espatcontrol.adafruit_espatcontrol_socket as socket 7 from adafruit_espatcontrol import adafruit_espatcontrol 8 import adafruit_requests as requests 9 10 11 # Get wifi details and more from a secrets.py file 12 try: 13 from secrets import secrets 14 except ImportError: 15 print("WiFi secrets are kept in secrets.py, please add them there!") 16 raise 17 18 19 # With a Particle Argon 20 RX = board.ESP_TX 21 TX = board.ESP_RX 22 resetpin = DigitalInOut(board.ESP_WIFI_EN) 23 rtspin = DigitalInOut(board.ESP_CTS) 24 uart = busio.UART(TX, RX, timeout=0.1) 25 esp_boot = DigitalInOut(board.ESP_BOOT_MODE) 26 esp_boot.direction = Direction.OUTPUT 27 esp_boot.value = True 28 29 30 print("ESP AT commands") 31 esp = adafruit_espatcontrol.ESP_ATcontrol( 32 uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=False 33 ) 34 35 URL = "http://wifitest.adafruit.com/testwifi/index.html" 36 print("ESP AT GET URL", URL) 37 38 print("Resetting ESP module") 39 esp.hard_reset() 40 41 requests.set_socket(socket, esp) 42 43 while True: 44 try: 45 print("Checking connection...") 46 while not esp.is_connected: 47 print("Connecting...") 48 esp.connect(secrets) 49 # great, lets get the data 50 print("Retrieving URL...", end="") 51 r = requests.get(URL) 52 print("Status:", r.status_code) 53 print("Content type:", r.headers["content-type"]) 54 print("Content size:", r.headers["content-length"]) 55 print("Encoding:", r.encoding) 56 print("Text:", r.text) 57 58 time.sleep(60) 59 except (ValueError, RuntimeError, adafruit_espatcontrol.OKError) as e: 60 print("Failed to get data, retrying\n", e) 61 continue