-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added cheerlights example and closed request
- Loading branch information
1 parent
7326553
commit 657baf1
Showing
3 changed files
with
78 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
import time | ||
import network | ||
import requests | ||
from tiny_fx import TinyFX | ||
|
||
""" | ||
Obtain the current CheerLights colour from the internet and show it on TinyFX's RGB output. | ||
For more information about CheerLights, visit: https://cheerlights.com/ | ||
This example requires a secrets.py file to be on your board's file system with the credentials of your WiFi network. | ||
Press "Boot" to exit the program. | ||
""" | ||
|
||
try: | ||
from secrets import WIFI_SSID, WIFI_PASSWORD | ||
except ImportError: | ||
print("Create secrets.py with your WiFi credentials") | ||
raise | ||
|
||
|
||
# Constants | ||
COLOUR_NAMES = ("R", "G", "B") | ||
CONNECTION_INTERVAL = 1.0 # The time to sleep between each connection check | ||
REQUEST_INTERVAL = 5.0 # The time to sleep between each internet request | ||
|
||
# Variables | ||
tiny = TinyFX() # Create a new TinyFX object to interact with the board | ||
wlan = network.WLAN(network.STA_IF) # Create a new network object for interacting with WiFI | ||
|
||
|
||
# Wrap the code in a try block, to catch any exceptions (including KeyboardInterrupt) | ||
try: | ||
# Connect to WLAN | ||
wlan.active(True) | ||
wlan.connect(WIFI_SSID, WIFI_PASSWORD) | ||
|
||
# Wait until the connection is established | ||
while not wlan.isconnected(): | ||
print('Waiting for connection...') | ||
time.sleep(CONNECTION_INTERVAL) | ||
|
||
# Print out our IP address | ||
print(f'Connected on {wlan.ifconfig()[0]}') | ||
|
||
# Loop forever | ||
while True: | ||
# Get the current CheerLights colour from the internet | ||
req = requests.get("http://api.thingspeak.com/channels/1417/field/2/last.json") | ||
json = req.json() | ||
req.close() | ||
|
||
# Use the second to get the colour components for the RGB output | ||
colour = tuple(int(json['field2'][i:i + 2], 16) for i in (1, 3, 5)) | ||
|
||
# Set the colour output, and print the values | ||
tiny.rgb.set_rgb(*colour) | ||
for i in range(len(colour)): | ||
print(f"{COLOUR_NAMES[i]} = {colour[i]}", end=", ") | ||
|
||
print() | ||
|
||
time.sleep(REQUEST_INTERVAL) | ||
|
||
# Turn off all the outputs | ||
finally: | ||
tiny.shutdown() | ||
wlan.disconnect() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters