Zwei Waagen pro Messknoten - Verkabelung

Hallo zusammen,
ich habe gesehen, dass es grundsätzlich schon möglich ist, dass zwei Waagen pro Messknoten ausgelesen werden.

Meine Frage ist nun, wie die Verkabelung dafür aussieht. Ich benutze die BOB-HAT V5a Platine mit einem Lopy4. Da die HX711 nicht per I2C kommunizieren denke ich mir, dass ich nicht die gleichen Pins (P21 und P22) nutzen kann sondern zwei andere freie Pins nehmen muss, richtig? Gibt es dabei an die Pins noch weitere Anforderungen oder reichen einfach zwei normale I/O-Pins? Hat das hier schon jemand gemacht und beschrieben? Leider konnte ich hier nichts weiter finden zur Verkabelung bei diesem Setup außer den oben verlinkten Beitrag.

VG,
Jan

Moin Jan,
Ich kann bestätigen daß das möglich ist. Hatte schon ein Testsetup am laufen. Mit den Hx711 liegst Du mir deiner Annahme genau richtig. Du brauchst also noch 2 zusätzliche Pins (z.B. von den ungenutzten Tastern.)
2 x BME sind auch möglich, dazu musst du aber einen davon an den lötbrücken der BME umadressieren.
Und von den DS18b20 kannst du auch noch weitere an den 1Wire Bus hängen.
Ich suche Macher Mal den Beitrag dazu raus. Soweit ich mich entsinne habe ich aber nicht viel dazu geschrieben, außer, das es geht.

Gruß Micha

Edit: Anzeige der Daten auf einem e-Paper Display - #30 by MKO
Hier meine zusätzlich verwendeten Pins.
Kontinuierliche Verbesserungen des Terkin-Datenloggers (600er) - #101 by MKO

Dieses ist allerdings nur mit der Terkin und nicht mit der Bob Firmware möglich. Die Terkin Firmware unterstützt es auch nur, die Daten von einer der beiden Waagen zum Bob-Hiverize Server zu übertragen (es fehlt noch ein 2ter Sensorkey). Zum swarm.hiveeyes.org Server werden aber alle Daten übertragen.

Prinzipiell kann man mehrere Waagen an einem FiPy oder LoPy betreiben. Die Hardware der Platine BOB-HAT-Vx ist aber nur für einen HX711 ausgelegt, an dessen Port A+ und A- man eine Wägezelle anschliessen kann. Er hat aber noch die nicht benutzten Ports B+ und B- für eine zweite Wägezelle. Da könnte man eine Klemmleiste ranbasteln. Das grössere Problem ist die Software. Ich habe den Port B vor Jahren mal mit der Arduino-IDE erfolgreich getestet, aber mir ist keine Pythonlibrary bekannt, die das zuverlässig macht. Deshalb muss man in der BOB-Software oder in Terkin ganz ordentlich programmieren und testen.
Beim BME280 am I2C-Bus ist es einfacher: man kann sie am Bus parallel anschliessen und braucht nur die Adresse korrekt einstellen ( per Löt-Jumper )
Beim DS18B20 ist es noch einfacher: jeder hat eine eindeutige ID und die Software scannt und erkennt alle angeschlossenen Sensoren. Bei mir hat das mit bis zu 15 mal DS18B20 funktioniert.

Fazit: 2 Waagen an BOB-HAT-Vx sind nur mit Hardware- und Software-Bastelei möglich.

gut, die Hardwarebastelei hält sich in Grenzen. Sind 4 zusätzlich angelötet Leitungen.

Softwareseitug ist bei der Terkin zumindest fast alles da.
@Andreas wie groß schätzt du den Aufwand, das mehrere Keys und Sensor-Mappungs einbindet werden können.
Oder ist das vielleicht bereits möglich?
Ist ja im Endeffekt der Programiersyle in dem die Terkin Firmware geschrieben ist.

Edit:
hab teile des Codes mal Überflogen.
Ein weiterer Server inkl. Sensorkey (target) sollte problemlos möglich sein. Es fehlt noch die Möglichkeit einer multiplen “sensor_telemetry_map” und die Zuordnung zu einzelnen “targets”

Das ist eigentlich ganz simpel und sogar schon im Terkin. Ich verwende das auch schon in meiner Waage, allerdings sind es da zwei Zellen pro Waage und die zwei Kanäle werden aufsummiert. Der B-Kanal hat aber nicht so eine dollige Auflösung. Tut aber.

Das ist der Codeschnippsel aus Terkin:

   if self.parameter['dualchannel']:   # read channel B
        self.loadcell.set_gain(32)      # switch to channel B
        self.loadcell.set_scale(self.parameter['scaleB'])
        self.loadcell.set_offset(self.parameter['offsetB'])
        readingB = self.loadcell.get_reading()
        self.loadcell.set_gain(self.parameter.get('gain', 128))      # switch everything back
        self.loadcell.set_scale(self.parameter['scale'])
        self.loadcell.set_offset(self.parameter['offset'])

Stellt man den Gain auf 32, wird der B-Kanal ausgewertet. Danach einfach wieder auf 128 und Kanal A auslesen.

Noch mal grundsätzlich für @Jan: Es gibt unterschiedliche Möglichkeiten zwei Waagen an einem Microcontroller zu betreiben:

Je nach verwendeter Methode unterscheidet sich dann auch die Verkabelung! ;-)

  • Bei einem HX711 teilen sich die beiden Wägezellen E+ und E-, dagegen verwendet man S-A+ und S-A- oder S-B+ und S-B- getrennt für die beiden Zellen
  • Bei zwei HX711 hatten ein paar Leute mal versucht SCK zu sharen, was afaik aber nicht geht, d.h. man braucht pro zusätzliche Wägezelle zwei zusätzliche pins.
2 Likes

Vielen Dank schon mal für die zahlreichen Antworten!

Ich bin auch schon fast soweit, dass ich ein Setup mit 2x HX711 in Kombination mit Terkin testen kann. Bis auf die kleine Anpassung am BOB-HAT V5a Board für die zwei freien Pins ist das ja schon recht straight forward.

So, ich bin jetzt soweit, mein Testsetup zu Hause liest zwei HX711 aus und schickt die Werte auch zu swarm.hiveeyes.org.

Die Nutzung der Taster-Pins hat allerdings nicht funktioniert. Im Log steht dann, dass der zweite HX711 nicht initialisiert werden kann. Meine Lösung war, dass ich die Pins vom OLED Display benutze. Ich nutze zur Zeit den I2C nicht, daher sind diese Pins ja eh frei. Könnte es sogar sein, dass die gleichzeitige Nutzung von I2C und HX711 auf den gleichen Pins funktioniert, wenn diese erst nacheinander angesprochen werden? Nur so eine Idee, das habe ich jetzt noch nicht näher untersucht, da es so ja erstmal klappt.