Skip to main content

CircuitPython library for creating Adafruit IO dashboards.

Project description

Introduction

Documentation Status Discord Build Status Code Style: Ruff

CircuitPython library for creating Adafruit IO dashboards.

Dependencies

This driver depends on:

Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading the Adafruit library and driver bundle or individual libraries can be installed using circup.

Usage Example

import time
import board
from digitalio import DigitalInOut, Direction, Pull
import touchio
import wifi
import adafruit_connection_manager
import adafruit_minimqtt.adafruit_minimqtt as MQTT
from adafruit_io.adafruit_io import IO_MQTT
from adafruit_dash_display import Hub

up = DigitalInOut(board.BUTTON_UP)
up.direction = Direction.INPUT
up.pull = Pull.DOWN

select = DigitalInOut(board.BUTTON_SELECT)
select.direction = Direction.INPUT
select.pull = Pull.DOWN

down = DigitalInOut(board.BUTTON_DOWN)
down.direction = Direction.INPUT
down.pull = Pull.DOWN

back = touchio.TouchIn(board.CAP7)
submit = touchio.TouchIn(board.CAP8)

# Get WiFi details and Adafruit IO keys, ensure these are setup in settings.toml
# (visit io.adafruit.com if you need to create an account, or if you need your Adafruit IO key.)
ssid = getenv("CIRCUITPY_WIFI_SSID")
password = getenv("CIRCUITPY_WIFI_PASSWORD")
aio_username = getenv("ADAFRUIT_AIO_USERNAME")
aio_key = getenv("ADAFRUIT_AIO_KEY")

display = board.DISPLAY

print(f"Connecting to {ssid}")
wifi.radio.connect(ssid, password)
print(f"Connected to {ssid}!")

# Create a socket pool
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)

# Initialize a new MQTT Client object
mqtt_client = MQTT.MQTT(
    broker="io.adafruit.com",
    username=aio_username,
    password=aio_key,
    socket_pool=pool,
    ssl_context=ssl_context,
)

# Initialize an Adafruit IO MQTT Client
io = IO_MQTT(mqtt_client)


def pub_lamp(lamp):
    if type(lamp) == str:
        lamp = eval(lamp)
    iot.publish("lamp", str(not lamp))
    # funhouse.set_text(f"Lamp: {not lamp}", 0)
    time.sleep(0.3)


iot = Hub(display=display, io=io, nav=(up, select, down, back, submit))

iot.add_device(
    feed_key="lamp",
    default_text="Lamp: ",
    formatted_text="Lamp: {}",
    pub_method=pub_lamp,
)
iot.add_device(
    feed_key="temperature",
    default_text="Temperature: ",
    formatted_text="Temperature: {:.1f} C",
)
iot.add_device(
    feed_key="humidity", default_text="Humidity: ", formatted_text="Humidity: {:.2f}%"
)

iot.get()

while True:
    iot.loop()
    time.sleep(0.01)

Documentation

API documentation for this library can be found on Read the Docs.

For information on building library documentation, please check out this guide.

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adafruit_circuitpython_dash_display-3.0.7.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file adafruit_circuitpython_dash_display-3.0.7.tar.gz.

File metadata

File hashes

Hashes for adafruit_circuitpython_dash_display-3.0.7.tar.gz
Algorithm Hash digest
SHA256 6fa1ad24c63dbb2308c5e06dfae37f6154d673b19be64733989896b20632b482
MD5 ae4457338d82ac1282ddf067075868aa
BLAKE2b-256 fb7b39868dc41bb7ec411f6aba6a694304f916dd17403cb1714d09012006af4e

See more details on using hashes here.

File details

Details for the file adafruit_circuitpython_dash_display-3.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for adafruit_circuitpython_dash_display-3.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 cf29a32d17195e7ce20f8e0b5ad164d2ab4f55f8c7cdad49fd32b96feafc9903
MD5 49fff00fd54792506320b11521f099bd
BLAKE2b-256 b38d7d492b1f58b7b898ab69744acde5f7cac0a639408c2d82cb6526c0a6c69f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page