From fd9331a20f2362a6f53ff071ab81b50a32ec61bf Mon Sep 17 00:00:00 2001 From: ladyada Date: Sat, 23 Feb 2019 19:14:18 -0500 Subject: [PATCH 1/5] startup sound :D --- adafruit_pyportal.py | 6 ++++++ examples/pyportal_startup.wav | Bin 0 -> 86828 bytes 2 files changed, 6 insertions(+) create mode 100644 examples/pyportal_startup.wav diff --git a/adafruit_pyportal.py b/adafruit_pyportal.py index dd0a83d..7336126 100644 --- a/adafruit_pyportal.py +++ b/adafruit_pyportal.py @@ -220,6 +220,11 @@ def __init__(self, *, url=None, json_path=None, regexp_path=None, except OSError as error: print("No SD card found:", error) + try: + self.play_file("pyportal_startup.wav") + except OSError: + pass # they deleted the file, no biggie! + if self._debug: print("Init display") self.splash = displayio.Group(max_size=5) @@ -303,6 +308,7 @@ def __init__(self, *, url=None, json_path=None, regexp_path=None, # pylint: enable=no-member self.set_backlight(1.0) # turn on backlight + gc.collect() def set_background(self, filename): diff --git a/examples/pyportal_startup.wav b/examples/pyportal_startup.wav new file mode 100644 index 0000000000000000000000000000000000000000..e5cb311820e1fe7691d956d78b32a95a99845184 GIT binary patch literal 86828 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

jR8-caObX3BJXY{^t(-VcHoPP*)8jjVSb9km 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 Date: Sat, 23 Feb 2019 20:07:18 -0500 Subject: [PATCH 2/5] give a good warning experience if AP is not valid --- adafruit_pyportal.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/adafruit_pyportal.py b/adafruit_pyportal.py index 7336126..dccff5b 100644 --- a/adafruit_pyportal.py +++ b/adafruit_pyportal.py @@ -208,6 +208,7 @@ def __init__(self, *, url=None, json_path=None, regexp_path=None, raise RuntimeError("Was not able to find ESP32") requests.set_interface(self._esp) + self._connect_esp() if self._debug: print("Init SD Card") @@ -548,12 +549,22 @@ def wget(self, url, filename, *, chunk_size=12000): def _connect_esp(self): self.neo_status((0, 0, 100)) while not self._esp.is_connected: - if self._debug: - print("Connecting to AP") # secrets dictionary must contain 'ssid' and 'password' at a minimum + print("Connecting to AP", secrets['ssid']) + if secrets['ssid'] == 'CHANGE ME' or secrets['ssid'] == 'CHANGE ME': + print("*"*45) + print("Please update the 'secrets.py' file on your") + print("CIRCUITPY drive to include your local access") + print("point SSID name in 'ssid' and SSID password") + print("in 'password'. Then save to reload!") + print("*"*45) self.neo_status((100, 0, 0)) # red = not connected - self._esp.connect(secrets) - + try: + self._esp.connect(secrets) + except RuntimeError as error: + print("Cound not connect to internet", error) + print("Retrying in 3 seconds...") + time.sleep(3) def fetch(self): """Fetch data from the url we initialized with, perfom any parsing, and display text or graphics. This function does pretty much everything""" From af2e3f1bb407368dcb7c042840eeee2da8b04a82 Mon Sep 17 00:00:00 2001 From: ladyada Date: Sat, 23 Feb 2019 22:18:04 -0500 Subject: [PATCH 3/5] allowing setting a background color --- adafruit_pyportal.py | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/adafruit_pyportal.py b/adafruit_pyportal.py index dccff5b..88d1df8 100644 --- a/adafruit_pyportal.py +++ b/adafruit_pyportal.py @@ -107,7 +107,7 @@ class PyPortal: :param regexp_path: The list of regexp strings to get data out (use a single regexp group). Can be list of regexps for multiple data points. Defaults to ``None`` to not use regexp. - :param default_bg: The path to your default background image file. Defaults to ``None``. + :param default_bg: The path to your default background image file or a hex color. Defaults to 0x000000. :param status_neopixel: The pin for the status NeoPixel. Use ``board.NEOPIXEL`` for the on-board NeoPixel. Defaults to ``None``, no status LED :param str text_font: The path to your font file for your data text display. @@ -137,7 +137,7 @@ class PyPortal: """ # pylint: disable=too-many-instance-attributes, too-many-locals, too-many-branches, too-many-statements def __init__(self, *, url=None, json_path=None, regexp_path=None, - default_bg=None, status_neopixel=None, + default_bg=0x000000, status_neopixel=None, text_font=None, text_position=None, text_color=0x808080, text_wrap=False, text_maxlen=0, image_json_path=None, image_resize=None, image_position=None, @@ -312,32 +312,34 @@ def __init__(self, *, url=None, json_path=None, regexp_path=None, gc.collect() - def set_background(self, filename): + def set_background(self, file_or_color): """The background image to a bitmap file. - :param filename: The name of the chosen background image file. + :param file_or_color: The filename of the chosen background image, or a hex color. """ - print("Set background to ", filename) - try: + print("Set background to ", file_or_color) + while len(self._bg_group): self._bg_group.pop() - except IndexError: - pass # s'ok, we'll fix to test once we can - if not filename: + if not file_or_color: return # we're done, no background desired if self._bg_file: self._bg_file.close() - self._bg_file = open(filename, "rb") - background = displayio.OnDiskBitmap(self._bg_file) - try: + if isinstance(file_or_color, str): # its a filenme: + self._bg_file = open(file_or_color, "rb") + background = displayio.OnDiskBitmap(self._bg_file) self._bg_sprite = displayio.TileGrid(background, - pixel_shader=displayio.ColorConverter(), - position=(0, 0)) - except AttributeError: - self._bg_sprite = displayio.Sprite(background, pixel_shader=displayio.ColorConverter(), - position=(0, 0)) - + pixel_shader=displayio.ColorConverter(), + position=(0, 0)) + elif isinstance(file_or_color, int): + # Make a background color fill + color_bitmap = displayio.Bitmap(320, 240, 1) + color_palette = displayio.Palette(1) + color_palette[0] = file_or_color + self._bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, position=(0, 0)) + else: + raise RuntimeError("Unknown type of background") self._bg_group.append(self._bg_sprite) board.DISPLAY.refresh_soon() gc.collect() From abeda713b1f69597e721813b673ac3913ec51440 Mon Sep 17 00:00:00 2001 From: ladyada Date: Sat, 23 Feb 2019 22:33:15 -0500 Subject: [PATCH 4/5] lint --- adafruit_pyportal.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/adafruit_pyportal.py b/adafruit_pyportal.py index 88d1df8..6d53a3c 100644 --- a/adafruit_pyportal.py +++ b/adafruit_pyportal.py @@ -107,7 +107,8 @@ class PyPortal: :param regexp_path: The list of regexp strings to get data out (use a single regexp group). Can be list of regexps for multiple data points. Defaults to ``None`` to not use regexp. - :param default_bg: The path to your default background image file or a hex color. Defaults to 0x000000. + :param default_bg: The path to your default background image file or a hex color. + Defaults to 0x000000. :param status_neopixel: The pin for the status NeoPixel. Use ``board.NEOPIXEL`` for the on-board NeoPixel. Defaults to ``None``, no status LED :param str text_font: The path to your font file for your data text display. @@ -319,7 +320,7 @@ def set_background(self, file_or_color): """ print("Set background to ", file_or_color) - while len(self._bg_group): + while len(self._bg_group) != 0: self._bg_group.pop() if not file_or_color: @@ -330,14 +331,16 @@ def set_background(self, file_or_color): self._bg_file = open(file_or_color, "rb") background = displayio.OnDiskBitmap(self._bg_file) self._bg_sprite = displayio.TileGrid(background, - pixel_shader=displayio.ColorConverter(), - position=(0, 0)) + pixel_shader=displayio.ColorConverter(), + position=(0, 0)) elif isinstance(file_or_color, int): # Make a background color fill color_bitmap = displayio.Bitmap(320, 240, 1) color_palette = displayio.Palette(1) color_palette[0] = file_or_color - self._bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, position=(0, 0)) + self._bg_sprite = displayio.TileGrid(color_bitmap, + pixel_shader=color_palette, + position=(0, 0)) else: raise RuntimeError("Unknown type of background") self._bg_group.append(self._bg_sprite) From 6f73a6106bcc0e2dab4aeb963acbaadc734c901c Mon Sep 17 00:00:00 2001 From: ladyada Date: Mon, 25 Feb 2019 21:36:07 -0500 Subject: [PATCH 5/5] allow timezone secret --- adafruit_pyportal.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/adafruit_pyportal.py b/adafruit_pyportal.py index 6d53a3c..a751ed3 100644 --- a/adafruit_pyportal.py +++ b/adafruit_pyportal.py @@ -77,7 +77,7 @@ __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_PyPortal.git" # pylint: disable=line-too-long -IMAGE_CONVERTER_SERVICE = "http://res.cloudinary.com/schmarty/image/fetch/w_320,h_240,c_fill,f_bmp/" +IMAGE_CONVERTER_SERVICE = "https://res.cloudinary.com/schmarty/image/fetch/w_320,h_240,c_fill,f_bmp/" #IMAGE_CONVERTER_SERVICE = "http://ec2-107-23-37-170.compute-1.amazonaws.com/rx/ofmt_bmp,rz_320x240/" TIME_SERVICE_IPADDR = "http://worldtimeapi.org/api/ip" TIME_SERVICE_LOCATION = "http://worldtimeapi.org/api/timezone/" @@ -320,7 +320,7 @@ def set_background(self, file_or_color): """ print("Set background to ", file_or_color) - while len(self._bg_group) != 0: + while self._bg_group: self._bg_group.pop() if not file_or_color: @@ -461,8 +461,8 @@ def play_file(file_name): """ #self._speaker_enable.value = True - with audioio.AudioOut(board.AUDIO_OUT) as audio: - with open(file_name, "rb") as file: + with open(file_name, "rb") as file: + with audioio.AudioOut(board.AUDIO_OUT) as audio: with audioio.WaveFile(file) as wavefile: audio.play(wavefile) while audio.playing: @@ -487,17 +487,24 @@ def get_local_time(self, location=None): # pylint: enable=line-too-long self._connect_esp() api_url = None - if not location: - api_url = TIME_SERVICE_IPADDR - else: + if secrets['timezone']: + location = secrets['timezone'] + if location: + print("Getting time for timezone", location) api_url = TIME_SERVICE_LOCATION + location - response = requests.get(api_url) - time_json = response.json() - current_time = time_json['datetime'] - year_day = time_json['day_of_year'] - week_day = time_json['day_of_week'] - is_dst = time_json['dst'] + else: # we'll try to figure it out from the IP address + print("Getting time from IP address") + api_url = TIME_SERVICE_IPADDR + try: + response = requests.get(api_url) + time_json = response.json() + current_time = time_json['datetime'] + year_day = time_json['day_of_year'] + week_day = time_json['day_of_week'] + is_dst = time_json['dst'] + except KeyError: + raise KeyError("Was unable to lookup the time, try setting secrets['timezone'] according to http://worldtimeapi.org/timezones") # pylint: disable=line-too-long the_date, the_time = current_time.split('T') year, month, mday = [int(x) for x in the_date.split('-')] the_time = the_time.split('.')[0] @@ -741,7 +748,8 @@ def show_QR(self, qr_data, qr_size=128, position=None): # pylint: disable=inval for b in range(BLOCK_SIZE): # load this line of data in, as many time as block size - qr_bitmap._load_row(Y_OFFSET + y*BLOCK_SIZE+b, line) # pylint: disable=protected-access + for i, byte in enumerate(line): + qr_bitmap[Y_OFFSET + y*BLOCK_SIZE+b + i] = byte # pylint: enable=invalid-name # display the bitmap using our palette