HX711 Modul für Wägezellen an Raspberry Pi anschließen und einrichten

Der Raspberry Pi als Waage z.B. für Bienenstöcke – das geht zumindest im Prinzip mit preiswerten Wägezellen und einem preiswerten AD-Wandler wie dem HX711 Modul. Der Beitrag beschreibt die Einrichtung und Programmierung des HX711.

Zur Übersicht über die Raspberry Pi Projekte

Zum Wägezellen-Beitrag (billige Einfachzellen aus Personenwaagen und deren Beschaltung). Hier geht es um das Zusammenschalten mehrerer Halbbrücken (1, 2 oder 4) zu einer Vollbrücke.

 

Anschließen des HX711 Moduls

Ein HX711-Modul auf der einen Seite Anschlüsse für den Raspberry Pi (VCC, DND, SCK und DATA). An VCC sollte eine stabile Spannung zwischen 2,7 und 5,5 Volt anliegen, bei einer geringen Stromaufnahme von 1,5 mA bietet sich der geregelte 3,3 V Anschluss des Raspberry Pi an. Auf der anderen Seite hat das HX711-Modul die analogen Anschlüsse für die Wägezelle(n), die mit Dehnungsmessstreifen in Brückenschaltung und in Halbbrückenschaltung bestückt sind.  An den meist mit E+ und E- bezeichneten Anschlüssen kommt die Versorgung der Brückenschaltung. An die Anschlüsse A+ und A- (manchmal auch S+ und S-) kommen die Ausgänge der Messbrücke. Das Modul hat an diesen Eingängen eine hohe Differenzverstärkung von 128 oder 64. Es gibt bei einigen Modulen auch Anschlüsse, die mit B+ und B- bezeichnet sind und die eine Differenzverstärkung von 32 haben.

Eine Beschaltung mit zwei Halbbrücken für Personenwaagen kann z.B. wie in Abb. 1 aussehen.

— Abbildung wird noch erstellt

Abb. 1: Beschaltung zwei Halbbrücken, HX711 Modul und Raspberry Pi

Das Wägemodul kann z.B. über eine kleines Breadboard und Jumperkabel an den Raspberry angeschlossen werden.

+------------+------+-----+------+------+------+-----+
| Sensor     |      |GPIO |Pin   |Pin   |GPIO  |     |
+============+======+=====+======+======+======+=====+
|Spannungsv. |3,3V  |     |   1  |   2  |      |5V.  |
+------------+------+-----+------+------+------+-----+
+------------+------+-----+------+------+------+-----+
|Masse       |GND   |     |   9  |  10  |  15   |RXD |
+------------+------+-----+------+------+-------+----+
+------------+------+-----+------+------+-------+----+
|HX711 DT    |GPCLK1|  5  |  29  |  30  |       |GND |
+------------+------+-----+------+------+------------+
|HX711 SK.   |GPCLK2|  6  |  31  |  32  |  12   |PWM0|
+------------+------+-----+------+------+------------+

Abb. 2: Beschaltung der GPIO. Eine vollständige Übersicht der GPIO gibt es hier.

Über die Datenleitung DT und SK kommuniziert der Raspberry Pi mit dem Modul über ein serielles Protokoll. Durch die Einbindung einer Bibliothek fällt die Abfrage der Werte leicht.

Bibliothek für das HX711 Modul installieren

Mehrere Personen stellen über GitHub Bibliotheken für den HX711 bereit, z.B.

https://github.com/gandalf15/HX711/

https://github.com/tatobari/hx711py

Dieses Projekt arbeitet mit der Bibliothek von tatobari. Dazu klonen sie das Projekt auf den Raspberry (eine Beschreibung dazu finden Sie unter https://riptutorial.com/git/example/818/clone-a-repository) mit dem Aufruf

git clone https://github.com/tatobari/hx711py

Sie finden danach ein Verzeichnis hx711py. Wechseln Sie in das Verzeichnis und führen setup aus

cd hx711py

sudo python setup.py install

Mögliche Probleme bei der Installation mit git und setup

Die folgenden Probleme können, müssen aber nicht auftauchen.

  1. Der Aufruf von git schlägt fehl. In diesem Falle muss git über die Paketverwaltung apt installiert werden wie beschrieben unter https://linuxize.com/post/how-to-install-git-on-raspberry-pi/
  2. Die Setup-Routine liefert eine Fehlermeldung: RuntimeError: Python version >= 3.7 required. Zur Vermeidung können Sie Python 3 installieren mit

    sudo apt update
    sudo apt install python3
    sudo apt upgrade
    sudo apt install python3-pip
    pip3 install setuptools
  3. Der Aufruf von setup.py schlägt fehl. Das kann von der Historie des Raspberrys abhängen. Die Fehlerbehebung liegt dann in der Neuinstallation der setuptools beschrieben unter https://packaging.python.org/tutorials/installing-packages/

Daten mit Python abfragen

Nach dem Herunterladen und Installieren des Repositories können Sie es im Verzeichnis hx711py ausprobieren mit

python example.py

Wenn kein HX711 Modul angeschlossen ist, liefert das Programm Nullen, wenn ein HX711 Modul mit Wägezelle angeschlossen ist, Zahlen zwischen -300 und +300 im Falle, dass die Brücke einigermaßen ausgewogen ist. Sobald Sie eine Kraft auf die Wägezelle(n) ausüben, schnellen die Werte auf über 300.000 oder -300.000. Wenn Sie die negativen Zahlen nicht mögen, löten oder stecken Sie die Anschlüsse an A+ und A- um. Die o.g. Werte habe ich mit zwei zur Vollbrücke verschalteten preiswerten Wägemodule gemessen. Die Wägemodule trugen handschriftliche Notizen 1099 und 1098.

Die Zahlen sind nicht das Gewicht, sondern erst einmal nur 24 Bit Zahlen. Um mit der Wage etwas wiegen zu können, müssen Sie sie kalibrieren , je nach Qualität des Wägemoduls, auch noch temperaturkompensieren.

Waage kalibrieren

Das Kalibrieren funktioniert gut mit handelsüblichen Milchpackungen im Tetrapak, Die Milchpackungen wiegern etwa 1.018 g. Nach esten Experimenten konnte eine überraschend gute Linearität auch der billigen Wägezellen festgestellt werden.

Temperaturkompensation

Die Temperaturkompensation ist für „gute“ Wägezellen nicht erforderlich und für billige Personenwaagen-Zellen vermutlich nicht erreichbar. In Labortests haben sich Residuen von über 120g ergeben. Die Temperaturkompensation wird daher vorerst nicht weiter verfolgt.

weitere Quellen

Eine gute Quelle ist immer beelogger.

Auch beep.nl hat sich mittlerweile zu einem guten System entwickelt.

 

Teile diesen Beitrag.