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 in Verbindung mit einem Raspberry Pi.

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.

Anmerkung vom 17.11.2024: Dieser Beitrag bezieht sich nicht auf die neueste Version des Raspberry-Betriebssystems. Beim Einsatz bitte im Vorfeld prüfen, ob die Bibliotheken noch laufen. An den Anschlüssen sollte sich aber nichts ändern.

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 ersten Experimenten konnte eine überraschend gute Linearität auch beim Einsatz 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.

Es schein allerdings möglich, auch Waagen mit Wägezellen wie in preiswerten Personenwaagen so zu bauen, dass die Temperatur einen nur geringen Einfluss auf das Wiegeergebnis hat. Der Hersteller BeeConn verwendet solche Zellen, im Winter 2023 konnte ich ein Exemplar, das der Hersteller zur Verfügung gestellt hat, ausgiebig testen.

Im Projekt Steel4Bees (http://steel4bees.de, Entwicklung und Marktvorbereitung einer innovativen preisgünstigen Trachtwaage) werden für die MIni-Plus-Waage voraussichtlich auch die preisgünstigen Wägezellen eingesetzt. Inwieweit die neue Gehäuseform eine Temperaturkompensation erübrigt, muss sich in Labormessungen noch herausstellen.

Alternativen zum Betrieb des Raspberry Pi mit dem HX711 Modul

Seit der ersten Version dieses Beitrages  hat sich der „Markt“ für Microcontroller stark vergrößert. Von der Raspberry Pi Foundation ist ein Microcontoller auf Basis des Prozessors RP4020 hinzugekommen. Viele Projekte werden alternativ mit dem ESP8266 oder dem etwas leistungsstärkeren ESP32 realisiert. Auch für den Arduino, der auf dem Controller Atmega328P basiert, gibt es viele gute Anleitungen, wie man eine Waage mit dem HX711 Modul bauen könnte.

Will man preiswert eine internet-fähige Waage bauen, so bietet sich der Microcontroller ESP-D1-mini besonders an. Der ESP-D1-mini basiert auf dem ESP-8266 Controller, die Anschlüsse (GPIO) sind über Steckleisten so herausgeführt, dass alles auf einem kleinen Breadboard (Steckbrett für Elektronikschaltungen) Platz hat.

Anhang

weitere Quellen

Eine gute Quelle ist immer beelogger.

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

Hier geht es zum unboxing-Beitrag über die BeeConn-Trachtwaage: unboxing Bienenstockwaage BeeConn

Zum Vergleich geht es hier zum Beitrag über die beehivemonitoring-Stockwaage: unboxing Bienenstockwage xs Gateway 2G Solar beehivemonitoring

Glossar

HX711 Modul

Das HX711 Modul ist eine kleine Breakout-Platine, wie es möglich macht, eine analoge Widerstandsbrückenschaltung an die digitalen Eingänge eines Microcontrollers wie dem ESP8266 oder einem Klaiencomputer wie dem Raspberry Pi anzuschließen. Dazu beinhaltet der Chip HX711 einen Differenzverstärker, eine Steuerung, um den Strom durch die Brückenschaltung ein- und auszuschalten, und eine Regelschaltung, um die Spannung konstant zu halten. An einen Microcontroller wird das HX711-Modul mit GND, einer Datenleitung und einer Taktleitung angeschlossen. Die Auflösung des Moduls beträgt 24 Bit. Der HX711 A/D Wandler kann mit 2.6V bis 5.5V betrieben werden und benötigt weniger als 3mA, damit kann das Modul z.B an einen GPIO eines Microcontrollers angeschlossen werden.

Mikrocontroller

Mikrocontroller sind leistungsfähige, kompakte, programmierbare hochintegrierte digitale Schaltungen. Microcontroller enthalten einen Prozessor und alle benötigten Bausteine wie Speicher, Zeitgeber, digitale / analoge Ein- und Ausgabegeräte, usw. Alle Komponenten sind dabei auf einem Chip, deshalb bezeichnet man den Mikrocontroller auch als Ein-Chip-Mikrorechner (SoC). Beispiele für Microcontroller sind ESP8266, ESP32, Atmega328, Attiny84 (ein besonders einfacher und stromsparender Microcontroller), Raspberry Pico mit dem RP2040.

Ein Mikrocontroller hat folgende typische Eigenschaften: Er besitzt einen Programmspeicher (früher ROM, EPROM, EEPROM, heute FLASH) und einen Datenspeicher (RAM), eine Verarbeitungseinheit (CPU), (viele) digitale Eingabe- / Ausgabe- Ports (GPIO), oft analoge Eingabeports (ADC), einen oder mehrere Zeitgeber, Kommunikationsbausteine (COM, UART,…), manchmal auch spezielle Bausteine für besondere Aufgaben,  z.B. LCD-Treiber.

Microcontroller werden mit einer speziellen abgespeckten Python Variante oder mit einer C-ähnlichen Sprache mit der Arduino-IDE programmiert.

Raspberry Pi

Raspberry Pi ist der Name einer Reihe von Einplatinencomputern, die von der Raspberry Pi Foundation hergestellt werden. Die Raspberry Pi Foundationeiner ist eine britischen Wohlfahrtsorganisation, die sich zum Ziel gesetzt hat, Menschen den Umgang mit Computern und den Zugang zur Computerausbildung zu erleichtern. Insbesondere Schulen, auch in Entwicklungsländern, setzen auf den Raspberry Pi als „Einsteigercomputer“.

Der Raspberry Pi kam 2012 auf den Markt und wurde seitdem in mehreren Versionen und Varianten veröffentlicht. Der ursprüngliche Pi hatte eine Single-Core-CPU mit 700 MHz und nur 256 MB RAM. Das neuere Modell hat eine Quad-Core-CPU mit über 1,5 GHz und 4 GB RAM. Der Preis für z. B. den  Raspberry Pi Zero liegt bei unter 15€. Der Raspberry Pi ist somit ein sehr preiswerter Computer.

Auf dem Raspberry läuft ein speziell angepasstes Linux. Er bietet auch eine Reihe von digitalen Anschlüssen zum Experimentieren, die GPIO-Pins (General Purpose Input/Output). Damin können Sie elektronische Komponenten für Physical Computing steuern und das Internet der Dinge (IoT) erkunden.

Die Standard-Programmiersprache für Experimente mit dem Raspberry Pi ist Phyton.

 

Teile diesen Beitrag.