Forum: Mikrocontroller und Digitale Elektronik 1-Wire Interface selber bauen


von Chris C. (chris-berlin)


Lesenswert?

Hallo zusammen,
versuche schon seit einige Zeit ein 1-Wire Interface mit dem DS2480 zu 
bauen, leider findet der iButton Viewer nichts :-( habe schon mehrfach 
gegoogelt und auch immer wieder die Schaltung gecheckt, es ist ja nicht 
wirklich schwer des DS2480 zu beschalten.
Habe im Netz schon eine einfache Schaltung gefunden 
http://lena.franken.de/hardware/schaltung_925_525.gif die funktioniert 
auch ganz gut nur leider scheint das nicht ein echtes 1-Wire Interface 
zu sein, mein Messprogramm findet des nicht, andere Programme wie z.B. 
digitemp holt sich schön die Temperatur von 1820.
Hat jemand schon erfahrungen gemacht, das der DS2480 aus dem RxD senden 
und TxD empfängt habe ich schon gelesen, aber es geht trotzdem nicht.

Grüße

Chris

von Benedikt K. (benedikt)


Lesenswert?

Ich finde es schon etwas gewagt, 1-wire per Software am PC zu machen. 
Das ganze ist etwas timingkritisch, dass ein PC das sauber hinbekommt 
ist daher etwas unsicher.

von Pete K. (pete77)


Lesenswert?

Stell doch mal Deine Schaltung und Software hier vor. Ohne mehr Input 
ist eine Ferndiagnose schwierig ... :-)

von Peter D. (peda)


Lesenswert?

Benedikt K. wrote:
> Ich finde es schon etwas gewagt, 1-wire per Software am PC zu machen.


Machter ja nich.
Der DS2480 ist ein RS-232 zu 1-Wire Converter.

Die Software "iButton Viewer" braucht ja irgendein bestimmtes Java, 
vielleicht ist da der Wurm drin.

Vielleichtz ist die Software auch geschützt und läuft nur mit der 
original Maxim Hardware.

In jedem Fall sollte Maxim der beste Ansprechpartner für Probleme mit 
ihrer Software sein.
Oder besuch das I-Button Forum.


Peter

von Benedikt K. (benedikt)


Lesenswert?

Peter Dannegger wrote:
> Benedikt K. wrote:
>> Ich finde es schon etwas gewagt, 1-wire per Software am PC zu machen.
>
>
> Machter ja nich.

Ich sehe keinen DS2480:
http://lena.franken.de/hardware/schaltung_925_525.gif

von Chris C. (chris-berlin)


Lesenswert?

Hallo,
ich hatte erst die Schaltung gebaut von der Lena website, diese geht 
wunderbar mit dem iButton Viewer von Maxim sowie dem Programm Digitemp, 
leider funktioniert er nicht mit dem Program Weather Display. Ich gehe 
mal davon aus das der DS2480B doch etwas anderes macht als die einfache 
Schaltung. Genutzt habe ich dir Schaltung im Datenblatt des DS2480B 
welche nur mit 5 Volt auskommt. Ein Max 233 nutze ich für diue 
Pegelwandlung, die schaltung des Max 233 funktioniert mit andere 
Hardware Problemlos.

Chris

von eProfi (Gast)


Lesenswert?

Ich habe ziemlich zeitgleich mit Dir auch einen DS2480 aufgebaut, und 
der hat auf Anhieb funktioniert.
Ich verwendete für meinen Laptop (keine Serielle) auch ein 
1-Euro-USB-Handydatenkabel - geht genauso gut.

Polarity-Pin richtig angeschlossen?
Bei der Software den richtigen Adapter ausgewählt (ich glaube für den 
2480 muss DS9097U eingestellt sein, für den Lena-Adapter DS9097E (oder 
umgekehrt?)

"Vielleichtz ist die Software auch geschützt und läuft nur mit der
original Maxim Hardware."
Nein, geht auch mit Selbstbau.


"Ich finde es schon etwas gewagt, 1-wire per Software am PC zu machen.
Das ganze ist etwas timingkritisch, dass ein PC das sauber hinbekommt
ist daher etwas unsicher."
Der Clou ist, dass bei der Lena-Lösung das kritische Timing die Serielle 
Schnittstelle des PCs macht (sehr clever, die schicken ein Byte raus und 
lesen es gleichzeitig wieder ein. Je nachdem, ob der 1w-Partner eine 1 
oder eine 0 sendet, kommen verschiedene Zeichen zurück).


Und bei der DS2480-Lösung macht es der DS2480.

Das sind aber zwei völlig verschieden Methoden (die beide 
funktionieren).

von Chris C. (chris-berlin)


Lesenswert?

Hallo eProfi,
Mit dem Pol Pin habe ich schon hin und her probiert, ich habe aber nicht 
wirklich kappiert für was ich den brauche? Habe Ihn wir im Datenblatt 
auf 5 Volt gepackt.
Ich habe die Schaltung zweimal aufgebaut und zweimal gehts nicht, also 
bin ich irgendwie zu blöd, scheinbar mache ich irgendwo immer den selben 
fehler.

Bei der Software hatte ich auch ein Autscan laufen lassen leider nichts 
gefunden. Da die Beschaltung ja mehr als gering ist frage ich mich echt 
wo der Wurm sein könnte.




<Ich habe ziemlich zeitgleich mit Dir auch einen DS2480 aufgebaut, und
<der hat auf Anhieb funktioniert.
<Ich verwendete für meinen Laptop (keine Serielle) auch ein
<1-Euro-USB-Handydatenkabel - geht genauso gut.
<
<Polarity-Pin richtig angeschlossen?
<Bei der Software den richtigen Adapter ausgewählt (ich glaube für den
<2480 muss DS9097U eingestellt sein, für den Lena-Adapter DS9097E (oder
<umgekehrt?)

von eProfi (Gast)


Lesenswert?

Und, wie geht's?
Hast Du schon mal Rx  Tx getauscht  gekreuzt?
Hast Du eine zweite serielle Schnittstelle / anderen Rechner, um die 
Bytes auf Rx und Tx mal mitzulesen?

Oder einen Oszi?

Nochmal:
1.
die einfache Variante besitzt keine Intelligenz. Sie sendet ein Byte auf 
der Seriellen  pro 1-Wire-Bit.

2.
Der DS2480 kann im Data-Mode mit einem Byte 8 1-Wire-Bits übertragen.
Der DS2480 übernimmt die gesamte Bitschieberei und das 1-Wire-Timing.


Ein Schaltplan oder eine exakte Beschreibung Deine Aufbaues wäre 
gefragt.

von Thilo M. (Gast)


Lesenswert?

RS232-Polarity-Pin auf LOW für Pegelwandler und auf HIGH für direkten 
Anschluss an 0..5V (direkt am µC), wenn ich das richtig gelesen habe ..

von selbermacher (Gast)


Lesenswert?

Hallo zusammen; ich will gerade in 1 wire einsteigen und würde gerne 
selber ein Interface zusammenbauen. Der Tipp mit dem USB-Datenkabel 
interessiert mich dabei besonders, weil ich keine serielle Schnittstelle 
frei habe. Außerdem würde ich gerne Temperaturfühler dranhängen und 
diese von einem dotnet Programm aus abfragen.

von Pascal (Gast)


Lesenswert?

Hallo Zusammen

Ich beschäftige mich zur Zeit ebenfalls mit dem Aufbau eines 1-Wire Bus. 
Mein Ziel ist es schlussendlich mit meiner Anwendung mehrere EEPROM's 
auf der gleichen Leitung auslesen und programmieren zu können.
Der Schaltplan den ich gemacht habe funktioniert wunderbar, ich kann 
also ohne Probleme meinen 1-Wire-Master (DS2480B) ansprechen. Jedoch 
habe ich etwas Probleme mit den Antworten die ich vom Master zurück 
bekomme, sie entsprechen überhaupt nicht dem, was der Hersteller oder 
die Datenblätter und Application Notes vorgeben. Wenn jemand also schon 
Erfahrungen mit dem DS2480B gemacht hat, würde ich mich auch dafür 
interessieren!

Gruss
Pascal

von Pascal (Gast)


Lesenswert?

Konnte mein Problem lösen... funktioniert jetzt!

Gruss
Pascal

von selbermacher (Gast)


Lesenswert?

Hat jemand einen einfachen Schaltplan für eine Lösung, die mit einem 
einfachen USB-Kabel funktioniert und einen Tipp mit welchen Treibern / 
welcher Software man von einem dotnet Programm aus die Sensoren abfragen 
kann

von Bjoern (Gast)


Lesenswert?

Hallo,

ich habe mir etwas ähnliches zusammengebaut.
Den Schaltplan habe ich von dieser Seite allerdings den Zweiten der 
Beiden.
http://public.rz.fh-wolfenbuettel.de/~hamannm/general/digitempd.html

Im Moment habe ich 10 Sensoren angeschlossen und die funktionieren halle 
hervorrangend.
Ich lese sie mit Digitemp für Windows aus. Dabei halt nur aus der 
DOS-Ebene in eine Textdatei rein.
Dies klappt allerdings wirklich gut, obwohl ein grafisches Programm 
natürlich deutlich angenehmer wäre.

Nun meine Probleme:
Die Auflistung der Sensoren erscheint nicht der physikalischen Reihe 
nach sondern richtet sich nach aufsteigenden Seriennummern, sodass der 
der 3 Sensor in der Liste ganz woanders auftaucht. Ist natürlich nicht 
nur beim dritten so, dies war nur ein Beispiel.

Gibt es eine Möglichkeit dies irgendwie abzuändern und den Sensoren 
(zumindest in der Textdatei) einen Namen zuzuordnen?

Kennt jemand ein Programm, welches grafisch unterstützt wird? Windows 
wäre schon toll, allerdings setze ich gerade Linux auf.

Ich bin blutiger Anfänger in solchen sachen und bitte um Nachsicht. Ich 
bin froh, dass ich überhaupt schon soweit bin.

Danke im Voraus.

Bjoern

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Es gibt auch noch den DS2490. Der wird direkt an den USB-Port gehängt. 
Dazu ist dann noch ein 3,3V-Regler von Nöten.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Bjoern schrieb:
> Gibt es eine Möglichkeit dies irgendwie abzuändern und den Sensoren
> (zumindest in der Textdatei) einen Namen zuzuordnen?
Ich setzte den gerade erwähnten DS2490 unter Linux (MIPS sowie ARM) ein.
Dazu owfs (One-Wire-File-System). Jeder Sensor hat dann ein eigenes 
Verzeichnis mit mehreren Textdateien, die gelesen (oder geschrieben) 
werden können.

Das Auslesen ist einfach mittels "cat" möglich.

Für sprechende Dateinamen kann man von einem anderen Verzeichnis aus 
einfach symbolische Links auf die Temperaturdateien setzen. So einfach 
ist das dann.

> Kennt jemand ein Programm, welches grafisch unterstützt wird? Windows
> wäre schon toll, allerdings setze ich gerade Linux auf.

Selber schreiben. Es gibt auch einen OW-Webserver zum Projekt. Den 
kannst Du einfach mittels HTML und einem Browser auslesen. Grafik so 
viel Du willst mittels Javascript.

von Pete K. (pete77)


Angehängte Dateien:

Lesenswert?

Grafik kannst Du gut mit Gnuplot machen, auch unter Windows.

Die Daten habe ich aus einer CSV-Datei genommen und per Batch-Skript 
unter Gnuplot als PNG-Datei gespeichert.

von Bjoern (Gast)


Lesenswert?

Vielen Dank schon mal für Eure Antworten.

Gnuplot werde ich mal probieren, allerdings nicht auf Windows.
Ich hab mich schon mal mit Cygwin beschäftigt, möchte dies aber nicht 
weiter testen.

Wie gesagt, bin halt wirklich Anfänger und taste mich langsam an diese 
Sachen dran. Werde mich jetzt erst mal intensiv mit Linux beschäftigen, 
damit ich dort wenigstens etwas machen kann.

Ist halt alles bißchen doof, da der Rechner an dem die Sensoren hängen 
(sollen) mein Fileserver ist (im Keller) und als OS Windows hat.

Aber irgendwie wird das schon werden.


@ Christian H

Das versteh ich nicht so ganz. Meine Schaltung läuft ja Grundsätzlich 
sehr gut. Auch an einem USB per Adapter. Was würde der DS2490 denn mehr 
bringen als der DS18S20?

Was ist denn ein OW-Webserver? Also was ein Webserver ist weiß ich 
schon, aber einen Webserver für dieses Projekt habe ich noch nicht 
gefunden.

Gruß Björn

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Bjoern schrieb:
> @ Christian H
>
> Das versteh ich nicht so ganz. Meine Schaltung läuft ja Grundsätzlich
> sehr gut. Auch an einem USB per Adapter. Was würde der DS2490 denn mehr
> bringen als der DS18S20?

Der DS2490 ist ein 1-Wire-Controller, der direkt an den USB-Port 
angeschlossen wird. Hiermit ist das Timing auf jeden Fall 
sichergestellt, was bei einer Softwarelösung am seriellen Port nicht der 
Fall ist.

Der DS18S20 ist ein 1-Wire-Temperatursensor, also nicht vergleichbar mit 
einem DS2490.

> Was ist denn ein OW-Webserver? Also was ein Webserver ist weiß ich
> schon, aber einen Webserver für dieses Projekt habe ich noch nicht
> gefunden.

Der OW-Webserver ist eigentlich nur ein kleines Programm, welches per 
HTTP den Zugriff auf das OW-Filesystem (also auf die Daten der 
angeschlossenen 1-Wire-Clients) erlaubt. Es ist kein ausgewachsener 
Webserver wie der Apache.

Schau Dir mal www.owfs.org an. Da steht alles, was Du wissen musst.
Der Webserver heißt "owhttpd".

Du musst aber nichts selber übersetzten. Die Programme gibt es bereits 
fertig für alle Distributionen.

Das ganze ist ideal, um auf einem Mini-Router (zB Edimax BR6104) 
installiert zu werden. Also OpenWRT drauf, owfs mit owhttpd 
installieren, 1-Wire dranhängen (software über GPIO oder über 
1-Wire-Controller), fertig.
Daten auslesen geht dann einfach über einen beliebigen Webbrowser.

von Bjoern (Gast)


Lesenswert?

@ Christian H.

Danke für die ausführliche Beschreibung.

Auf www.owfs.org hab ich mich mal umgesehen, allerdings ist das wohl 
alles etwas zu kompliziert.
Ich bin weiter auf der Suche nach einer Soft, die sich etwas einfacher 
gestaltet.

Mir würde es wirklich helfen, wenn ich wie oben beschrieben, schon mal 
die Seriennummern in Digitemp zuordnen könnte.

Sprich in der ausgegebenen txt-Datei die 10 Sensoren nicht aufsteigend 
nach Seriennummern, sondern nach einer von mir vorgegebenen Reihenfolge.

Gruß Björn

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Bjoern schrieb:
> @ Christian H.
>
> Danke für die ausführliche Beschreibung.
>
> Auf www.owfs.org hab ich mich mal umgesehen, allerdings ist das wohl
> alles etwas zu kompliziert.
> Ich bin weiter auf der Suche nach einer Soft, die sich etwas einfacher
> gestaltet.

Das ist nicht so kompliziert:

owfs und owhttpd gibt es für jede Linux-Distribution. Nur einspielen 
(yum; apt-get; yast...). Irgend einen unter stützten Adapter an den 
Rechner und das Programm entsprechend konfigurieren (ein paar Buchstaben 
in einer Textdatei). Dann das Programm starten und die Sensoren an den 
Adapter.

cat /owfs/83746abf736798932/temperature   (Beispiel)!

Gibt Dir die Temperatur des Sensors 83746abf736798932 aus.

Etwas Vorarbeit:
cd /sensoren
ln -s /owfs/83746abf736798932/temperature kühlschrank_innen

Dann:
cat /sensoren/kühlschrank_innen

Das gibt dir ebenfalls die Temperatur dieses Sensors aus.

Rufst Du den cat per cron jede Minute auf und hängst noch ">> 
kühlschrank_innen.log" dahinter, so hast Du einen Temperaturlogger.
Über diese Datei kannst Du dann Gnuplot laufen lassen.

Was willst Du denn genau machen? Erzähl mal.

von Bjoern (Gast)


Lesenswert?

Ich habe eine relativ große Heizungsanlage in unserem Haus.
Diese ist mit ca. 15m2 Solar zur Brauchwasser und Heizungsunterstützung 
ausgestattet.
Zusätzlich zur Brennwertgastherme habe ich noch einen ca. 20kw 
Wasserführenden Ofen im Wohnzimmer.
Die Sensoren sollen an folgenden Stellen angebracht werden:
vor und rücklauf gastherme, vor und rücklauf kaminofen, vor und rücklauf 
solar, sowie 10 stück am puffer für die heizung sowie 10 stück am puffer 
für das brauchwasser.
Hintergrund der vielen Sensoren am Puffer:
das sind Schichtenspeicher und man kann mit so vielen Sensoren relativ 
genau sagen, auf welche Ebene welche Temperatur herscht und somit auch 
wieviel Warmwasser man im Vorat hat. (muß ich heute Abend noch Holz 
nachlegen oder reicht es bis morgen mittag)

einen Puffer hab ich mit 10 Sensoren ausgestattet, was halt wie gesagt 
auch gut klappt.
Nur die Reihenfolge stimmt eben nicht und das ist doof.

Die Daten aus der Textdatei rufe ich im Moment per Ftp und Dyndns ab und 
kann somit immer online gucken ;-)

Ob mans braucht oder nicht sei dahin gestellt. Aber ich hätte es halt 
gern allein aus ergeiz.

Im Moment steht mir halt nur Windows zur Verfügung aber ich arbeite an 
Linux.

Tja das zu meiner Geschichte

Gruß Björn

von Bjoern (Gast)


Lesenswert?

Hallo,

ich noch mal. Ich möcht ja nicht nerven, aber gibt es wirklich niemanden 
der ein bißchen zu diesen Befehlen in digitemp etwas sagen kann?

Bin für jede hilfe dankbar.

Gruß Björn

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Der Quellcode zu digitemp liegt doch auf der Homepage. Wieso nicht 
selber anpassen?

Es gibt sogar eine Anpassung für eine MySQL-Datenbank. Damit ist Dein 
Vorhaben sehr leicht möglich. Einfach zwei zusätzliche Datenbankspalten. 
1x Sensorname; 1x Sortierreigenfolge (Zahl).

von Sebastian (Gast)


Lesenswert?

Vielleicht wären die 1-Wire Sensoren mit "Chain Function" eine Lösung 
für dein Problem? Dabei wird immer der Ausgang des n-ten Sensors mit dem 
Eingang des n+1-ten Sensors verbunden, wenn du so eine Art Perlenschnur 
den Kessel hinauf legst, sollte das recht einfach umzusetzten sein.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5355

von Bjoern (Gast)


Lesenswert?

Okay, danke für Eure Tips.
Ich werde mal probieren was ich machen kann. Ich melde mich solbald ich 
weiteres rausbekommen habe, dass könnte ja auch für andere Leute 
interessant sein.

Viele Grüße

Björn

von Bjoern (Gast)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

ich habe jetzt mal meinem Schwager meine Problematik erklärt und er hat 
sich der Sache mal angenommen.

Ich wollte euch nur auf dem laufenden halten und hier mal meine jetzige 
Variante darstellen.

Ich hoffe das klappt hier mit den Bildern einfügen.

Also, er hat irgendwas in PHP geschrieben, auf Basis von Digitemp.

Ich logge mich per Web-Browser auf den Server ein (mit Zugangsdaten) und 
erhalten dann den Srceenshot Modulauswahl, hier kann ich bestimmen ob 
ich mir einen Monat oder einen Tag ansehen möchte.

Danach kommt die Tages bzw. Monatsauswahl, in der ich per Scroll-Button 
den entsprechenden Tag bzw Monat wählen kann.

Dann werden Daten in einem Diagramm (siehe Anhang: Ansicht) angezeigt, 
in dem für jeden Sensor ein Diagramm dargestellt wird.
Im Moment sind die Sensoren noch nicht sortiert und beschriftet, folgt 
aber dann.

Zur Zeit lese ich alle 15 Minuten aus (die 10 Sensoren ,der Rest folgt 
noch, sind ja am Pufferspeicher installiert)
In der Tagesauswahl sieht man die Temperatur zur entsprechenden Uhrzeit, 
in der Monatsauswahl gibt es auch für jeden Sensor ein Diagramm, welches 
den Durchschnitt des Sonsors an dem entsprechenden Tag anzeigt. (bei 
Bedarf poste ich noch einen Screenshot davon)

Dies ist nur die erste Version, mein Schwager hat mir noch ein paar 
nette Spielereien versprochen. Was auf jeden Fall noch kommt, ist ein 
Multidiagramm (frei definierbar für bestimmte Sensoren)

Also ich bin erst mal hoch zufrieden und es klappt jetzt schon mal sehr 
gut.

Viele Grüße Björn

von Bjoern (Gast)



Lesenswert?

Sorry wegen der schlechten Quallität, aber ich bin auf der Arbeit und 
meine Mittel sind hier nur begrenzt.

Es sind dieses Wochenende neu Funktionen dazugekommen unter anderem 
lassen sich jetzt nachträglich angeschlossene Sensoren oder auch weitere 
Interface´s per Knopfdruck einbinden.

Gute Arbeit Schwager


Gruß Björn

von Joerg (Gast)


Lesenswert?

Hallo Björn,

das klingt sehr interessant, was dein Schwager da programmiert hat. 
Kannst Du die PHP-Scripte hier mal posten?
... wäre sicherlich nicht nur ich daran interessiert... ;-)

Viele Grüße
Jörg

von Thorsten R. (goofy79)


Lesenswert?

Hallo, schaut doch mal auf http://www.hauptstrasse72.ath.cx vorbei
unter HowTo, da steht schon viel und es wird laufend erweitert.

Gruß Goofy

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.