74 lines
1.7 KiB
Python
74 lines
1.7 KiB
Python
import WIFI_CONFIG
|
|
from network_manager import NetworkManager
|
|
import time
|
|
import uasyncio
|
|
import ujson
|
|
from urllib import urequest
|
|
from picographics import PicoGraphics, DISPLAY_INKY_PACK
|
|
from pimoroni import Button
|
|
|
|
|
|
"""
|
|
Simple demo to get a random activity from BoredAPI.com
|
|
"""
|
|
|
|
|
|
button_a = Button(12)
|
|
button_b = Button(13)
|
|
button_c = Button(14)
|
|
|
|
graphics = PicoGraphics(DISPLAY_INKY_PACK)
|
|
graphics.set_font("bitmap8")
|
|
|
|
WIDTH, HEIGHT = graphics.get_bounds()
|
|
ENDPOINT = "https://www.boredapi.com/api/activity"
|
|
|
|
|
|
def status_handler(mode, status, ip):
|
|
graphics.set_update_speed(2)
|
|
graphics.set_pen(15)
|
|
graphics.clear()
|
|
graphics.set_pen(0)
|
|
graphics.text("Network: {}".format(WIFI_CONFIG.SSID), 10, 10, scale=2)
|
|
status_text = "Connecting..."
|
|
if status is not None:
|
|
if status:
|
|
status_text = "Connection successful!"
|
|
else:
|
|
status_text = "Connection failed!"
|
|
|
|
graphics.text(status_text, 10, 30, scale=2)
|
|
graphics.text("IP: {}".format(ip), 10, 60, scale=2)
|
|
graphics.update()
|
|
|
|
|
|
network_manager = NetworkManager(WIFI_CONFIG.COUNTRY, status_handler=status_handler)
|
|
|
|
|
|
def update():
|
|
uasyncio.get_event_loop().run_until_complete(network_manager.client(WIFI_CONFIG.SSID, WIFI_CONFIG.PSK))
|
|
|
|
url = ENDPOINT
|
|
print("Requesting URL: {}".format(url))
|
|
j = ujson.load(urequest.urlopen(url))
|
|
|
|
print(j)
|
|
|
|
graphics.set_update_speed(1)
|
|
graphics.set_pen(15)
|
|
graphics.clear()
|
|
graphics.set_pen(0)
|
|
graphics.text(j["activity"], 10, 10, wordwrap=WIDTH - 20, scale=2)
|
|
graphics.text(j["type"], 10, 108, scale=2)
|
|
|
|
graphics.update()
|
|
|
|
|
|
# Run continuously.
|
|
# Be friendly to the API you're using!
|
|
while True:
|
|
update()
|
|
|
|
while not button_a.is_pressed:
|
|
time.sleep(0.1)
|