Add I75 placekitten example
This commit is contained in:
parent
3bc0f019b2
commit
740aa14cac
|
@ -0,0 +1,73 @@
|
||||||
|
import WIFI_CONFIG
|
||||||
|
from network_manager import NetworkManager
|
||||||
|
import uasyncio
|
||||||
|
from urllib import urequest
|
||||||
|
from interstate75 import Interstate75, DISPLAY_INTERSTATE75_128X64
|
||||||
|
import jpegdec
|
||||||
|
import random
|
||||||
|
|
||||||
|
"""
|
||||||
|
Grab a random image from PlaceKitten.com
|
||||||
|
and display it on Interstate 75 W.
|
||||||
|
"""
|
||||||
|
|
||||||
|
i75 = Interstate75(display=DISPLAY_INTERSTATE75_128X64)
|
||||||
|
graphics = i75.display
|
||||||
|
|
||||||
|
WIDTH = i75.width
|
||||||
|
HEIGHT = i75.height
|
||||||
|
FILENAME = "placekitten.jpg"
|
||||||
|
ENDPOINT = "http://placekitten.com/{0}/{1}"
|
||||||
|
|
||||||
|
# some colours to draw with
|
||||||
|
WHITE = graphics.create_pen(255, 255, 255)
|
||||||
|
BLACK = graphics.create_pen(0, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
|
def status_handler(mode, status, ip):
|
||||||
|
graphics.set_font("bitmap8")
|
||||||
|
graphics.set_pen(BLACK)
|
||||||
|
graphics.clear()
|
||||||
|
graphics.set_pen(WHITE)
|
||||||
|
graphics.text("Network: {}".format(WIFI_CONFIG.SSID), 2, 2, scale=1)
|
||||||
|
status_text = "Connecting..."
|
||||||
|
if status is not None:
|
||||||
|
if status:
|
||||||
|
status_text = "Connection successful!"
|
||||||
|
else:
|
||||||
|
status_text = "Connection failed!"
|
||||||
|
|
||||||
|
graphics.text(status_text, 2, 12, scale=1)
|
||||||
|
graphics.text("IP: {}".format(ip), 2, 22, scale=1)
|
||||||
|
i75.update(graphics)
|
||||||
|
|
||||||
|
|
||||||
|
# connect to wifi
|
||||||
|
network_manager = NetworkManager(WIFI_CONFIG.COUNTRY, status_handler=status_handler)
|
||||||
|
uasyncio.get_event_loop().run_until_complete(network_manager.client(WIFI_CONFIG.SSID, WIFI_CONFIG.PSK))
|
||||||
|
|
||||||
|
url = ENDPOINT.format(WIDTH, HEIGHT + random.randint(0, 10))
|
||||||
|
print("Requesting URL: {}".format(url))
|
||||||
|
socket = urequest.urlopen(url)
|
||||||
|
|
||||||
|
# Load the image data into RAM (if you have enough!)
|
||||||
|
data = bytearray(1024 * 10)
|
||||||
|
socket.readinto(data)
|
||||||
|
socket.close()
|
||||||
|
|
||||||
|
# draw the image
|
||||||
|
jpeg = jpegdec.JPEG(graphics)
|
||||||
|
jpeg.open_RAM(data)
|
||||||
|
jpeg.decode(0, 0)
|
||||||
|
|
||||||
|
"""
|
||||||
|
# draw a box with the URL - only really works on looooong displays
|
||||||
|
graphics.set_pen(BLACK)
|
||||||
|
graphics.rectangle(0, HEIGHT - 7, WIDTH, 7)
|
||||||
|
graphics.set_font("bitmap6")
|
||||||
|
graphics.set_pen(WHITE)
|
||||||
|
graphics.text(url, 1, HEIGHT - 7, scale=1)
|
||||||
|
"""
|
||||||
|
|
||||||
|
# update the display
|
||||||
|
i75.update(graphics)
|
Loading…
Reference in New Issue