Skip to main content

A remote control and data acquisition system using Adafruit QT Py S3

Project description

QT Py Datalogger

qtpy-datalogger -- A remote control and data acquisition system using the Adafruit QT Py S3 and CircuitPython

Documentation

Available at downtothewire.io/qtpy-datalogger/welcome

Status

CI: Tests and Analyzers Dependabot Updates Publish: Release on PyPI

Structure

graph LR
    AP(🛜 Access Point)
    App(🐍 App)
    MQTT(📨 MQTT)
    QTPy(🐍 QT Py S3)

    subgraph "🌐 Network"
        AP
    end

    subgraph "💻 PC Host"
        App<-.->MQTT
        MQTT<-.->AP
    end

    subgraph "🧪 Test Zone"
        AP<-.->|🛜 WiFi|QTPy
    end

The PC host controls and communicates with any number of sensor nodes on the wireless network.

Preview in 90 seconds

  1. Connect your QT Py device with USB
    • (Optional) Back up its code.py file
  2. Preview the program in a deletable Python virtual environment
    # Create and enter a new Python virtual environment
    mkdir qtpy-preview
    cd qtpy-preview
    python -m venv --upgrade-deps .venv
    .\.venv\Scripts\activate.ps1
    
    # Install
    pip install qtpy-datalogger
    
    # Show the package help
    qtpy-datalogger --help
    
    # Search for devices
    qtpy-datalogger connect --discover-only
    
    # Install the sensor node runtime the device
    qtpy-datalogger equip
    
    # Open a serial connection, use Ctrl-] to quit
    qtpy-datalogger connect
    
    qtpycmd get_apps
    
    qtpycmd stats
    
    qtpycmd read A0 A1 A2 A3
    
    # Ctrl-] to quit
    
  3. Plot data in the Analog Plotter demo GUI app Screenshot of the Analog Plotter demo
  4. Optionally, delete the folder qtpy-preview when you are done

Note: This preview does not demonstrate MQTT communication over WiFi

In order to communicate on the WiFi network, the QT Py sensor node must also have

  • an MQTT broker
  • WiFi credentials

Visit the MQTT setup page for more details if you want to try the demo apps over the network.

Gallery

In addition to the command line tools, the qtpy-datalogger package includes these GUI apps.

Scanner

qtpy-datalogger run scanner

Scan for nodes by group. Select a node to send it messages.

Screenshot of the scanner app

Data Viewer

qtpy-datalogger run data-viewer

Open a CSV file for time series data.

Screenshot of the data viewer app

CSV format

  • Series data are in columns
  • Series names are in the first row
  • The time axis is in the first column
    • ISO timestamps and floating point values both accepted
Time,Sensor 1,Sensor 2
0.0,1.284,2.713
0.22,1.302,5.536
...

Supported systems

Supported Python versions

  • Host
    • Python 3.11
    • Python 3.12
    • Python 3.13
    • Python 3.14
  • Node
    • CircuitPython 9.x
    • CircuitPython 10.x

Supported host platforms

  • Windows

Supported connection types

  • Serial / UART
  • Network / MQTT

Entry points

Questions and help

Please go to the Welcome page for questions and help.

Contributing

This project manages its Python package with uv.

The environment setup instructions are on the Develop page.

The design documentation is in the wiki under the Design Doc pages.

Legacy system

This project replaces a legacy system that uses Python and JeeNodes.

See the summary and source code in the docs/legacy folder for details.

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

qtpy_datalogger-1.0.13.tar.gz (82.0 kB view details)

Uploaded Source

Built Distribution

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

qtpy_datalogger-1.0.13-py3-none-any.whl (98.2 kB view details)

Uploaded Python 3

File details

Details for the file qtpy_datalogger-1.0.13.tar.gz.

File metadata

  • Download URL: qtpy_datalogger-1.0.13.tar.gz
  • Upload date:
  • Size: 82.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for qtpy_datalogger-1.0.13.tar.gz
Algorithm Hash digest
SHA256 aa9647629ad1a79e9723ba7386627f9b20ea9ac44a87ec1ce2e200809c5ea065
MD5 83a4fe60fd1ff2a2527b13f346c9bdd0
BLAKE2b-256 ebcdfe5511ea1188dde7276fb34c21249268b02f0c16ecdb71b0d5bb3d8a974f

See more details on using hashes here.

Provenance

The following attestation bundles were made for qtpy_datalogger-1.0.13.tar.gz:

Publisher: publish.yml on wireddown/qtpy-datalogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qtpy_datalogger-1.0.13-py3-none-any.whl.

File metadata

File hashes

Hashes for qtpy_datalogger-1.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 02ae45fcedeb554612a6556e9e691a3f1f2fdd9512f62eb8b58ca456630cdea2
MD5 61faf15fd37e6635e80f5a10a1ad3ed2
BLAKE2b-256 14afa88f6bf2585d7ebb2af0a73d89928ea3dbd80a84da78fb2934fdd1c761bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for qtpy_datalogger-1.0.13-py3-none-any.whl:

Publisher: publish.yml on wireddown/qtpy-datalogger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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