/ examples / esp_atcontrol_webclient.py
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