Windsensor WS2300-15

Antworten
ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Windsensor WS2300-15

Beitrag von ExpertProfi » Donnerstag 8. Mai 2014, 13:26

Auf der Suche nach einem günstigen Windsensor habe ich diesen gefunden...
http://www.wetterladen.de/windmesser-fuer-2300-serie
(Eigentlich ist der für eine Wetterstation, aber die hab´ und will ich nicht.)
Also: Aufgeschraubt und geguckt was drin ist :mrgreen:
Viel Elektronik für die paar Euro! So sieht´s aus... (ohne Gewähr!)
WS2300-15.JPG
WS2300-15.JPG (30.93 KiB) 22579 mal betrachtet
Vielleicht hat ja jemand was ähnliches vor. Die Signale waren zum Glück auf der Platine beschriftet.
Betrieb mit 5V geht. Nachdem ich die grüne Leitung auf Masse gelegt habe,
spuckt der Sensor nun ca. einmal pro Sek. serielle Daten aus. :o (Sieht auf dem Scope nach 1200 Bd. aus? Nein, falsch. 800 Bd.sind es!)
Mal sehn´ wie´s weiter geht...
Zuletzt geändert von ExpertProfi am Samstag 10. Mai 2014, 21:37, insgesamt 1-mal geändert.

thcweb
Beiträge: 136
Registriert: Dienstag 14. Oktober 2008, 22:59

Re: Windsensor WS2300-15

Beitrag von thcweb » Donnerstag 8. Mai 2014, 18:36

bin gespannt....

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Samstag 10. Mai 2014, 21:36

Kurzer Zwischenbericht: Ohne Mikrocontroller wird es leider nicht gehen, denn
1.) Liegt die Baudrate irgendwo bei 800 Bd., also keine Standardbaudrate :-(
2.) Es kommen ca. 16 Bits nach einem (einzigen) Startbit, also keine UART-kompatible, byteweise Zeichenübertragung. :-(
Die Signalamplitude 2V reicht auch nicht um direkt auf einen (5V-) Controller zu gehen. :-(
Habe dem Datenausgang daher einen Open-Collector-Ausgang in Form eines BC337-25 spendiert. Die damit einher gehende
Invertierung ist mir ganz recht.
Jetzt wird ich mal schauen wie ich mit einem AVR an die Bits rankomme...
1,25ms high = 1
1,25ms low = 0
(NRZ Codierung)
Die Bits zu dekodieren dürfte dann später wohl kein Problem mehr sein...
Fortsetzung folgt.
Zuletzt geändert von ExpertProfi am Samstag 10. Mai 2014, 21:40, insgesamt 1-mal geändert.

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Windsensor WS2300-15

Beitrag von compander » Samstag 10. Mai 2014, 21:37

Hallo ExpertProfi.

Bin schon gespannt, wie du die Daten der Funktionen "Richtung und Geschwindigkeit" auseinanderfieselst.
Und: über welche PC-Schnittstelle übertägst .......

Gruß von C :shock: mpander.

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Samstag 10. Mai 2014, 21:39

Werde es einmal mit einem Arduino versuchen.

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Windsensor WS2300-15

Beitrag von compander » Samstag 10. Mai 2014, 21:48

Hallo ExpertProfi.

... das hat dann jedoch leider nicht so wahnsinnig viel mit PLE4 zu tun. Richtig?

Herzlichen Gruß vom C :shock: mpander.

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Sonntag 11. Mai 2014, 07:13

Warum nicht? Mein Ziel ist es schon die Windwerte im ProfiLab zu haben. Wenn Du einen anderen Weg kennst, wie ich das ohne Controller hinkriege, bitte vorschlagen! (...oder falls dich eine solche Sensorik für PL nicht interessiert, dann schau doch bitte einfach weg.) Ich hätte es selbst auch gerne OHNE Controller gemacht, was aber aus o.g. Gründen meiner Einschätzung nach NICHT möglich ist.

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Windsensor WS2300-15

Beitrag von compander » Sonntag 11. Mai 2014, 14:24

Hallo ExpertProfi.

Warum um Himmels willen soll ich wegschauen? Mich interessiert die Sensorik. Ebenso deren Anbindung an PLE!!!

Leider habe ich den Windsensor nicht.
Sicherlich gibt es mehrere Möglichkeiten der Anbindung.
Besonders einfach ist die Nutzung eines "USB auf RS232 TTL UART" - Wandlers.
Dieser hier führt die Signale TxD und RxD.
Eine Übertragungsfrequenz von über 1 kHz sollte möglich sein. (habe ich nicht gemessen!)

Das korrespondierende PLE-Bauteil ist "COM direkt".

Herzlichen Gruß vom C :shock: mpander.

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Sonntag 11. Mai 2014, 16:28

Danke für den gut gemeinten Rat, aber da liegst Du falsch!
Diese Dinger verarbeiten BYTES, d.h. 1 Startbit; 7 oder 8 Datenbits; Stoppbit(s).
Bei diesem Sensor ist es leider nicht so. Nach dem Startbit folgen mahr als 16 Datenbits in EINEM Rutsch! Das kann KEIN UART! LEIDER!
Von den krummen 800 Baud einmal ganz abgesehen. Den Ansatz habe ich schon durch und der funktioniert definitiv nicht.
Du kannst das Bild oben wieder wegnehmen, da es nicht zielführend ist und nur verwirrt.

Habe jetzt schon einen Controller im Einsatz, der die Bits liest und die Kommunikation auf USB-COM umsetzt.
Stand der Dinge... (ohne Gewähr!)
WS2300-15(2).JPG
WS2300-15(2).JPG (134.29 KiB) 22628 mal betrachtet

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Dienstag 13. Mai 2014, 14:00

Funktioniert :D
WS2300-15.prj
(7.44 KiB) 669-mal heruntergeladen
Mit einem 16MHz Arduinio...
http://arduino.cc/en/Main/ArduinoBoardUno
Sensor an Digital Pin7 (D7) nach Schaltplan (oben).
So ein Board kostet ca. 30 Euro mit USB drauf.
Die Arduino-Software ist kostenlos. Damit das Script aufspielen...

Das war´s auch schon.

Code: Alles auswählen

// Wind Sensor WS 2300-15 adapter
// Read sensor data from Digital Input D7 and sends to to PC (UART)

int senspin = 7; // Arduini Digital Pin 7  (D7 on AVR)
boolean stat; // data input status
word dataword; // what we print to PC

// Sensor uses 800 Bd. -> 1.25 ms/bit
// tested with 16 Mhz board...
int bit_ms = 1250; // Duration of 1 bit in µS
int half_bit_ms = 625; // Duration of 1/2 bit in µS

int ledpin = 13; // Pin 13 has an LED connected on most Arduino boards.

// Setup routine runs once when you press reset:

void setup() {                
  // initialize the digital pin as an output.
  pinMode(senspin, INPUT);       // Use D7 to read sensor signal
  digitalWrite(senspin, HIGH);   // turn the pullup on!
  pinMode(ledpin, OUTPUT);       // Use B5 for Data Indicator LED
  Serial.begin(9600);            // Set the baud rate for PC communication
 }

// Main loop:

void loop() {

   dataword = 0; // Prepare data word

   stat = digitalRead(senspin);  // get the sensor input
   while(stat == HIGH){          // wait for falling edge (sync to startbit)
      stat = digitalRead(senspin);  
   }
   
   delayMicroseconds(half_bit_ms); //wait for MIDDLE of startbit, we are now in sync

   // Skip the start bit, we now it ist there ;-)
   delayMicroseconds(bit_ms);
   
   // Skip four header bits, we don´t want these...
   delayMicroseconds(bit_ms);
   delayMicroseconds(bit_ms);
   delayMicroseconds(bit_ms);
   delayMicroseconds(bit_ms);
   
  // Now the 13 bits we want... 
  // *** Dataword [0..3] = WIND DIRECTION (LSB first) 
  // *** Dataword [4..12] = WIND SPEED (LSB first) 
  
  for (int i=0; i <= 13; i++){
     stat = digitalRead(senspin);  
     if (stat) {
        dataword = dataword + (1 << i);
     }  
      delayMicroseconds(bit_ms); // Wait for next bit
  } 

  
  Serial.println(dataword);  // Print out Dataword as readable ASCII string to PC
  
  digitalWrite(ledpin, HIGH);   // Sensor Data Indicaror LED on 
  delay(200);                   // Spent some time, to make sure finished tranmittion
  digitalWrite(ledpin, LOW);    // Sensor Data Indicaror LED on 
  
}

IKT
Beiträge: 554
Registriert: Mittwoch 4. November 2009, 18:32

Re: Windsensor WS2300-15

Beitrag von IKT » Mittwoch 14. Mai 2014, 09:00

Hallo ExpertProfi,

klasse Beispiel, welches zeigt, was man so 'alles hinkriegt' mit einem µController, was im ersten Moment beinahe aussichtslos erscheint. Danke für die Inspiration.
++++++
Gruss/regards IKT

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: Windsensor WS2300-15

Beitrag von abacom » Mittwoch 14. Mai 2014, 11:05

@Compander: Habe mir erlaubt das Bild von Compander zu löschen. Sorry!
@ExpertProfi: Schönes Projekt!
ABACOM support

ExpertProfi
Beiträge: 43
Registriert: Freitag 30. Januar 2009, 11:36

Re: Windsensor WS2300-15

Beitrag von ExpertProfi » Freitag 16. Mai 2014, 11:01

Danke, hier noch ein bisschen 'Inspiration' zur Frage "Wie windig ist es denn eigentlich?" :?
Vielleicht gefällt Euch ja meine Spielzeug...
Da man zum Spielen ja nicht immer Wind hat, habe ich eine Sensorsimulation eingebaut.
WindRadar02.zip
(10.98 KiB) 693-mal heruntergeladen
Wind.jpg
Wind.jpg (173.35 KiB) 22186 mal betrachtet

Kollimann
Beiträge: 1
Registriert: Freitag 6. März 2015, 19:17

Re: Windsensor WS2300-15

Beitrag von Kollimann » Samstag 1. Oktober 2016, 16:34

Hallo, ich muss den Post mal ausgraben.
Also ich baue gerade einen Windmesser mit Arduino und verwende den hier veröffentlichen Code.
Das funktioniert auch alles, nur hab ich ein Verständnisproblem mit der Auswertung der Windgeschwindigkeit.

Ich erkläre es mal.
1 kleine Änderung hab ich am Code vorgenommen, ich "Teile" schon bei der Abfrage des Windsensors die Werte

Code: Alles auswählen

for (int i=0; i <= 13; i++){
     stat = digitalRead(senspin); 
     if (stat) {
       if (i <= 3) {
        dataword = dataword + (1 << i);
       } else {
       dataword1 = dataword1 + (1 << i);
     } 
   }
dürfte ja kein Problem darstellen.....
Windrichtung also dataword stimmt alles, sehen wir uns dataword1 an, Ausgabe per

Code: Alles auswählen

Serial.println(dataword1, BIN);
Serial.println(dataword1);
zeigt
1001010000
592

so, eigentlich sollte da doch als dec Wert da 41 stehen? was ich auch am Win Taschenrechner so ablesen kann.
aber andere Converter sagen wieder 592.

Zum Thema TX23 findet man ja genug Erklärungen
http://www.rd-1000.com/chpm78/lacrosse/ ... tocol.html

da sind ja 4 Beispiele der Windgeschwindigkeit, geht alles im Taschenrechner von Win nachzuvollziehen, nur wieso wird aus dem BIN bei mir und im Inet 592? Was versteh ich nicht?
Dateianhänge
Unbenannt-2.jpg
Unbenannt-2.jpg (41.05 KiB) 18050 mal betrachtet

KAKTUS
Beiträge: 651
Registriert: Samstag 18. Oktober 2008, 21:12

Re: Windsensor WS2300-15

Beitrag von KAKTUS » Sonntag 2. Oktober 2016, 18:06

Irgendwie bringst du alles durcheinander.

Ein Byte hat 8 Bit, maximaler Wert DEC255 oder Hex 0XFF = &B1111 1111
Ein Word hat 16 Bit, maximaler Wert DEC65535 oder Hex 0XFFFF in Bin 1111 1111 1111 1111


Deine angegebenen Bit Werte sind vollkommen unterschiedliche Werte:

1001010000 = DEC592
101001 = DEC41
stachlige Grüße, Kaktus

Mike D
Beiträge: 528
Registriert: Dienstag 14. Oktober 2008, 14:48
Wohnort: Elbe- Weser-Dreieck

Re: Windsensor WS2300-15

Beitrag von Mike D » Montag 3. Oktober 2016, 14:50

du hast einmal das LSB links und einmal rechts

Mike

Antworten

Zurück zu „Wetter und Klima“