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)