From dbb035730fcc55201e4f74869da46322697bdad8 Mon Sep 17 00:00:00 2001 From: RetiredWizard Date: Thu, 2 Nov 2023 20:41:54 -0400 Subject: [PATCH 1/3] Modify examples using settings.toml --- .../adafruit_esp32spi_wifimanager.py | 18 +++---- examples/esp32spi_aio_post.py | 36 ++++++++++---- examples/esp32spi_cheerlights.py | 48 ++++++++++++++----- examples/esp32spi_ipconfig.py | 34 +++++++++---- examples/esp32spi_localtime.py | 44 +++++++++++++---- examples/esp32spi_secrets.py | 13 ----- examples/esp32spi_simpletest.py | 26 +++++++--- examples/esp32spi_simpletest_rp2040.py | 20 +++++--- examples/esp32spi_tcp_client.py | 25 +++++++++- examples/esp32spi_udp_client.py | 30 +++++++++--- examples/esp32spi_wpa2ent_aio_post.py | 42 ++++++++++++---- examples/esp32spi_wpa2ent_simpletest.py | 7 ++- examples/settings.toml | 5 ++ 13 files changed, 255 insertions(+), 93 deletions(-) delete mode 100644 examples/esp32spi_secrets.py create mode 100644 examples/settings.toml diff --git a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py index 0070b94..58e33de 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py +++ b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py @@ -42,6 +42,8 @@ def __init__( """ :param ESP_SPIcontrol esp: The ESP object we are using :param dict secrets: The WiFi and Adafruit IO secrets dict (See examples) + The use of secrets.py to populate the secrets dict is depreciated + in favor of using settings.toml. :param status_pixel: (Optional) The pixel device - A NeoPixel, DotStar, or RGB LED (default=None). The status LED, if given, turns red when attempting to connect to a Wi-Fi network or create an access point, @@ -65,18 +67,10 @@ def __init__( self._ap_index = 0 # Check for WPA2 Enterprise keys in the secrets dictionary and load them if they exist - if secrets.get("ent_ssid"): - self.ent_ssid = secrets["ent_ssid"] - else: - self.ent_ssid = secrets["ssid"] - if secrets.get("ent_ident"): - self.ent_ident = secrets["ent_ident"] - else: - self.ent_ident = "" - if secrets.get("ent_user"): - self.ent_user = secrets["ent_user"] - if secrets.get("ent_password"): - self.ent_password = secrets["ent_password"] + self.ent_ssid = secrets.get("ent_ssid",secrets["ssid"]) + self.ent_ident = secrets.get("ent_ident","") + self.ent_user = secrets.get("ent_user") + self.ent_password = secrets.get("ent_password") # pylint: enable=too-many-arguments diff --git a/examples/esp32spi_aio_post.py b/examples/esp32spi_aio_post.py index ef24db7..9770387 100644 --- a/examples/esp32spi_aio_post.py +++ b/examples/esp32spi_aio_post.py @@ -4,6 +4,7 @@ import time import board import busio +from os import getenv from digitalio import DigitalInOut import neopixel from adafruit_esp32spi import adafruit_esp32spi @@ -11,12 +12,24 @@ print("ESP32 SPI webclient test") -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +# CIRCUITPY_AIO_USERNAME, CIRCUITPY_AIO_KEY +secrets = {} +for token in ["ssid","password"]: + if getenv("CIRCUITPY_WIFI_"+token.upper()): + secrets[token] = getenv("CIRCUITPY_WIFI_"+token.upper()) +for token in ["aio_username","aio_key"]: + if getenv("CIRCUITPY_"+token.upper()): + secrets[token] = getenv("CIRCUITPY_"+token.upper()) + +if secrets == {}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise # If you are using a board with pre-defined ESP32 Pins: esp32_cs = DigitalInOut(board.ESP_CS) @@ -28,21 +41,26 @@ # esp32_ready = DigitalInOut(board.D10) # esp32_reset = DigitalInOut(board.D5) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 -) # Uncomment for Most Boards +) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) -# Uncomment below for an externally defined RGB LED +"""Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" # import adafruit_rgbled # from adafruit_esp32spi import PWMOut # RED_LED = PWMOut.PWMOut(esp, 26) # GREEN_LED = PWMOut.PWMOut(esp, 27) # BLUE_LED = PWMOut.PWMOut(esp, 25) # status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED) + wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light) counter = 0 diff --git a/examples/esp32spi_cheerlights.py b/examples/esp32spi_cheerlights.py index 7ded593..5cf6f15 100644 --- a/examples/esp32spi_cheerlights.py +++ b/examples/esp32spi_cheerlights.py @@ -4,6 +4,7 @@ import time import board import busio +from os import getenv from digitalio import DigitalInOut import neopixel @@ -12,29 +13,54 @@ from adafruit_esp32spi import adafruit_esp32spi from adafruit_esp32spi import adafruit_esp32spi_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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise print("ESP32 SPI webclient test") DATA_SOURCE = "https://api.thingspeak.com/channels/1417/feeds.json?results=1" DATA_LOCATION = ["feeds", 0, "field2"] -esp32_cs = DigitalInOut(board.D9) -esp32_ready = DigitalInOut(board.D10) -esp32_reset = DigitalInOut(board.D5) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) +# If you are using a board with pre-defined ESP32 Pins: +esp32_cs = DigitalInOut(board.ESP_CS) +esp32_ready = DigitalInOut(board.ESP_BUSY) +esp32_reset = DigitalInOut(board.ESP_RESET) + +# If you have an externally connected ESP32: +# esp32_cs = DigitalInOut(board.D9) +# esp32_ready = DigitalInOut(board.D10) +# esp32_reset = DigitalInOut(board.D5) + +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 -) # Uncomment for Most Boards +) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) +"""Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" +# import adafruit_rgbled +# from adafruit_esp32spi import PWMOut +# RED_LED = PWMOut.PWMOut(esp, 26) +# GREEN_LED = PWMOut.PWMOut(esp, 27) +# BLUE_LED = PWMOut.PWMOut(esp, 25) +# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light) # neopixels diff --git a/examples/esp32spi_ipconfig.py b/examples/esp32spi_ipconfig.py index 5f67044..e82f7a3 100644 --- a/examples/esp32spi_ipconfig.py +++ b/examples/esp32spi_ipconfig.py @@ -4,16 +4,24 @@ import time import board import busio +from os import getenv from digitalio import DigitalInOut import adafruit_esp32spi.adafruit_esp32spi_socket as socket from adafruit_esp32spi import adafruit_esp32spi -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise HOSTNAME = "esp32-spi-hostname-test" @@ -26,11 +34,21 @@ UDP_TIMEOUT = 20 -esp32_cs = DigitalInOut(board.CS1) +# If you are using a board with pre-defined ESP32 Pins: +esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) -spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +# If you have an externally connected ESP32: +# esp32_cs = DigitalInOut(board.D9) +# esp32_ready = DigitalInOut(board.D10) +# esp32_reset = DigitalInOut(board.D5) + +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) socket.set_interface(esp) diff --git a/examples/esp32spi_localtime.py b/examples/esp32spi_localtime.py index 01dd93b..64c20b2 100644 --- a/examples/esp32spi_localtime.py +++ b/examples/esp32spi_localtime.py @@ -4,34 +4,62 @@ import time import board import busio +from os import getenv from digitalio import DigitalInOut import neopixel import rtc from adafruit_esp32spi import adafruit_esp32spi from adafruit_esp32spi import adafruit_esp32spi_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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise print("ESP32 local time") TIME_API = "http://worldtimeapi.org/api/ip" +# If you are using a board with pre-defined ESP32 Pins: esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) + +# If you have an externally connected ESP32: +# esp32_cs = DigitalInOut(board.D9) +# esp32_ready = DigitalInOut(board.D10) +# esp32_reset = DigitalInOut(board.D5) + +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) + """Use below for Most Boards""" status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 -) # Uncomment for Most Boards +) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) +"""Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" +# import adafruit_rgbled +# from adafruit_esp32spi import PWMOut +# RED_LED = PWMOut.PWMOut(esp, 26) +# GREEN_LED = PWMOut.PWMOut(esp, 27) +# BLUE_LED = PWMOut.PWMOut(esp, 25) +# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED) + wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light) the_rtc = rtc.RTC() diff --git a/examples/esp32spi_secrets.py b/examples/esp32spi_secrets.py deleted file mode 100644 index 02b75eb..0000000 --- a/examples/esp32spi_secrets.py +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-FileCopyrightText: 2019 ladyada for Adafruit Industries -# SPDX-License-Identifier: MIT - -# This file is where you keep secret settings, passwords, and tokens! -# If you put them in the code you risk committing that info or sharing it - -secrets = { - "ssid": "yourssid", - "password": "yourpassword", - "timezone": "America/New_York", # Check http://worldtimeapi.org/timezones - "aio_username": "youraiousername", - "aio_key": "youraiokey", -} diff --git a/examples/esp32spi_simpletest.py b/examples/esp32spi_simpletest.py index 7e01ad6..231773c 100644 --- a/examples/esp32spi_simpletest.py +++ b/examples/esp32spi_simpletest.py @@ -3,17 +3,25 @@ import board import busio +from os import getenv from digitalio import DigitalInOut import adafruit_requests as requests import adafruit_esp32spi.adafruit_esp32spi_socket as socket from adafruit_esp32spi import adafruit_esp32spi -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise print("ESP32 SPI webclient test") @@ -42,7 +50,11 @@ # esp32_ready = DigitalInOut(board.D10) # esp32_reset = DigitalInOut(board.D5) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) requests.set_socket(socket, esp) diff --git a/examples/esp32spi_simpletest_rp2040.py b/examples/esp32spi_simpletest_rp2040.py index decd13e..04ee390 100644 --- a/examples/esp32spi_simpletest_rp2040.py +++ b/examples/esp32spi_simpletest_rp2040.py @@ -3,17 +3,25 @@ import board import busio +from os import getenv from digitalio import DigitalInOut import adafruit_requests as requests import adafruit_esp32spi.adafruit_esp32spi_socket as socket from adafruit_esp32spi import adafruit_esp32spi -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise print("Raspberry Pi RP2040 - ESP32 SPI webclient test") diff --git a/examples/esp32spi_tcp_client.py b/examples/esp32spi_tcp_client.py index e635d0c..7f53af9 100644 --- a/examples/esp32spi_tcp_client.py +++ b/examples/esp32spi_tcp_client.py @@ -1,20 +1,41 @@ # SPDX-FileCopyrightText: 2021 Adafruit Industries # SPDX-License-Identifier: MIT -from secrets import secrets # pylint: disable=no-name-in-module +from os import getenv import board +import busio from digitalio import DigitalInOut from adafruit_esp32spi import adafruit_esp32spi import adafruit_esp32spi.adafruit_esp32spi_socket as socket +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets # pylint: disable=no-name-in-module + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise TIMEOUT = 5 # edit host and port to match server HOST = "wifitest.adafruit.com" PORT = 80 +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + if "SPI" in dir(board): + spi = board.SPI() + else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) # PyPortal or similar; edit pins as needed -spi = board.SPI() esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) diff --git a/examples/esp32spi_udp_client.py b/examples/esp32spi_udp_client.py index 176e7a8..d87d975 100644 --- a/examples/esp32spi_udp_client.py +++ b/examples/esp32spi_udp_client.py @@ -4,16 +4,25 @@ import struct import time import board +import busio +from os import getenv from digitalio import DigitalInOut from adafruit_esp32spi import adafruit_esp32spi import adafruit_esp32spi.adafruit_esp32spi_socket as socket -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD +secrets = { + "ssid": getenv("CIRCUITPY_WIFI_SSID"), + "password": getenv("CIRCUITPY_WIFI_PASSWORD") +} +if secrets == {"ssid": None, "password": None}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets # pylint: disable=no-name-in-module + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise TIMEOUT = 5 # edit host and port to match server @@ -21,8 +30,15 @@ PORT = 123 NTP_TO_UNIX_EPOCH = 2208988800 # 1970-01-01 00:00:00 +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + if "SPI" in dir(board): + spi = board.SPI() + else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) # PyPortal or similar; edit pins as needed -spi = board.SPI() esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) diff --git a/examples/esp32spi_wpa2ent_aio_post.py b/examples/esp32spi_wpa2ent_aio_post.py index 227bf91..76504e2 100644 --- a/examples/esp32spi_wpa2ent_aio_post.py +++ b/examples/esp32spi_wpa2ent_aio_post.py @@ -4,6 +4,7 @@ import time import board import busio +from os import getenv from digitalio import DigitalInOut import neopixel from adafruit_esp32spi import adafruit_esp32spi @@ -11,12 +12,24 @@ print("ESP32 SPI WPA2 Enterprise webclient test") -# 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 +# Get wifi details and more from a settings.toml file +# tokens used by this Demo: CIRCUITPY_AIO_USERNAME, CIRCUITPY_AIO_KEY, +# CIRCUITPY_WIFI_ENT_SSID, CIRCUITPY_WIFI_ENT_PASSWORD, +# CIRCUITPY_WIFI_ENT_USER, CIRCUITPY_WIFI_ENT_IDENT +secrets = {} +for token in ["ssid","password","user","ident"]: + if getenv("CIRCUITPY_WIFI_ENT_"+token.upper()): + secrets[token] = getenv("CIRCUITPY_WIFI_"+token.upper()) +for token in ["aio_username","aio_key"]: + if getenv("CIRCUITPY_"+token.upper()): + secrets[token] = getenv("CIRCUITPY_"+token.upper()) +if secrets == {}: + try: + # Fallback on secrets.py until depreciation is over and option is removed + from secrets import secrets # pylint: disable=no-name-in-module + except ImportError: + print("WiFi secrets are kept in settings.toml, please add them there!") + raise # ESP32 setup # If your board does define the three pins listed below, @@ -30,14 +43,27 @@ esp32_ready = DigitalInOut(board.D10) esp32_reset = DigitalInOut(board.D5) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) + """Use below for Most Boards""" status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 -) # Uncomment for Most Boards +) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) +"""Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" +# import adafruit_rgbled +# from adafruit_esp32spi import PWMOut +# RED_LED = PWMOut.PWMOut(esp, 26) +# GREEN_LED = PWMOut.PWMOut(esp, 27) +# BLUE_LED = PWMOut.PWMOut(esp, 25) +# status_light = adafruit_rgbled.RGBLED(RED_LED, BLUE_LED, GREEN_LED) + wifi = ESPSPI_WiFiManager( esp, secrets, status_light, connection_type=ESPSPI_WiFiManager.ENTERPRISE ) diff --git a/examples/esp32spi_wpa2ent_simpletest.py b/examples/esp32spi_wpa2ent_simpletest.py index 879ac24..a8279ed 100644 --- a/examples/esp32spi_wpa2ent_simpletest.py +++ b/examples/esp32spi_wpa2ent_simpletest.py @@ -31,7 +31,6 @@ def normalize(v): normalize(version1) < normalize(version2) ) - print("ESP32 SPI WPA2 Enterprise test") # ESP32 setup @@ -46,7 +45,11 @@ def normalize(v): esp32_ready = DigitalInOut(board.D10) esp32_reset = DigitalInOut(board.D5) -spi = busio.SPI(board.SCK, board.MOSI, board.MISO) +# Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 +if 'SCK1' in dir(board): + spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) +else: + spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) requests.set_socket(socket, esp) diff --git a/examples/settings.toml b/examples/settings.toml new file mode 100644 index 0000000..cab9eb6 --- /dev/null +++ b/examples/settings.toml @@ -0,0 +1,5 @@ +CIRCUITPY_WIFI_SSID="yourssid" +CIRCUITPY_WIFI_PASSWORD="yourpassword" +CIRCUITPY_TIMEZONE="America/New_York" +CIRCUITPY_AIO_USERNAME="youraiousername" +CIRCUITPY_AIO_KEY="youraiokey" From 07703c1cb79b9692feb244d4a0597fa03b2339a9 Mon Sep 17 00:00:00 2001 From: RetiredWizard Date: Thu, 2 Nov 2023 20:55:45 -0400 Subject: [PATCH 2/3] pre-commit fixes --- .../adafruit_esp32spi_wifimanager.py | 4 ++-- examples/esp32spi_aio_post.py | 22 +++++++++---------- examples/esp32spi_cheerlights.py | 10 ++++----- examples/esp32spi_ipconfig.py | 6 ++--- examples/esp32spi_localtime.py | 10 ++++----- examples/esp32spi_simpletest.py | 6 ++--- examples/esp32spi_simpletest_rp2040.py | 4 ++-- examples/esp32spi_tcp_client.py | 4 ++-- examples/esp32spi_udp_client.py | 6 ++--- examples/esp32spi_wpa2ent_aio_post.py | 22 +++++++++---------- examples/esp32spi_wpa2ent_simpletest.py | 3 ++- 11 files changed, 45 insertions(+), 52 deletions(-) diff --git a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py index 58e33de..8cd9433 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py +++ b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py @@ -67,8 +67,8 @@ def __init__( self._ap_index = 0 # Check for WPA2 Enterprise keys in the secrets dictionary and load them if they exist - self.ent_ssid = secrets.get("ent_ssid",secrets["ssid"]) - self.ent_ident = secrets.get("ent_ident","") + self.ent_ssid = secrets.get("ent_ssid", secrets["ssid"]) + self.ent_ident = secrets.get("ent_ident", "") self.ent_user = secrets.get("ent_user") self.ent_password = secrets.get("ent_password") diff --git a/examples/esp32spi_aio_post.py b/examples/esp32spi_aio_post.py index 9770387..c4b5f7f 100644 --- a/examples/esp32spi_aio_post.py +++ b/examples/esp32spi_aio_post.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import neopixel from adafruit_esp32spi import adafruit_esp32spi @@ -16,14 +16,14 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD # CIRCUITPY_AIO_USERNAME, CIRCUITPY_AIO_KEY secrets = {} -for token in ["ssid","password"]: - if getenv("CIRCUITPY_WIFI_"+token.upper()): - secrets[token] = getenv("CIRCUITPY_WIFI_"+token.upper()) -for token in ["aio_username","aio_key"]: - if getenv("CIRCUITPY_"+token.upper()): - secrets[token] = getenv("CIRCUITPY_"+token.upper()) +for token in ["ssid", "password"]: + if getenv("CIRCUITPY_WIFI_" + token.upper()): + secrets[token] = getenv("CIRCUITPY_WIFI_" + token.upper()) +for token in ["aio_username", "aio_key"]: + if getenv("CIRCUITPY_" + token.upper()): + secrets[token] = getenv("CIRCUITPY_" + token.upper()) -if secrets == {}: +if not secrets: try: # Fallback on secrets.py until depreciation is over and option is removed from secrets import secrets @@ -42,15 +42,13 @@ # esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" -status_light = neopixel.NeoPixel( - board.NEOPIXEL, 1, brightness=0.2 -) +status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) """Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" diff --git a/examples/esp32spi_cheerlights.py b/examples/esp32spi_cheerlights.py index 5cf6f15..9bac915 100644 --- a/examples/esp32spi_cheerlights.py +++ b/examples/esp32spi_cheerlights.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import neopixel @@ -17,7 +17,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -43,15 +43,13 @@ # esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" -status_light = neopixel.NeoPixel( - board.NEOPIXEL, 1, brightness=0.2 -) +status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) """Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" diff --git a/examples/esp32spi_ipconfig.py b/examples/esp32spi_ipconfig.py index e82f7a3..644de90 100644 --- a/examples/esp32spi_ipconfig.py +++ b/examples/esp32spi_ipconfig.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import adafruit_esp32spi.adafruit_esp32spi_socket as socket from adafruit_esp32spi import adafruit_esp32spi @@ -13,7 +13,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -45,7 +45,7 @@ # esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) diff --git a/examples/esp32spi_localtime.py b/examples/esp32spi_localtime.py index 64c20b2..b6ee671 100644 --- a/examples/esp32spi_localtime.py +++ b/examples/esp32spi_localtime.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import neopixel import rtc @@ -15,7 +15,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -40,16 +40,14 @@ # esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" -status_light = neopixel.NeoPixel( - board.NEOPIXEL, 1, brightness=0.2 -) +status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) """Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" diff --git a/examples/esp32spi_simpletest.py b/examples/esp32spi_simpletest.py index 231773c..1bcc4a9 100644 --- a/examples/esp32spi_simpletest.py +++ b/examples/esp32spi_simpletest.py @@ -1,9 +1,9 @@ # SPDX-FileCopyrightText: 2019 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import adafruit_requests as requests import adafruit_esp32spi.adafruit_esp32spi_socket as socket @@ -13,7 +13,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -51,7 +51,7 @@ # esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) diff --git a/examples/esp32spi_simpletest_rp2040.py b/examples/esp32spi_simpletest_rp2040.py index 04ee390..8630a57 100644 --- a/examples/esp32spi_simpletest_rp2040.py +++ b/examples/esp32spi_simpletest_rp2040.py @@ -1,9 +1,9 @@ # SPDX-FileCopyrightText: 2019 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import adafruit_requests as requests import adafruit_esp32spi.adafruit_esp32spi_socket as socket @@ -13,7 +13,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: diff --git a/examples/esp32spi_tcp_client.py b/examples/esp32spi_tcp_client.py index 7f53af9..3985278 100644 --- a/examples/esp32spi_tcp_client.py +++ b/examples/esp32spi_tcp_client.py @@ -12,7 +12,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -28,7 +28,7 @@ PORT = 80 # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: if "SPI" in dir(board): diff --git a/examples/esp32spi_udp_client.py b/examples/esp32spi_udp_client.py index d87d975..53ac2ba 100644 --- a/examples/esp32spi_udp_client.py +++ b/examples/esp32spi_udp_client.py @@ -3,9 +3,9 @@ import struct import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut from adafruit_esp32spi import adafruit_esp32spi import adafruit_esp32spi.adafruit_esp32spi_socket as socket @@ -14,7 +14,7 @@ # tokens used by this Demo: CIRCUITPY_WIFI_SSID, CIRCUITPY_WIFI_PASSWORD secrets = { "ssid": getenv("CIRCUITPY_WIFI_SSID"), - "password": getenv("CIRCUITPY_WIFI_PASSWORD") + "password": getenv("CIRCUITPY_WIFI_PASSWORD"), } if secrets == {"ssid": None, "password": None}: try: @@ -31,7 +31,7 @@ NTP_TO_UNIX_EPOCH = 2208988800 # 1970-01-01 00:00:00 # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: if "SPI" in dir(board): diff --git a/examples/esp32spi_wpa2ent_aio_post.py b/examples/esp32spi_wpa2ent_aio_post.py index 76504e2..197f279 100644 --- a/examples/esp32spi_wpa2ent_aio_post.py +++ b/examples/esp32spi_wpa2ent_aio_post.py @@ -2,9 +2,9 @@ # SPDX-License-Identifier: MIT import time +from os import getenv import board import busio -from os import getenv from digitalio import DigitalInOut import neopixel from adafruit_esp32spi import adafruit_esp32spi @@ -17,13 +17,13 @@ # CIRCUITPY_WIFI_ENT_SSID, CIRCUITPY_WIFI_ENT_PASSWORD, # CIRCUITPY_WIFI_ENT_USER, CIRCUITPY_WIFI_ENT_IDENT secrets = {} -for token in ["ssid","password","user","ident"]: - if getenv("CIRCUITPY_WIFI_ENT_"+token.upper()): - secrets[token] = getenv("CIRCUITPY_WIFI_"+token.upper()) -for token in ["aio_username","aio_key"]: - if getenv("CIRCUITPY_"+token.upper()): - secrets[token] = getenv("CIRCUITPY_"+token.upper()) -if secrets == {}: +for token in ["ssid", "password", "user", "ident"]: + if getenv("CIRCUITPY_WIFI_ENT_" + token.upper()): + secrets[token] = getenv("CIRCUITPY_WIFI_" + token.upper()) +for token in ["aio_username", "aio_key"]: + if getenv("CIRCUITPY_" + token.upper()): + secrets[token] = getenv("CIRCUITPY_" + token.upper()) +if not secrets: try: # Fallback on secrets.py until depreciation is over and option is removed from secrets import secrets # pylint: disable=no-name-in-module @@ -44,16 +44,14 @@ esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) """Use below for Most Boards""" -status_light = neopixel.NeoPixel( - board.NEOPIXEL, 1, brightness=0.2 -) +status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) """Uncomment below for an externally defined RGB LED (including Arduino Nano Connect)""" diff --git a/examples/esp32spi_wpa2ent_simpletest.py b/examples/esp32spi_wpa2ent_simpletest.py index a8279ed..01d2bb0 100644 --- a/examples/esp32spi_wpa2ent_simpletest.py +++ b/examples/esp32spi_wpa2ent_simpletest.py @@ -31,6 +31,7 @@ def normalize(v): normalize(version1) < normalize(version2) ) + print("ESP32 SPI WPA2 Enterprise test") # ESP32 setup @@ -46,7 +47,7 @@ def normalize(v): esp32_reset = DigitalInOut(board.D5) # Secondary (SCK1) SPI used to connect to WiFi board on Arduino Nano Connect RP2040 -if 'SCK1' in dir(board): +if "SCK1" in dir(board): spi = busio.SPI(board.SCK1, board.MOSI1, board.MISO1) else: spi = busio.SPI(board.SCK, board.MOSI, board.MISO) From 6092ea07bca234c58618c2f5fdf959f7898da215 Mon Sep 17 00:00:00 2001 From: RetiredWizard Date: Thu, 2 Nov 2023 21:01:21 -0400 Subject: [PATCH 3/3] settings.toml example rename + license --- examples/esp32spi_settings.toml | 14 ++++++++++++++ examples/settings.toml | 5 ----- 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 examples/esp32spi_settings.toml delete mode 100644 examples/settings.toml diff --git a/examples/esp32spi_settings.toml b/examples/esp32spi_settings.toml new file mode 100644 index 0000000..16208bd --- /dev/null +++ b/examples/esp32spi_settings.toml @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2019 ladyada for Adafruit Industries +# SPDX-License-Identifier: MIT + +# This file is where you keep secret settings, passwords, and tokens! +# If you put them in the code you risk committing that info or sharing it + +# The file should be renamed to `settings.toml` and saved in the root of +# the CIRCUITPY drive. + +CIRCUITPY_WIFI_SSID="yourssid" +CIRCUITPY_WIFI_PASSWORD="yourpassword" +CIRCUITPY_TIMEZONE="America/New_York" +CIRCUITPY_AIO_USERNAME="youraiousername" +CIRCUITPY_AIO_KEY="youraiokey" diff --git a/examples/settings.toml b/examples/settings.toml deleted file mode 100644 index cab9eb6..0000000 --- a/examples/settings.toml +++ /dev/null @@ -1,5 +0,0 @@ -CIRCUITPY_WIFI_SSID="yourssid" -CIRCUITPY_WIFI_PASSWORD="yourpassword" -CIRCUITPY_TIMEZONE="America/New_York" -CIRCUITPY_AIO_USERNAME="youraiousername" -CIRCUITPY_AIO_KEY="youraiokey"