kopia lustrzana https://github.com/pimoroni/pimoroni-pico
Create cheer-lights.py
CheerLights MicroPython client. You will need the secrets file with your network details, in the same folder as cheerlights.py to run on start rename cheerlights.py to main.pypull/546/head
rodzic
db72276c1b
commit
b035a1f007
|
@ -0,0 +1,80 @@
|
||||||
|
# cheerlights
|
||||||
|
from time import sleep
|
||||||
|
from galactic import GalacticUnicorn
|
||||||
|
from picographics import PicoGraphics, DISPLAY_GALACTIC_UNICORN as DISPLAY
|
||||||
|
|
||||||
|
# setup graphics
|
||||||
|
|
||||||
|
gu = GalacticUnicorn()
|
||||||
|
graphics = PicoGraphics(DISPLAY)
|
||||||
|
|
||||||
|
width = GalacticUnicorn.WIDTH
|
||||||
|
height = GalacticUnicorn.HEIGHT
|
||||||
|
|
||||||
|
# fill display
|
||||||
|
|
||||||
|
def draw(colour):
|
||||||
|
|
||||||
|
for x in range(width):
|
||||||
|
|
||||||
|
for y in range(height):
|
||||||
|
graphics.set_pen(colour)
|
||||||
|
graphics.pixel(x, y)
|
||||||
|
|
||||||
|
gu.update(graphics)
|
||||||
|
|
||||||
|
|
||||||
|
#setup network connection
|
||||||
|
|
||||||
|
import network
|
||||||
|
|
||||||
|
try:
|
||||||
|
from secrets import WIFI_SSID, WIFI_PASS
|
||||||
|
except ImportError:
|
||||||
|
WIFI_SSID = None
|
||||||
|
WIFI_PASS = None
|
||||||
|
|
||||||
|
wlan = network.WLAN(network.STA_IF)
|
||||||
|
wlan.active(True)
|
||||||
|
wlan.connect(WIFI_SSID, WIFI_PASS)
|
||||||
|
|
||||||
|
# Wait for connect or fail
|
||||||
|
max_wait = 10
|
||||||
|
while max_wait > 0:
|
||||||
|
if wlan.status() < 0 or wlan.status() >= 3:
|
||||||
|
break
|
||||||
|
max_wait -= 1
|
||||||
|
print('waiting for connection...')
|
||||||
|
sleep(1)
|
||||||
|
|
||||||
|
# Handle connection error
|
||||||
|
if wlan.status() != 3:
|
||||||
|
raise RuntimeError('network connection failed')
|
||||||
|
else:
|
||||||
|
print('connected')
|
||||||
|
status = wlan.ifconfig()
|
||||||
|
print( f'ip = {status[0]}' )
|
||||||
|
|
||||||
|
|
||||||
|
# cheerlights
|
||||||
|
|
||||||
|
# cheerlights colours
|
||||||
|
|
||||||
|
colours = {b'red': graphics.create_pen(0xff, 0x00, 0x00), b'green': graphics.create_pen(0x00, 0x80, 0x00), b'blue': graphics.create_pen(0x00, 0x00, 0xff),
|
||||||
|
b'cyan': graphics.create_pen(0x00, 0xff, 0xff), b'white': graphics.create_pen(0xff, 0xff, 0xff), b'oldlace': graphics.create_pen(0xfd, 0xf5, 0xe6),
|
||||||
|
b'purple': graphics.create_pen(0x80, 0x00, 0x80), b'magenta': graphics.create_pen(0xff, 0x00, 0xff), b'yellow': graphics.create_pen(0xff, 0xff, 0x00),
|
||||||
|
b'orange': graphics.create_pen(0xff, 0xa5, 0x00), b'pink':graphics.create_pen(0xff, 0xc0, 0xcb)}
|
||||||
|
|
||||||
|
# get request
|
||||||
|
|
||||||
|
import urequests
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
r = urequests.get('http://api.thingspeak.com/channels/1417/field/1/last.txt')
|
||||||
|
print(f'Colour: {r.content}')
|
||||||
|
if r.content in colours:
|
||||||
|
draw(colours[r.content])
|
||||||
|
|
||||||
|
r.close()
|
||||||
|
sleep(15)
|
Ładowanie…
Reference in New Issue