/ examples / esp_atcontrol_aio_post.py
esp_atcontrol_aio_post.py
 1  import time
 2  import board
 3  import busio
 4  from digitalio import DigitalInOut
 5  from digitalio import Direction
 6  
 7  # ESP32 AT
 8  from adafruit_espatcontrol import (
 9      adafruit_espatcontrol,
10      adafruit_espatcontrol_wifimanager,
11  )
12  
13  
14  # Get wifi details and more from a secrets.py file
15  try:
16      from secrets import secrets
17  except ImportError:
18      print("WiFi secrets are kept in secrets.py, please add them there!")
19      raise
20  
21  
22  # With a Particle Argon
23  RX = board.ESP_TX
24  TX = board.ESP_RX
25  resetpin = DigitalInOut(board.ESP_WIFI_EN)
26  rtspin = DigitalInOut(board.ESP_CTS)
27  uart = busio.UART(TX, RX, timeout=0.1)
28  esp_boot = DigitalInOut(board.ESP_BOOT_MODE)
29  esp_boot.direction = Direction.OUTPUT
30  esp_boot.value = True
31  status_light = None
32  
33  print("ESP AT commands")
34  esp = adafruit_espatcontrol.ESP_ATcontrol(
35      uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=False
36  )
37  wifi = adafruit_espatcontrol_wifimanager.ESPAT_WiFiManager(esp, secrets, status_light)
38  
39  
40  counter = 0
41  
42  while True:
43      try:
44          print("Posting data...", end="")
45          data = counter
46          feed = "test"
47          payload = {"value": data}
48          response = wifi.post(
49              "https://io.adafruit.com/api/v2/"
50              + secrets["aio_username"]
51              + "/feeds/"
52              + feed
53              + "/data",
54              json=payload,
55              headers={"X-AIO-KEY": secrets["aio_key"]},
56          )
57          print(response.json())
58          response.close()
59          counter = counter + 1
60          print("OK")
61      except (ValueError, RuntimeError, adafruit_espatcontrol.OKError) as e:
62          print("Failed to get data, retrying\n", e)
63          wifi.reset()
64          continue
65      response = None
66      time.sleep(15)