diff --git a/app/tryout/emojis.py b/app/tryout/emojis.py index 9f6ffec..8cc6f73 100644 --- a/app/tryout/emojis.py +++ b/app/tryout/emojis.py @@ -1,5 +1,4 @@ import app.utils.colors as colors -import app.display.fonts.fonts_utils as fonts_utils from app.display.emoji.emoji_8x8 import emoji_8x8 from app.display.emoji.emoji_16x16 import emoji_16x16 diff --git a/app/tryout/fonts.py b/app/tryout/fonts.py new file mode 100644 index 0000000..af41602 --- /dev/null +++ b/app/tryout/fonts.py @@ -0,0 +1,38 @@ +from app.display.fonts.fonts_utils import align_font, font_height +import app.utils.colors as colors + + +def font_pretty(font): + pretty_font = align_font(font) + print(pretty_font) + + +def fonts_check(display, font) -> None: + display.clear() + display.set_font(font) + + height = font_height(font) + + alphabet: str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + char_line_1 = alphabet[:11] + char_line_2 = alphabet[11:22] + char_line_3 = alphabet[21:] + num_line = '0123456789' + + row = 0 + incr = height + display.write_text(num_line, 0, row) + row += incr + display.write_text(char_line_1.upper(), 0, row, colors.YELLOW) + # row += incr + # display.write_text(char_line_2.upper(), 0, row, colors.YELLOW) + # row += incr + # display.write_text(char_line_3.upper(), 0, row, colors.YELLOW) + row += incr + display.write_text(char_line_1.lower(), 0, row, colors.YELLOW) + # row += incr + # display.write_text(char_line_2.lower(), 0, row, colors.YELLOW) + # row += incr + # display.write_text(char_line_3.lower(), 0, row, colors.YELLOW) + row += incr + display.write_text('!.,:;\'"-_+=*/\\()~°•', 0, row, colors.ORANGE) diff --git a/app/tryout/weather.py b/app/tryout/weather.py new file mode 100644 index 0000000..25b866a --- /dev/null +++ b/app/tryout/weather.py @@ -0,0 +1,45 @@ +from app.web.wlan import Wlan +import app.utils.colors as colors +from app.display.fonts.font_3x5 import font_3x5 +from app.display.fonts.font_5x7 import font_5x7 + + +def weather_check(display, test_mode: bool = False): + wlan = Wlan('WOKWI-Guest', '12345678') + + try: + display.clear() + display.write_text('search wlan', 0, 0, color=colors.WHITE) + + display.clear_row(0, effect=False) + + display.clear() + display.set_font(font_3x5) + display.write_text('wlan connected', 0, 0, color=colors.RAINBOW[0]) + display.write_text('querying', 0, 8, color=colors.RAINBOW[1]) + display.write_text('weather data', 0, 16, color=colors.RAINBOW[2]) + + w_resp = wlan.actual_weather(lang='en', test_mode=test_mode) + + display.clear() + + delta = 8 + ypos = 0 + display.write_text(f'{str(w_resp.location.name).upper()}', 0, ypos, color=colors.RAINBOW[0]) + display.set_font(font_5x7) + ypos += delta + display.write_text(f'{str(w_resp.current.temp_c)}°C', 0, ypos, color=colors.RAINBOW[1]) + ypos += delta + display.write_text(f'{str(w_resp.current.condition.text)}°C', 0, ypos, color=colors.RAINBOW[1]) + ypos += delta + display.write_text(f'upd:{str(w_resp.current.last_updated)[-5:]}', 0, ypos, color=colors.RAINBOW[2]) + ypos += delta + display.write_text(f'cur:{str(w_resp.location.localtime)[-5:]}', 0, ypos, color=colors.RAINBOW[3]) + + ypos += 3 * delta + display.write_text('ready.', 30, ypos, color=colors.WHITE) + + except OSError as e: + print(f'Error: connection closed - {e}') + finally: + print('finally done.') diff --git a/main.py b/main.py index d02fffc..e30a0c0 100644 --- a/main.py +++ b/main.py @@ -1,126 +1,23 @@ # from machine import Pin, ADC # type: ignore from app.display.fonts.font_3x5 import font_3x5 from app.display.fonts.font_5x7 import font_5x7 -from app.display.fonts.fonts_utils import align_font, font_height from app.display.neopixel_64x64 import NeoPixel_64x64 -from app.utils.colors import BLUE, GREEN, ORANGE, RAINBOW, RED, WHITE, YELLOW, GOLD +import app.utils.colors as colors from app.utils.system_load import show_system_load import app.utils.utils as utils import app.display.fonts.fonts_utils as fonts_utils from app.tryout.emojis import emojis_check +from app.tryout.fonts import fonts_check, font_pretty +from app.tryout.weather import weather_check -from app.web.wlan import Wlan - -from app.display.emoji.emoji_8x8 import emoji_8x8 -from app.display.emoji.emoji_16x16 import emoji_16x16 -from app.display.fonts.font_8x8 import font_8x8 from app.display.fonts.font_16x16 import font_16x16 display = NeoPixel_64x64() -def weather_check(test_mode: bool = False): - wlan = Wlan('WOKWI-Guest', '12345678') - - try: - display.clear() - display.write_text('search wlan', 0, 0, color=WHITE) - - display.clear_row(0, effect=False) - - display.clear() - display.set_font(font_3x5) - display.write_text('wlan connected', 0, 0, color=RAINBOW[0]) - display.write_text('querying', 0, 8, color=RAINBOW[1]) - display.write_text('weather data', 0, 16, color=RAINBOW[2]) - - w_resp = wlan.actual_weather(lang='en', test_mode=test_mode) - - display.clear() - - delta = 8 - ypos = 0 - display.write_text(f'{str(w_resp.location.name).upper()}', 0, ypos, color=RAINBOW[0]) - display.set_font(font_5x7) - ypos += delta - display.write_text(f'{str(w_resp.current.temp_c)}°C', 0, ypos, color=RAINBOW[1]) - ypos += delta - display.write_text(f'{str(w_resp.current.condition.text)}°C', 0, ypos, color=RAINBOW[1]) - ypos += delta - display.write_text(f'upd:{str(w_resp.current.last_updated)[-5:]}', 0, ypos, color=RAINBOW[2]) - ypos += delta - display.write_text(f'cur:{str(w_resp.location.localtime)[-5:]}', 0, ypos, color=RAINBOW[3]) - - ypos += 3 * delta - display.write_text('ready.', 30, ypos, color=WHITE) - - except OSError as e: - print(f'Error: connection closed - {e}') - finally: - print('finally done.') - - -def font_test(font) -> None: - display.set_font(font) - - height = font_height(font) - - alphabet: str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - char_line_1 = alphabet[:11] - char_line_2 = alphabet[11:22] - char_line_3 = alphabet[21:] - num_line = '0123456789' - - row = 0 - incr = height - display.write_text(num_line, 0, row) - row += incr - display.write_text(char_line_1.upper(), 0, row, YELLOW) - # row += incr - # display.write_text(char_line_2.upper(), 0, row, YELLOW) - # row += incr - # display.write_text(char_line_3.upper(), 0, row, YELLOW) - row += incr - display.write_text(char_line_1.lower(), 0, row, YELLOW) - # row += incr - # display.write_text(char_line_2.lower(), 0, row, YELLOW) - # row += incr - # display.write_text(char_line_3.lower(), 0, row, YELLOW) - row += incr - display.write_text('!.,:;\'"-_+=*/\\()~°•', 0, row, ORANGE) - - -def font_pretty(font): - pretty_font = align_font(font) - print(pretty_font) - - -def bit_arrays(): - display.set_font(font_3x5) - # c = 'A' - # print(c) - # [print(utils.number_to_bitarray_msb(num)) for num in font_5x7[c]] - char_row = '1' - [display.write_text(c, 0, idx, YELLOW) for idx, c in enumerate(char_row)] - - fonts_utils.shift_letter_right(char_row, font_5x7[char_row]) - - # display.write_text(char_row, 0, len(char_row), ORANGE) - # display.write_text('Kiel', 0, 7, BLUE) - - -# c = 'I' -# print(c) -# [print(number_to_bitarray_msb(num)) for num in font_5x7[c]] -# c = 'J' -# print(c) -# [print(number_to_bitarray_msb(num)) for num in font_5x7[c]] - - if __name__ == '__main__': - emojis_check(display) -# font_test(font_16x16) -# bit_arrays() -# show_system_load() -font_pretty(emoji_16x16) -# weather_check(test_mode=True) + # emojis_check(display) + # fonts_check(display, font_16x16) + # font_pretty(font_16x16) + weather_check(display, test_mode=True) + show_system_load()