From d21b70993af0c4e92838456c07df15e73fa62e24 Mon Sep 17 00:00:00 2001 From: brentru Date: Tue, 11 Jun 2019 10:32:35 -0400 Subject: [PATCH 1/2] add an externally defined rgbled status_led to _wifimanager --- adafruit_esp32spi/adafruit_esp32spi_wifimanager.py | 14 ++++++++++---- examples/esp32spi_aio_post.py | 9 ++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py index 9906847..7146693 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py +++ b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py @@ -42,8 +42,9 @@ def __init__(self, esp, secrets, status_pixel=None, attempts=2): """ :param ESP_SPIcontrol esp: The ESP object we are using :param dict secrets: The WiFi and Adafruit IO secrets dict (See examples) - :param status_pixel: (Optional) The pixel device - A NeoPixel or DotStar (default=None) - :type status_pixel: NeoPixel or DotStar + :param status_pixel: (Optional) The pixel device - A NeoPixel, DotStar, + or RGB LED (default=None) + :type status_pixel: NeoPixel, DotStar, or RGB LED :param int attempts: (Optional) Failed attempts before resetting the ESP32 (default=2) """ # Read the settings @@ -54,6 +55,9 @@ def __init__(self, esp, secrets, status_pixel=None, attempts=2): self.attempts = attempts requests.set_interface(self._esp) self.statuspix = status_pixel + self._is_rgb_led = False + if hasattr(self.statuspix, 'color'): + self._is_rgb_led = True self.pixel_status(0) def reset(self): @@ -214,13 +218,15 @@ def ip_address(self): def pixel_status(self, value): """ - Change Status NeoPixel if it was defined + Change Status NeoPixel/Dotstar/RGBLED if it was defined :param value: The value to set the Board's status LED to :type value: int or 3-value tuple """ - if self.statuspix: + if self.statuspix and not self._is_rgb_led: self.statuspix.fill(value) + else: + self.statuspix.color = value def signal_strength(self): """ diff --git a/examples/esp32spi_aio_post.py b/examples/esp32spi_aio_post.py index bdf395c..dfbf194 100644 --- a/examples/esp32spi_aio_post.py +++ b/examples/esp32spi_aio_post.py @@ -30,7 +30,14 @@ """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) +# status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) +# Uncomment below for an externally defined RGB LED +# 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 From aeae91ec1dcf18884d2d2560f6866741b7941d08 Mon Sep 17 00:00:00 2001 From: brentru Date: Tue, 11 Jun 2019 12:11:30 -0400 Subject: [PATCH 2/2] test the pixel attributes within pixel_status --- adafruit_esp32spi/adafruit_esp32spi_wifimanager.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py index 7146693..f0acae2 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py +++ b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py @@ -55,9 +55,6 @@ def __init__(self, esp, secrets, status_pixel=None, attempts=2): self.attempts = attempts requests.set_interface(self._esp) self.statuspix = status_pixel - self._is_rgb_led = False - if hasattr(self.statuspix, 'color'): - self._is_rgb_led = True self.pixel_status(0) def reset(self): @@ -218,15 +215,16 @@ def ip_address(self): def pixel_status(self, value): """ - Change Status NeoPixel/Dotstar/RGBLED if it was defined + Change Status Pixel if it was defined :param value: The value to set the Board's status LED to :type value: int or 3-value tuple """ - if self.statuspix and not self._is_rgb_led: - self.statuspix.fill(value) - else: - self.statuspix.color = value + if self.statuspix: + if hasattr(self.statuspix, 'color'): + self.statuspix.color = value + else: + self.statuspix.fill(value) def signal_strength(self): """