Hallo zusammen,
ich versuche vergeblich bei einem TX20 / TX23 Sensor für eine WS2000
bzw. WS2300 Wetterstation auf das 1-Wire Protokoll zu schliesen.
Ich habe den Sensor zerlegt, es kommt eine kleine Platine zu vorschein,
welche in etwa so aussieht:
http://sites.inka.de/heliscan/ws2300_2/ws2300_2.html
Der Sensor sendet beim anlegen der Versorgungsspannung eine Datenburst
auf seine Serial I/O Leitung. Danach ist Schluss. Ziehe ich die Leitung
einmal kurz auf Low sendet der Sensor wiederrum eine neuen Datenburst.
Ich möchte nur ungern den vorhandenen Controller wegwerfen, da ja
eigentlich schon alles vorhanden ist. Hat jemand das Protokoll von
diesem Sensor schonmal "zerlegt" ?!?
Andernfalls würde ich das Innenleben neu aufbauen müssen...
Danke Markus
Hallo Markus,
welches 1-wire-Protokoll meinst du? Meine WS2000 ist eine
Funkwetterstation ohne Draht. Das Funkprotokoll der dazu passenden
Sensoren ist auf meiner Homepage veröffentlicht.
Servus,
Helmut.
Hallo Markus, Helmut,
er meint bestimmt die Verbindungsleitung zwischen Thermo/Hygro
Ausseneinheit -welche dann per Funk mit der eigentlich WS kommuniziert-
und dem Windmesser TX23.
Das sind vier Dräthe. VCC, GND, I/O, wobei es dort unterschiedliche
Ausbauvarianten der TX-23 und auch TX-20 gibt. Die einen haben noch
zusätzliche Elektronik mit an Board, siehe:
http://sites.inka.de/heliscan/ws2300_2/ws2300_2.html
Helmut, deine HP habe ich mir gerade mal angeschaut, könnte man vom
HF-Protokoll aus auf das eigentlich Übertragungsprotokoll auf der
Drathleitung schließen, was meinst du?
Gruß Micha,
PS: Hatte ein ähnlichen Post gestern in einem Wetterforum...
Hallo zusammen!
ich habe gerade so ein Ding bei (C..) erstanden. nun habe ich das
Problem.
Frage gibt es zu dem Teil schon einen Anschlussplan? Ist die LED
(eingebaut) eine Infrarot oder Sichtbar?
Gruß Fredfromflett
Moin,
Anschlussplan: wie oben schon erwähnt
PIN1, bräunliches Kabel, Serial I/O (Tx)
PIN2, rotes Kabel, Vcc
PIN3, grünes Kabel, Regulator CE: ca.2 sec auf GND ziehen, dann sendet
das Teil einmal. Lässt man den Pin auf GND, kommen ca. alle 2sec Daten
PIN4, gelbes Kabel, GND
Habe das Serial I/O an einem ATmega1284P (auf einem Raven Board)
angeschlossen und bekomme einigermassen nachvollziehbare Daten. Bin
allerdings noch dran, die besten Ergebnisse gibt es bei 2400, 8N1.
LED o.ä. gibt's nich, zur Funktion siehe hier:
http://sites.inka.de/heliscan/ws2300/windmess.htm
Grüße
Jörg
Hallo zusammen,
es ist zwar schon etwas her, dass der Thread aktiv war, aber vielleicht
meldet sich ja doch jemand.
Beflügelt von dem bereits reverse engenierten Protokoll habe ich ein
TX23 bei ebay erstanden. Leider habe ich genau so eine Version wie der
Michael (vgl. 22.07.2008 11:07) hat bekommen. Da ist irgendwie alles
anders. Der /CE Pin ist nicht verbunden. Das Protokoll war auch anders
(viel länger und viel mehr Bits wurden übertragen). Wie dem auch sei,
hab ich den internen Controller in den Ruhestand geschickt und mach
jetzt alles über einen AVR. Spart Strom ;)
Aber lasst mich zum wesentliche kommen:
Wie berechne ich aus den Ticks des Windmessers eine vernünftige
Windgeschwindigkeit? Hat da jemand schon Erfahrungen gemacht?
Klar ich könnte es auf mein Auto schnallen und dann eine Messreihe
starten G. Aber das muss doch auch anders gehen. Was ist den mit dem:
2Sek messen und durch 8 teilen -> knoten. Kann ich das da auch anwenden?
Wenn interne Controller nur zählt sollte das doch möglich sein, da die
Hardware identisch ist. Oder was ist mit einem rein mathematischen
Ansatz? Ticks * Umfang / Messzeit? Da würde noch ein Reibungskoeffizient
fehlen. Braucht man den?
Hat jemand mit so was schon Erfahrung gesammelt, oder muss ich das Rad
neu erfinden?
Danke erstmal
Jürgen
Hallo Jürgen,
habe mich an den Erkenntnissen vom open2300 Projekt orientiert:
http://www.lavrsen.dk/foswiki/bin/view/Open2300/OpenWSMemoryMap
d.h. Windspeed = value in binary(i.e. "Ticks") / 10 [m/s]
Ob das nun genau stimmt, kann ich nicht sagen, plausibel sind die Werte
aber.
Ich benutze allerdings den internen Controller, der, wie Du sagst,
natürlich (zusätzlich) Strom braucht...
Hope it helps
Grüße
Jörg
Hallo Jörg,
danke für deine Antwort. Ich habe mich mittlerweile völlig an die
Theorie gehalten:
Wobei r, der mittlere Löffelradius ist und x Runden in der Zeit t
gemessen wurden. Der Wert 2.5 ist ein Literatur Wert. Er kommt zustande
da der konvexe angeströmte Löffel das Anemometer abbremst, was
kompensiert werden muss. (Ältere Literatur spricht noch von einem Wert
von 3.0) Die Reibung der Aufhängung ist zwar damit noch nicht
kompensiert, aber Messungen habe gezeigt, dass der Wert ziemlich gut
stimmt.
Gruß
Jürgen
Anscheinend sind zwei Typen im Umlauf.
Die vorangehenden Beiträge und Dokus beziehen sich auf den Typ Tx23U
Jürgen Eckert (sid)
Datum: 31.05.2009 12:02
stellte bereits fest:
.... Der /CE Pin ist nicht verbunden .....
Bei mir auch: mien Typ ist ohne "U" , nur! Tx23
(also ohne U (für USART))
Er ist vermutlich eine one-wire Vesion gemäss
http://www.rd-1000.com/chpm78/lacrosse/Lacrosse_TX23_protocol.html
kann das jemand bestätigen?
Gruss HP
Hallo zusammen,
seit ein paar Tagen versuche ich einen neuen TX23 aus der Bucht
auszuwerten. Optisch entspricht er diesem hier:
http://www.rd-1000.com/chpm78/lacrosse/Lacrosse_TX23.html, die
Kabelfarben passen auch.
Grundsätzlich ist es ein 1-Draht-Typ der neueren Sorte, das auf
http://www.rd-1000.com/chpm78/lacrosse/Lacrosse_TX23_protocol.html
beschriebene Protokoll passt im Wesentlichen.
Ich habe die Auswertung auf Nibbles aufgebaut, da mir das am einfachsten
in der Weiterverarbeitung erschien:
Nibble 0: Sync 0x1b,
Nibble 1: Richtung, (Wert * 22,5 + 180) mod 360 ergibt die Gradzahl, aus
der der Wind kommt (wenn die aufgedruckten Himmelsrichtungen zur
Ausrichtung genutzt werden)
Nibble 2..4: Geschwindigkeit, Umrechnung ist mir noch nicht bekannt.
Nibble 5: Prüfsumme
Nibble 6-9: Invertierung der Nibbles 1-4
Ich darf ein paar zusätzliche Erkenntnisse hinzufügen:
- die Prüfsumme in den Bits 22-25 (in meiner Auswertung das 5. Nibble)
ist die Summe der Nibbles 1-4 mod 16
- Der Sensor darf nicht zu häufig abgefragt werden, sonst liefert er
alte Geschwindigkeiten, ich habe als kleinsten Wert alle 3s verwendet.
Bei weniger trat der Fehler auf.
- Überraschenderweise werden bei einer Anforderung per 500ms-Low auf
der Datenleitung zwei der beschriebenen Datenpakete gesendet, die sich
im Inhalt unterscheiden. Zwischen beiden liegt eine Pause von gut 19ms,
in der der Sensor die Datenleitung auf low zieht. Der Unterschied
zwischen beiden Paketen liegt in der ausgegebenen Windgeschwindigkeit:
Das erste Paket enthält einen gemittelten Wert, das Mittelungsfenster
scheint mir etwa 1min breit zu sein. Das zweite Paket liefert den
Spitzenwert der GEschwindigkeit über ein Fenster von ca. 40s.
Die gemessene Bitlänge ist sehr konstant und beträgt 1,22ms. Die
Auswertung habe ich anders gestaltet als bei
http://www.rd-1000.com/chpm78/lacrosse/Receive_Lacrosse_TX23_data_2.html.
Die Abtastrate ist fest, derzeit 1200µs, aber jede Flanke setzt den
Abtastzeitpunkt neu auf die nächste Bitmitte.
Der Empfang erfolgt komplett im Interrupt (1ms-Timer für's Grobe, Timer
für die Abtastung, PinChange-Interrupt für die Flanke).
Die Implementierung nutzt derzeit einen ATtiny85, die Daten werden auf
einem Bus ausgegeben. Die eigentliche Empfangsroutine lässt sich aber
problemlos extrahieren, falls jemand Interesse daran hat.
Gruß
Jens
Ich nochmal,
die Windrichtung wird schlichter berechnet als von mir eben behauptet
(die Fahne war nicht richtig aufgesteckt, peinlich). Also einfach
Richtung in Grad = Nibble1 * 22,5
Gruß
Jens
Jens Mundhenke schrieb:> Die Implementierung nutzt derzeit einen ATtiny85, die Daten werden auf> einem Bus ausgegeben. Die eigentliche Empfangsroutine lässt sich aber> problemlos extrahieren, falls jemand Interesse daran hat.
hallo Jens,
mich würde es interessieren.
Danke Kutte
Hallo Kutte,
hier mal die Kernfunktionen, die Einbindung ist im h-File beschrieben.
Als Schnittstelle für die Ergebnisse dienen bei mir die auch
beschriebenen Variablen, für Puristen habe ich dafür noch eine
Schnittstellenfunktion tx23_read geschrieben, aber nicht getestet.
Der restliche Buskram ist noch zu schlecht dokumentiert, aber den
brauchst Du vermutlich ja auch nicht.
Gruß
Jens
Hallo Mario,
es ist ein relativ einfacher serieller Bus, der für ein Sensornetzwerk
eingesetzt wird. Einsatz bisher in einer Ballonnutzlast, dazu mehr
Informationen hier: http://p56.de/ballonprojekt/
Technisch ist es eine asynchrone serielle Übertragung mit derzeit 19k2
Bd, die per CAN-Treiber über einen gemeinsamen Bus stattfindet. Je nach
Prozessorgröße wird der Hardware-UART oder ein Soft-UART (Basis Peter
Dannegger, Beitrag "Software UART") verwendet.
Das Protokoll entspricht dem NMEA-Format.
Gruß
Jens
hallo !
bin am verzweifeln......
habe die ws 1600, tx23 windsensor ( hoffe das das die richtige
bezeichnung ist, ist mit kabel mit dem temperatursensor verbunden )
auf alle fälle zeigt mir der sensor keine windgeschwindigkeit mehr
an......alles zerlegt, da sitzt der kleine schalter im glasrohr, der,
jedesmal wenn der magnet vom windrad drüberfährt , schaltet, so die
windgeschwindigkeit angibt, der is defekt.
bekomm ich irgendwo so klein ersatzteile her......schon überall
geschaut....conrad, elv.....nicht fündig geworden:
vieleicht weiß jemand rat
danke chris
Habe vor einigen Tagen meinen TX23 bekommen und in Betrieb genommen.
Alles wie beschrieben, ich bekomme nur keine Winddaten.
PIN CE/ liegt offen.
Winrichtung ok.
Bits werden richtig gelesen.
1 Datentelegramm nach 500us Low.
Hier die Daten:
11011 0000 000000000 000*0000 1111 111111111 111
Er gibt für die Wingeschwindigkeit immer 0 aus.
Das Reedrelais ist ok, sauberes Signal.
Wer hat eine Idee ?
Gruß Peter
RKG schrieb:> Habe vor einigen Tagen meinen TX23 bekommen und in Betrieb genommen.> Alles wie beschrieben, ich bekomme nur keine Winddaten.
Hallo Peter,
ich selbst befasse mich derzeit ( oder in den nächsten Wochen ) mit der
Implementierung des TX23 in eine Eigenbau Windmessanlage für unseren
Modellflugplatz.
Wäre es nicht einfacher, falls du den TX23 (Windmesser) in Verbindung
mit einer selbstgebauten Auswerteschaltung verwendest, dass du nicht die
Information aus der 1Wire Leitung nimmst, sondern manuell das
Rechtecksignal vom Reedkontakt verwendest ( ggf mit kleiner
Zusatzschaltung fürs entprellen usw ) und quasi die Zeit für eine
Umdrehung des Windrades misst?
gruß
Dieter
Könnte mir jemand sagen wie ich die 4 Photodioden für die Windrichtung
abfrage wenn ich nicht das interne Protokoll verwenden will?
Wo muss ich meine 4 Kabel zur Abfrage anbringen?
Danke Heiko
Hallo Heiko,
ich verwende an meiner Wetterstation den selben Windmesser. Bei diesem
war leider die Elektronik defekt ( ausser die Fotodioden ) und somit
konnte ich die 1Wire Leitung nicht verwenden.
Ich griff daher direkt von den 4 Photozellen die erzeugte Spannung ab,
und verarbeitete diese mit Opamp Schaltungen. ( Verstärker + Komperator
+ Schmitttrigger )
Leider habe ich kein Foto mehr von der TX23 Platine, wo ich genau die
Signale abgegriffen habe,aber dass kannst du sicher selber rausmessen.
Ich habe alles von und zu den Fotozellen deaktiviert (dh Leiterbahnen
unterbrochen ) um nicht irgendwo ein verstecktes Problem zu haben.
Schaltplan hierzu findest du auf meinem Blog.
http://engineeringatnight.blogspot.co.at/2013/01/weather-station-arduino-project.html
lg
Dieter
Irgendwie lässt mich das ganze nicht los, es muss doch irgendwie
funktionieren mit den orginalen Mitteln auf der Platine die 4 Fotodioden
auszuwerten.
Ich bin nicht das elektronik Hirn, daher versteh ich nicht was da
passiert.
Kann mir jemand erklären was die da tun und was / wie ich das auswerte?
Hab mal ein Bild gemacht, die Schaltung wie ich die verstehe und von der
Platine ablese und nochmals im Bild von weiter oben farbig
eingezeichnet.
Rot = Vcc
Blau = GnD
Gelb = auszuwertendes Signal zum Controler
was kann ich an Gelb messen? Es müssen doch 2 verschiedene Zustände
Messbar sein? Zustand1 wenn bestrahlt Zustand2 wenn dunkel. Diese
Zustände müsste ich doch auch auswerten können.
Ich versteh es nicht.
Danke für eure Hilfe Heiko
Heiko schrieb:> was kann ich an Gelb messen? Es müssen doch 2 verschiedene Zustände> Messbar sein?
Aber nur, wenn an den gelben Leitungen passende Ströme anliegen, z.B.
von der dranhängenden Auswerteschaltung oder von einem geeignet großen
Widerstand, der nach Vcc geht. Woher soll die Spannung sonst kommen. Der
Transistor mit dem Widerstand R5..R8 bildet normalerweise den unteren
Teil eines Spannungsteilers.
Mir jemand folgendes gesagt, siehe Bild.
R1-R4 = 10MOhm
geht aber nicht bei mir.
Ich weiß nicht was ich falsch mache.
OK mir fällt auf das ich den Sensor mit 3V betreibe und mein Controller
mit 5V. Daher hab ich keine richtige Referenzspannung? Ist das der
Fehler?
Danke Heiko
Hallo,
ich habe hier alles aufmerksam verfolgt.
Ich habe mir auch einen TX23 bei ebay gekauft, er müsste eigendlich
funktionieren, aber er gibt kein laut von sich. Bei mir kommen überhaupt
keien Daten an.
Ich wollte den TX23 testweise über den PC auslesen:
PIN1 (gelb) an GND
PIN2 (grün) auf GND (für dauerntes Datenausgeben)
PIN3 (rot) an VCC (3,2V bzw. 2x AA 1,5 Batterien)
PIN4 (braun) an PIN2 (TX) der RS232 (TX)
Ich habe 0,18 V anliegen am braunen Drähtchen. Ich habe versucht die
daten mit HTerm vom COM (USB)-Port auszulesen:
TX23 --> RS232 --> RS232/USB-Adapter --> COM(USB)-Port --> HTerm mit
2400 Baud und 8N1, auch 4800 probiert.
Wie gesagt, hier ist gar nichts passiert, keine Daten angekommen auf
COM-Port. Ich habe dem ganzen testweise auch mal einen MAX232
zwischengeschaltet, aber damit habe ich auch nur heiße Luft empfangen
und keine Daten.
Was mache ich falsch? Habe ich den TX23 falsch angeschlossen, oder ist
meiner vielleicht kaputt? Ich hab ihn mal aufgeschraubt, die Bauteile
sahen alle ganz gut aus, nix durchgebranntes ...
Was läuft denn schief bei mir? Ich würde mich über eine Antwort sehr
freuen.
PS: ich möchte den TX23 an einen ATmega8A anschließen und die gemessenen
Winddaten auf einer SD-Karte speichern (10-Minuten-Mittelwerte über ein
Jahr) zwecks Test ob unser Hausdach für eine Kleinwindkraftanlage
geeignet ist. Hat jmd Erfahrung mit TX23 und ATmega's ?
Johannes schrieb:> Hat jmd Erfahrung mit TX23 und ATmega's ?
jep aber nur mit einem gehackten TX23 - sprich... ich gfreife mir direct
das Windsignal über den Kontakt ( bei mir halt ein Halleffektsensor -
Reedkontakt wurde ausgebaut )
Die Windrichtung gfreife ich auch direkt mittels Hack von den Platine
ab.
Wenn du es so machst wie ich, hast du ziemlich schnell brauchbare
Messwerte, wieso es so schwierig ist den TX23 auszulesen, wird dir hier
nicht jeder gleich so adhoc beantworten können, bzw überhaupt...
lg
Dieter
Also ich hab meinen TX23 mitlerweile erfolgreich im Einsatz.
Ich hab mich da zu großen Teilen an die Schaltung von Dieter gehalten,
nicht ganz so Aufwändig, aber es geht, Danke nochmals Dieter !
Eine Frage bleibt noch offen.
Hat jemand einen genauen Teiler für die Berechnung der
Windgeschwindigkeit?
Ich zähle die "Ticks" vom Readkontakt 1sek lang. Viel hört/liest man den
Wert /3 ergibt m/s.
Naja ich nutze derzeit /2 , das kommt zumindest recht genau mit den
Daten der nächsten Wetterstation hin.
Weiter oben stand was von /2.5 ??
Gibts da mitlerweile einen genauen Teiler?
Und ist der Teiler abhängig von der Taktfrequenz des Controllers?
Eigentlich nicht oder?
Danke Heiko
Hey,
trägt zwar nicht wesentlich zur Lösung des Protokollproblems bei, aber
aus aktuellem Anlass vielleicht für den einen oder anderen von
interesse...
Diese Woche wurde ein Artikel veröffentlicht, der Sensor wird aktuell
immer noch in größerer Stückzahl gebaut und vertrieben...
http://www.all-electronics.de/texte/anzeigen/50023/Besser-als-der-Frosch-im-Glas
Gruß Micha,
PS: Falls der verlinkte Artikel aus Sicht eines verantwortlichen zu
Problemen führen könnte (Copyright, etc.), bitte löschen!
Ich komm mit dem tx23 nicht klar.
Ich hab ihn VCC mit 3,3V über den raspberry versorgt und an den TXD Data
eine LED drauf gehängt minus LED auf GND Masse. Bei jeder Umdrehung
blinkt die LED auf so hab ich schon mal eine Signal Anzeige geschaffen.
Jetzt habe ich das ganze mal am analogeingang der siemenslogo Drann dort
brauch ich aber ein Analogverstärker um das Signal zuversärken und
auszuwerten. Da fängt s dann schon mal an wie erechnen ich aus diesem
Faktor die Windgeschwindigkeit? Wünsch euch viel Erfolg beim basteln.
Ziel war es das Ganze als Wetterstation mit dem Pi 3 b zu realisieren
Hallo in die Runde!
ich bin neu hier und möchte mich an dieser Stelle in den thread
einklinken.
In der Überschrift steht ja was von TX23/TX20. Ich habe einen TX20 als
(neues und originalverpacktes) Ersatzteil erworben und ihn entsprechend
der einschlägigen Beiträge wie:
https://www.john.geek.nz/2011/07/la-crosse-tx20-anemometer-communication-protocol/
oder http://blog.bubux.de/windsensor-tx20-mit-esp8266/ beschaltet.
Ich baue eine Wetterstation mit einem ESP12E auf der Basis eines Lua
Lolin V3. Am I2C D1/D2 habe ich die üblichen Sensoren - z.Zt. 3 Stck.
(BME280 etc). Das funktioniert alles prima.
Nun zum Problem: Der TX20 ist wie in den o.g. Beiträgen verdrahtet und
den passenden Arduino Sketch habe ich auf den ESP12E geladen. Die
Protokolle TX23/TX20 dürften sogar ähnlich sein?
TxD liegt an D6. Der TX20 wird mit 3,3V betrieben.
Erstaunlicherweise zeigt der Test-Sketch alle 2sec die korrekte
Windrichtung an, auch die Checksum ist immer richtig, aber leider ist
die Windgeschwindigkeit immer 0. Auch in den RawData. Das wurde oben
auch schon mal erwähnt.
Hier gibt es doch viele erfahrene Entwickler. Vielleicht kann mir jmd.
einen Tipp geben, wo suchen??
Herzlichen Dank!
Theo
Jürgen E. schrieb:> Er kommt zustande da der konvexe angeströmte Löffel das Anemometer> abbremst, was kompensiert werden muss.
Bei einem 4er-Windrad (wegen der Anschaulichkeit) wird der
unterschiedliche c_w Wert von konvex und konkav angeströmtem Löffel
(eigentlich das Integral über die sich ändernde Geometrie bei der
Drehung) durch die unterschiedliche Anströmgeschwindigkeit
(Windgeschwindigkeit plus oder minus Bahngeschwindigkeit der Löffel)
kompensiert, so dass ein Gleichgewicht besteht.
Es ist also
c_w (konvexer Löffel) * (Windgeschwindigkeit + Bahngeschwindigkeit)^2
gleich
c_w (konkaver Löffel) * (Windgeschwindigkeit - Bahngeschwindigkeit)^2
Aus dieser Gleichgewichtsbedingung ergibt sich die Bedingung für die
Bahngeschwindigkeit der Löffel und damit der Drehgeschwindigkeit.
Diese Gleichgewichtsbedingung wird nur durch die Reibung gestört.
Beim 3er-Rad ist die Geometrie etwas kompliziert, ändert aber nichts am
Gleichgewichtsprinzip.
Eine konstante Kraftdifferenz würde zu einer laufenden Beschleunigung
und letzendlich zur Zerstörung des Gebers führen.
ich möchte noch präzisieren: Der Sensor scheint OK. Ich erhalt jedoch
nur ca 8s lang nach dem Start des Sketches Daten. Danach keine mehr..
Das habe ich gerade eben beobachtet...