55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
"""
|
|
'digital_out.py'
|
|
===================================
|
|
Example of turning on and off a LED
|
|
from the Adafruit IO Python Client
|
|
|
|
Author(s): Brent Rubell, Todd Treece
|
|
"""
|
|
# Import standard python modules
|
|
import time
|
|
|
|
# import Adafruit Blinka
|
|
import digitalio
|
|
import board
|
|
|
|
# import Adafruit IO REST client.
|
|
from Adafruit_IO import Client, Feed, RequestError
|
|
|
|
# Set to your Adafruit IO key.
|
|
# Remember, your key is a secret,
|
|
# so make sure not to publish it when you publish this code!
|
|
ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY'
|
|
|
|
# Set to your Adafruit IO username.
|
|
# (go to https://accounts.adafruit.com to find your username)
|
|
ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'
|
|
|
|
# Create an instance of the REST client.
|
|
aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY)
|
|
|
|
try: # if we have a 'digital' feed
|
|
digital = aio.feeds('digital')
|
|
except RequestError: # create a digital feed
|
|
feed = Feed(name="digital")
|
|
digital = aio.create_feed(feed)
|
|
|
|
# led set up
|
|
led = digitalio.DigitalInOut(board.D5)
|
|
led.direction = digitalio.Direction.OUTPUT
|
|
|
|
|
|
while True:
|
|
try:
|
|
data = aio.receive(digital.key)
|
|
except RequestError as re:
|
|
pass # feed with no data will return 404
|
|
if int(data.value) == 1:
|
|
print('received <- ON\n')
|
|
elif int(data.value) == 0:
|
|
print('received <- OFF\n')
|
|
|
|
# set the LED to the feed value
|
|
led.value = int(data.value)
|
|
# timeout so we dont flood adafruit-io with requests
|
|
time.sleep(0.5)
|