Forum: Mikrocontroller und Digitale Elektronik Serial to 1-Wire


von Max (Gast)


Lesenswert?

Hallo alle zusammen,

ich möchte eine Wägezelle auf einen 1-Wire Bus bringen, damit ich 
mehrere Wägen verbinden kann. Ich scheitere leider an der Elektronik. 
Besser gesagt, ich bin mir mit den Bauteilen nicht sicher... Könnte mir 
bitte jemand einen Tipp geben wie ich es am einfachsten schaffe?

Ich überlegte mir die Wägezelle an einem HX711 anzuschließen und diesen 
dann mit dem Chip DS2480B an den 1-Wire Bus. Allerdings bin ich nicht 
sicher ob der DS240B als Slave am 1-Wire funktionieren kann oder nur als 
Master. Denn bis jetzt habe ich immer nur Beschreibungen gefunden, wo 
dieser als Master verwendet wird. Bei mir müsste er aber als Slave 
fungieren, da ich die Wägezelle an der Seriellen Seite anschließen würde 
und die Steuerung am 1-Wire Bus. Kann mir jemand sagen, ob das Bauteil 
DS2480B geeignet ist oder wisst Ihr einen besseren Ansatz?

Ich freue mich auf eure Antworten. Danke im Voraus.

Grüße

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der DS2480B ist ein 1-Wire-Master, nichts anderes.

Der löst Dein Problem nicht.

Warum aber willst Du ausgerechnet 1-Wire verwenden, um Deine Waagen zu 
verbinden? Was spricht z.B. gegen RS485?

von Hä? (Gast)


Lesenswert?

Max schrieb:
> ich möchte eine Wägezelle auf einen 1-Wire Bus bringen, damit ich
> mehrere Wägen verbinden kann.

Verbinden, womit??

Was willst Du erreichen, was ist das Gesamtkonzept?
Bitte hier keine einzelnen Happen hinwerfen, sondern mal konkret 
beschreiben was Dein Ziel ist.

Da wird Dir besser geholfen!!!

Gruss
Hä

von Max (Gast)


Lesenswert?

Hallo,

ich habe an meinem Raspberry schon mehrere Temperatursensoren, 
Feutesensoren usw. angeschlossen und lese diese über den 1-Wire Bus aus. 
Nun möchte ich auch mehrere Waagen bauen. Da ich allerdings alles am 
gleichem Raspberry auswerten möchte und einen möglichst kleinen 
verkabelungsaufwand betreiben möchte, da diese Stationen mobil sein 
sollen erscheint mir der 1-Wire Bus am Sinnvollsten.

Ich wäre auch mit einem anderen Bussystem einverstanden. Ich möchte 
allerdings unbedingt ein Bussystem, da ich auch 10 Wiegen anschließen 
möchte...

Ich beharre mich auch nicht auf den HX711, wenn mir jemand ein 
Sinnvolleres Bauteil präsentieren kann.

Gruß
Max

von Einer K. (Gast)


Lesenswert?

Leider sprichst du nicht über Entfernungen!

In der Industrie haben sich Differential Schnittstellen bewährt.
Auch auf größerer Entfernungen
Auch in Elektrisch dreckiger Umgebung.
10 Teilnehmer an einem solchen Bus, sollte kein Problem sein.

Lin Can RS422 RS485 Profibus Ethernet usw.
Arbeiten alle nach dem mehr oder weniger selben Differential Prinzip.

Robuste Steckverbinder finden sich auch in diesem Bereich.

von Max S. (max_98)


Lesenswert?

Hey Arduino Fanboy,

ich versteh dich leider nicht ganz. Natürlich gibt es die 
verschiedensten Bussystemen die sich in der Industrie durchgesetzt 
haben, Profibus (Siemens),Ehtercat (Beckhoff), M-Bus, ModBus...

Allerdings wie hilft mir das bei meinem Problem? Ich auch bei ein wenig 
in die richtung Modbus und MBus recherchiert, allerdings finde ich kein 
Sinnvolles elektronisches Bauteil, das mir weiter Hilft. Serial to 
Ethernet findet man viele Bauteile, allerdings sind diese alle weit über 
60€.

von (prx) A. K. (prx)


Lesenswert?

1-Wire Slaves sind deutlich seltener als Master, was generische 
Konverter und Microcontroller angeht. Es gibt aber Programme für 
Microcontroller, die das zu implementieren behaupten, beispielsweise: 
https://github.com/smurfix/owslave

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Fabian E. schrieb:
> Natürlich gibt es die
> verschiedensten Bussystemen die sich in der Industrie durchgesetzt
> haben, Profibus (Siemens),Ehtercat (Beckhoff), M-Bus, ModBus...
Dann nimm eins davon!

Oder anders:
Was gibt es gegen ein bewährtes System einzuwenden?

Fabian E. schrieb:
> allerdings sind diese alle weit über 60€.
Nagut, wenn du dir (mit) die teuersten Teile raus suchst, und das als 
Urteil über alle von mir genannten stülpst...

Also konkret:
Was gibt es gegen RS485, mit SubD9 Stecksystem einzuwenden?

von Sven L. (sven_rvbg)


Lesenswert?

Man will Dir glaube sagen:

Scließ deine Wäagezelle an einen Controller deiner Wahl an (ADC) und 
schicke die Daten über eine für das Feld geeignete Schnittstelle an 
Deinen Master.

[Zelle]--->[ADC]->[Controller]---RS485-->[Master]

Der ADC kann im Controller sitzen.

1-Wire ist für's Feld eher ungeeignet.

von Max S. (max_98)


Lesenswert?

Arduino Fanboy, ich glaube mir verstehen uns Falsch. Ich habe nichts 
gegen die Bussysteme der Industrie. Nur nützt mir das beste Bussystem 
nichts, wenn ich nicht die Komponenten für mein Projekt finde. Mein 
Problem lieg ja darin, dass ich nicht weiß, wie ich die Werte der 
Wiegezellen auf den Raspberry bekommen. Wenn du einige Bauteile mir 
nennen kannst, wäre ich überglücklich. Egal ob es dann über Modbus, MBus 
oder sonst was geht.
Konkret zu RS485: Ich muss für jede Box einen eigenen Kabel zum 
Raspberry führen, da es kein Bussystem ist. Auch auf dem Raspberry bin 
ich beschränkt.




Danke auch an alle anderen, für Ihre Antwort. Habe ich das folgende 
richtig verstanden?


Meine Idee war:
-------------
|Wiege1     |
|Temperatur1|
|Feuchte1   |
-------------
      |
      | Strom, 1-Wire und evt. noch ein Bussystem
      |
-------------
|Wiege2     |
|Temperatur2|
|Feuchte2   |
-------------
      |
      | Strom, 1-Wire und evt. noch ein Bussystem
      |
-------------
|Wiege3     |
|Temperatur3|
|Feuchte3   |
-------------
      |
      | Strom, 1-Wire und evt. noch ein Bussystem
      |
-------------
|           |
|Raspberry  |    Wertet alle Daten aus. (Temperatur+Feuchte geht schon)
|           |
-------------

Erklärung:
- Die einzelnen Boxen sollten entfernbar sein.
- Der verkabelungsaufwand soll zwischen Box und Raspberry möglichst 
gering sein (so wenige Kabel wie Möglich)
- Ein Raspberry ließt alle Boxen aus und bereitet alle Daten auf.
- Temperatur + Feuchte über 1-Wire Bus
- Wiegesensor:
  - HX711 oder ähnliches
  - kleiner Konverter für Bussystem
  - mit dem Raspberry auswerten



Vorgeschlagenes Konzept von euch (wenn ich es richtig verstehe):
-------------
|Wiege1     |    Auswerten und Daten aufbereiten mit Raspberry1
|Temperatur1|
|Feuchte1   |
|Raspberry1 |
-------------
      |
      | Strom, Ethernet
      |
-------------
|Wiege2     |    Auswerten und Daten aufbereiten mit Raspberry2
|Temperatur2|
|Feuchte2   |
|Raspberry2 |
-------------
      |
      | Strom, Ethernet
      |
-------------
|Wiege3     |    Auswerten und Daten aufbereiten mit Raspberry3
|Temperatur3|
|Feuchte3   |
|Raspberry3 |
-------------
      |
      | Strom, Ethernet
      |

Erklärung:
- Alle Sensoren pro Box auslesen (Feuchte + Temperatur)
- Wiezellen:
  - Signal von der Wiegezelle verstärken
  - mit ADC auslesen


Hab ich das so richtig verstanden?

von Einer K. (Gast)


Lesenswert?

Max S. schrieb:
> Konkret zu RS485: Ich muss für jede Box einen eigenen Kabel zum
> Raspberry führen,

Och...
Natürlich kannst du das als Bussystem nutzen.
RS232 kann das nicht.
Aber RS485 sehr wohl.

Ein billiger Adapter am Raspberry reicht.
z.B. ebay: 252784174363
Wobei ich allerdings empfehlen würde GND mitzuführen

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Max S. schrieb:
> Meine Idee war:

Ich würd's anders machen. Du brauchst zur Umsetzung der Signale des 
HX711 eh' einen kleinen µC, der kann dann auch vor Ort die 
1-Wire-Auswertung der zur Waage gehörenden 1-Wire-Sensoren übernehmen.

Alles zusammen kann dieser µC dann über den RS485-Bus an den Raspberry 
schicken, der nur noch RS485 kennen muss.

RS485 bietet sich für Single-Master-Multiple-Slave-Protokolle an, d.h. 
Dein Raspberry Pi ist Master, Deine Waagen sind Slaves.

Slaves haben eine Adresse (damit sie sich voneinander unterscheiden) und 
senden auf dem RS485-Bus nur nach Aufforderung durch den Master. Der 
Master pollt zyklisch alle Slaves (d.h. sendet eine Aufforderung mit 
Adressinformation an den Slave), die Slaves antworten auf diese Anfrage 
mit den gewünschten Daten.

Das ist ein Standardverfahren, so wird es zigtausendfach umgesetzt. 
RS485 ist ziemlich störunanfällig und kann, wenn sinnvolle Baudraten 
verwendet werden, auch kilometerlange Strecken überwinden.

von Max S. (max_98)


Lesenswert?

Arduino Fanboy:
Okay, das klingt schon mal super. Dann kann ich mit einem solchen 
Adapter den HX711 auslesen. Danke!

Was ich jetzt noch nicht verstanden habe, ist der HX711. Bei der 
Beschreibung steht immer nur "Serial". Bedeutet das, dass ich immer nur 
einen direkt anschließen kann oder wie beim RS485 mehrere?


Rufus Τ. Firefly:
Welchen Kontroller würdest du verwenden?

Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Max S. schrieb:
> Welchen Kontroller würdest du verwenden?

Einen, den ich kenne und programmieren kann.

Die Hardwareansprüche sind gering; 1-Wire und UART kann man mit den 
üblichen Arduinos und den darauf verbauten Atmel AVR 8-Bit-Controllern 
problemlos abwickeln, um nur ein Beispiel zu nennen.

Max S. schrieb:
> Bei der Beschreibung steht immer nur "Serial". Bedeutet das, dass ich
> immer nur einen direkt anschließen kann

Sieh Dir mal das Datenblatt an. Das ist eine synchrone serielle 
Schnittstelle, also etwas SPI-artiges. Keine UART, nichts, was Du ohne 
zusätzliche "Intelligenz" mit einem Bussystem verbinden könntest.

Aber auch diese Schnittstelle kann man mit "bit-banging" bzw. Soft-SPI 
mit einem üblichen µC ansteuern.

Für den Arduino gibt es entsprechende Software"libraries":
https://create.arduino.cc/projecthub/MOHAN_CHANDALURU/hx711-load-cell-amplifier-interface-with-arduino-fa47f3

von Max S. (max_98)


Lesenswert?

Danke euch allen, vor allem dir  Rufus Τ. Firefly. Ich werde es genau so 
machen wie du es beschrieben hast.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.