Skip to main content

HX711 class to sample 24-bit ADCs with Python 3 on a Raspberry Pi Rasperry Pi Zero, 2 or 3

Project description

hx711-multi

HX711 class to sample 24-bit ADCs with Python 3 on a Raspberry Pi Rasperry Pi Zero, 2 or 3

Description

This library allows to configure and read from one or multiple HX711 load cells with a Raspberry Pi. It was developed and tested in Python 3.8 on Raspberry Pi 4B with Raspberry Pi OS Lite v5.10.

Capabilities:

  • Configure Raspberry Pi digital pins for reading measurements
  • Configure Raspberry Pi SCK pin, or clock pin, used for configuring channel and triggering measurements
  • Configure Channel (A | B)
  • Configure Channel A Gain (128 | 64)
  • Power down load cell
  • Power up load cell
  • Zero load cell at start
  • Configure individual weight multiples for calibration of each scale to real-world weight
  • Read raw measurements from load cells
  • Read weight measurements from load cells

This package requires RPi.GPIO to be installed in Python 3.

Hardware

Documentation is included in Docs folder. Default rate of HX711 is 10Hz, unless you wire the digital power (DVDD) to the RATE pin (15), at which point you can sample at 80Hz. I've included a picture of this wiring if desired.

Getting started

Install with pip3 install hx711_multi

Basic usage example:

    #!/usr/bin/env python3

    import RPi.GPIO as GPIO  # import GPIO
    from hx711_multi_ import HX711
    from time import sleep, perf_counter

    #init GPIO (should be done outside HX711 module in case you are using other GPIO functionality)
    GPIO.setmode(GPIO.BCM)  # set GPIO pin mode to BCM numbering

    dout_pins = [13,21,16,26,19]
    sck_pin = 20
    weight_multiples = [4489.80, 4458.90, 4392.80, 1, -5177.15]

    hx711 = HX711(dout_pins=dout_pins, sck_pin=sck_pin, all_or_nothing=False, log_level='CRITICAL')  # create an object
    hx711.power_down()
    hx711.power_up()
    hx711.zero()
    hx711.set_weight_multiples(weight_multiples=weight_multiples)

    # read until keyboard interrupt
    try:
        while True:
            start = perf_counter()
            raw_vals = hx711.read_raw(readings_to_average=5)
            weights = hx711.read_weight(use_prev_read=True)
            read_duration = perf_counter() - start
            print('\nread duration: {:.3f} seconds'.format(read_duration))
            print('raw', ['{:.3f}'.format(x) if x is not None else None for x in raw_vals])
            print(' wt', ['{:.3f}'.format(x) if x is not None else None for x in weights])
    except KeyboardInterrupt:
        print('Keyboard interrupt..')
    except Exception as e:
        print(e)

    # cleanup GPIO
    GPIO.cleanup()

Author

License

  • Free software: MIT license

Credits

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

hx711_multi-1.0.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

hx711_multi-1.0.1-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file hx711_multi-1.0.1.tar.gz.

File metadata

  • Download URL: hx711_multi-1.0.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.5

File hashes

Hashes for hx711_multi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c3ff04201a8367806f67da5b8314d0c3dd7f9e15b4cd9c3af871b297946a43be
MD5 cd3a151548b1bbb4de54c7f5c1285c8a
BLAKE2b-256 7653d3728d708555bc0245f4c73c895d2d105488d75931d057c2401fb20798e1

See more details on using hashes here.

File details

Details for the file hx711_multi-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: hx711_multi-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.5

File hashes

Hashes for hx711_multi-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0728ce74f09aeeceaa61c3e9f147b22ef4d637e949d131bb810bb783e8742540
MD5 bf82fb67b1204ff2c38c851c39a78e92
BLAKE2b-256 94c24b14d90241e5b3517be623af7baccccbde3ed43e46bbc52e5717b655a5e2

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