66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
import time
|
|
import board
|
|
import busio
|
|
from digitalio import DigitalInOut
|
|
from digitalio import Direction
|
|
|
|
# ESP32 AT
|
|
from adafruit_espatcontrol import (
|
|
adafruit_espatcontrol,
|
|
adafruit_espatcontrol_wifimanager,
|
|
)
|
|
|
|
|
|
# Get wifi details and more from a secrets.py file
|
|
try:
|
|
from secrets import secrets
|
|
except ImportError:
|
|
print("WiFi secrets are kept in secrets.py, please add them there!")
|
|
raise
|
|
|
|
|
|
# With a Particle Argon
|
|
RX = board.ESP_TX
|
|
TX = board.ESP_RX
|
|
resetpin = DigitalInOut(board.ESP_WIFI_EN)
|
|
rtspin = DigitalInOut(board.ESP_CTS)
|
|
uart = busio.UART(TX, RX, timeout=0.1)
|
|
esp_boot = DigitalInOut(board.ESP_BOOT_MODE)
|
|
esp_boot.direction = Direction.OUTPUT
|
|
esp_boot.value = True
|
|
status_light = None
|
|
|
|
print("ESP AT commands")
|
|
esp = adafruit_espatcontrol.ESP_ATcontrol(
|
|
uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=False
|
|
)
|
|
wifi = adafruit_espatcontrol_wifimanager.ESPAT_WiFiManager(esp, secrets, status_light)
|
|
|
|
|
|
counter = 0
|
|
|
|
while True:
|
|
try:
|
|
print("Posting data...", end="")
|
|
data = counter
|
|
feed = "test"
|
|
payload = {"value": data}
|
|
response = wifi.post(
|
|
"https://io.adafruit.com/api/v2/"
|
|
+ secrets["aio_username"]
|
|
+ "/feeds/"
|
|
+ feed
|
|
+ "/data",
|
|
json=payload,
|
|
headers={"X-AIO-KEY": secrets["aio_key"]},
|
|
)
|
|
print(response.json())
|
|
response.close()
|
|
counter = counter + 1
|
|
print("OK")
|
|
except (ValueError, RuntimeError, adafruit_espatcontrol.OKError) as e:
|
|
print("Failed to get data, retrying\n", e)
|
|
wifi.reset()
|
|
continue
|
|
response = None
|
|
time.sleep(15)
|