/ examples / esp32spi_wpa2ent_aio_post.py
esp32spi_wpa2ent_aio_post.py
 1  # SPDX-FileCopyrightText: 2019 ladyada for Adafruit Industries
 2  # SPDX-License-Identifier: MIT
 3  
 4  import time
 5  import board
 6  import busio
 7  from digitalio import DigitalInOut
 8  import neopixel
 9  from adafruit_esp32spi import adafruit_esp32spi
10  from adafruit_esp32spi.adafruit_esp32spi_wifimanager import ESPSPI_WiFiManager
11  
12  print("ESP32 SPI WPA2 Enterprise webclient test")
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  # ESP32 setup
22  # If your board does define the three pins listed below,
23  # you can set the correct pins in the second block
24  try:
25      esp32_cs = DigitalInOut(board.ESP_CS)
26      esp32_ready = DigitalInOut(board.ESP_BUSY)
27      esp32_reset = DigitalInOut(board.ESP_RESET)
28  except AttributeError:
29      esp32_cs = DigitalInOut(board.D9)
30      esp32_ready = DigitalInOut(board.D10)
31      esp32_reset = DigitalInOut(board.D5)
32  
33  spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
34  esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
35  """Use below for Most Boards"""
36  status_light = neopixel.NeoPixel(
37      board.NEOPIXEL, 1, brightness=0.2
38  )  # Uncomment for Most Boards
39  """Uncomment below for ItsyBitsy M4"""
40  # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2)
41  wifi = ESPSPI_WiFiManager(
42      esp, secrets, status_light, connection_type=ESPSPI_WiFiManager.ENTERPRISE
43  )
44  
45  counter = 0
46  
47  while True:
48      try:
49          print("Posting data...", end="")
50          data = counter
51          feed = "test"
52          payload = {"value": data}
53          response = wifi.post(
54              "https://io.adafruit.com/api/v2/"
55              + secrets["aio_username"]
56              + "/feeds/"
57              + feed
58              + "/data",
59              json=payload,
60              headers={"X-AIO-KEY": secrets["aio_key"]},
61          )
62          print(response.json())
63          response.close()
64          counter = counter + 1
65          print("OK")
66      except (ValueError, RuntimeError) as e:
67          print("Failed to get data, retrying\n", e)
68          wifi.reset()
69          continue
70      response = None
71      time.sleep(15)